AlloyDB for PostgreSQL IAM 数据库身份验证

本页面介绍了如何使用 Identity and Access Management (IAM) 管理对 AlloyDB 数据库的访问权限。

IAM 身份验证概念

使用 IAM 身份验证时,不会直接向最终用户授予 AlloyDB 实例访问权限。而是会将权限分组到各个角色中,然后将这些角色授予主账号。如需了解详情,请参阅 IAM 概览

让用户通过 IAM 数据库身份验证登录的管理员可以使用 IAM 通过 IAM 政策集中管理其实例的访问权限控制。

IAM 政策涉及以下实体:

  • 主账号。在 AlloyDB 中,您可以使用用户账号或服务账号(用于应用)。如需了解详情,请参阅主账号

  • 角色。对于 IAM 数据库身份验证,主账号需要 alloydb.instances.login 权限。此权限包含在 AlloyDB Client 角色 (roles/alloydb.client) 中。如需获得此权限,请将用户、服务账号或群组绑定到预定义角色或包含该权限的自定义角色。如需了解详情,请参阅权限和角色

  • 资源。主账号有权访问的资源是 AlloyDB 实例。默认情况下,IAM 政策绑定在项目级层应用,以便主账号获得项目中所有 AlloyDB 实例的角色权限。如需了解详情,请参阅资源

比较数据库身份验证选项

下表可帮助您确定哪种身份验证方法最适合您的应用场景。

特性 内置数据库身份验证 IAM 数据库身份验证(单独)
身份验证方法 密码 临时身份验证令牌
网络流量加密 无需 SSL 需要 SSL
用户管理 手动 通过 IAM 集中管理

自动 IAM 数据库身份验证与手动 IAM 数据库身份验证

AlloyDB 提供了两种 IAM 数据库身份验证方法:自动和手动。

自动 IAM 数据库身份验证

通过自动 IAM 数据库身份验证,您可以将请求和管理访问令牌工作交给中间 AlloyDB 连接器(例如 Auth 代理或某个语言连接器)。

通过自动 IAM 数据库身份验证,应用只需要在来自客户端的连接请求中传递 IAM 数据库用户名。连接器代表客户端提交密码属性的访问令牌信息。

手动 IAM 数据库身份验证

手动 IAM 数据库身份验证要求 IAM 主账号在客户端连接请求中明确传递密码属性的访问令牌。主账号必须先登录 Google Cloud 并向 IAM 明确请求访问令牌。

IAM 条件和审核日志

IAM Conditions 允许您根据多个属性授予角色。例如,您可以只允许在特定日期和时间访问,或仅授予对特定名称的 AlloyDB 资源的访问权限。

如需保留数据访问(包括登录)的记录,您可以使用 Cloud Audit Logs。Cloud Audit Logs 默认处于关闭状态。您需要开启数据访问审核日志才能进行登录跟踪。

限制和最佳实践

  • 为了安全起见,使用 IAM 数据库身份验证的登录仅适用于 SSL 连接。未加密的连接会被拒绝。

  • 每个实例都有每分钟登录(包括成功的登录和失败的登录)配额。超出配额时,登录暂时无法进行。我们建议您不要频繁登录,并使用已获授权的网络限制登录。

后续步骤