为 AWS RDS PostgreSQL 创建只读账户

1 postgresql amazon-web-services amazon-rds

我想为 AWS (PostGreSQL) 中的所有 RDS 实例创建一个只读帐户。我首先创建了一个 IAM 组并附加了 AmazonRDSReadOnlyAccess 策略。我创建了一个新的 IAM 用户并将他放在这个组中。我无法使用这个新的只读用户连接到我们的数据库(使用我们的管理员帐户成功测试就好了)。我现在意识到我在数据库本身中没有只读用户。这向我提出了三个问题:

  1. 当我可以在数据库中创建只读数据库用户时,为我们的 RDS 实例创建只读 IAM 用户是否有意义?
  2. 当我通过命令行访问数据库时,例如。psql --host=servername --port=portnumber --username=username --password --dbname=databasename。据我了解,这是数据库用户的名称,因此创建单独的 RDS IAM 只读用户是否有意义?
  3. 如果我有 RDS 的只读 IAM 用户,如果说其他人为他们创建了一个数据库写帐户,他们仍然拥有写访问权限是否有任何危险?

Mat*_*ser 5

IAM 用户和 DB 用户是 100% 分开的。一个永远不会影响另一个,每个都有不同的目的。

IAM 用户

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

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

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

以上所有操作都是使用 AWS 开发工具包和 CLI 完成的。

数据库用户

这些用户读取/更改/删除数据库中的数据。他们无法管理或以其他方式对 RDS 实例进行任何操作。

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

  • 选择数据
  • 插入数据
  • 更新数据
  • 删除数据
  • 创建数据库
  • 管理其他数据库用户

以上都是使用psqlexample完成的。