为AWS RDS PostgreSQL创build一个只读帐户

我想为AWS(PostGreSQL)中的所有RDS实例创build一个只读帐户。 我开始创build一个IAM组并附加AmazonRDSReadOnlyAccess策略。 我创build了一个新的IAM用户,并把他放在这个组里。 我无法使用这个新的只读用户连接到我们的数据库(用我们的pipe理员帐户成功testing)。 我现在意识到我在数据库本身没有只读用户。 这引起我三个问题:

  1. 当我可以在数据库中创build只读数据库用户时,为我们的RDS实例创build一个只读IAM用户是否有意义?
  2. 当我通过命令行访问数据库,例如。 psql –host = servername –port = portnumber –username = username –password –dbname = databasename。 据我所知,这是数据库用户的名称,那么创build单独的RDS IAM只读用户有什么意义吗?
  3. 如果我有一个只读的IAM用户RDS,是否有任何危险,他们仍然可以写访问,如果说别人为他们创build一个数据库写帐户?

IAM用户和DB用户是100%分离的。 一个从不影响另一个,每个服务于不同的目的。

IAM用户

这些用户使用AWS API读取/更改/删除服务器。 他们无法通过psql应用程序访问或以其他方式对数据库进行任何操作。

IAM用户可以执行以下操作:

  • 创buildRDS实例
  • 从RDS实例读取信息
  • 删除RDS实例
  • 创build和恢复快照
  • 修改RDS选项和参数

以上所有内容均使用AWS开发工具包和CLI完成。

DB用户

这些用户读取/更改/删除数据库中的数据。 他们无法pipe理或以其他方式对RDS实例做任何事情。

数据库用户可以执行以下操作:

  • select数据
  • 插入数据
  • 更新数据
  • 删除数据
  • 创build数据库
  • pipe理其他数据库用户

以上所有内容都是使用psql完成的。