为 AWS RDS PostgreSQL 创建只读帐户

为 AWS RDS PostgreSQL 创建只读帐户

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

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

答案1

IAM 用户和 DB 用户 100% 分离。彼此互不影响,各自服务于不同的目的。

IAM 用户

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

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

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

以上所有操作均使用 AWS SDKs 和 CLI 完成。

数据库用户

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

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

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

以上所有内容均使用psql例如完成。

相关内容