Amazon Aurora 的数据库身份验证 - Amazon Aurora
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon Aurora 的数据库身份验证

支持多种对数据库用户进行身份验证的方法。

默认情况下,密码身份验证适用于所有数据库集群 对于 Aurora MySQL 和 Aurora PostgreSQL,您还可以为同一个数据库集群添加 IAM 数据库身份验证和 Kerberos 身份验证之一或这两者。

密码、Kerberos 和 IAM 数据库身份验证使用不同的方法对数据库进行身份验证。因此,特定用户只能使用一种身份验证方法登录到数据库。

对于 PostgreSQL,仅为特定数据库的用户使用以下角色设置之一:

  • 要使用 IAM 数据库身份验证,请为用户分配 rds_iam 角色。

  • 要使用 Kerberos 数据库身份验证,请为用户分配 rds_ad 角色。

  • 要使用密码身份验证,请勿为用户分配 rds_iamrds_ad 角色。

不要通过嵌套的授予访问权限直接或间接地将 rds_iamrds_ad 角色分配给 PostgreSQL 数据库的用户。如果将 rds_iam 角色添加到主用户,IAM 身份验证优先于密码身份验证,因此主用户必须以 IAM 用户身份登录。

重要

我们强烈建议不要直接在应用程序中使用主用户。请遵守使用数据库用户的最佳实践,按照您的应用程序所需的最少权限创建用户。

密码验证

使用密码身份验证,数据库将执行用户账户的所有管理。您可以使用 CREATE USER 等 SQL 语句创建用户,其中包含数据库引擎指定密码所需的适当子句。例如,在 MySQL 中,语句为 CREATE USER 名称 IDENTIFIED BY 密码,而在 PostgreSQL 中,语句为 CREATE USER 名称 WITH PASSWORD 密码

使用密码身份验证,数据库可控制和验证用户账户。如果数据库引擎具有强大的密码管理功能,那么可以增强安全性。当您拥有较小的用户社区时,使用密码身份验证可能更易于管理数据库身份验证。因为在这种情况下会生成明文密码,因此与 Amazon Secrets Manager 集成可以增强安全性。

有关将 Secrets Manager 与 Amazon Aurora 结合使用的信息,请参阅 Amazon Secrets Manager 用户指南中的创建基本密钥为支持的 Amazon RDS 数据库轮换密钥。有关以编程方式在自定义应用程序中检索密钥的信息,请参阅 Amazon Secrets Manager 用户指南中的检索密钥值

IAM 数据库身份验证

可以使用 Amazon Identity and Access Management(IAM)数据库身份验证对数据库集群进行身份验证。利用此身份验证方法,您在连接到数据库集群时将无需使用密码。而是使用身份验证令牌。

有关 IAM 数据库身份验证的更多信息,包括特定数据库引擎的可用性信息,请参阅 的 IAM 数据库身份验证

Kerberos 身份验证

Amazon Aurora 支持使用 Kerberos 和 Microsoft Active Directory 对数据库用户进行外部身份验证。Kerberos 是一种网络身份验证协议,它使用票证和对称密钥加密,而不再需要通过网络传输密码。Kerberos 已内置到 Active Directory 中,用于在网络资源(如数据库)中对用户进行身份验证。

Amazon Aurora 支持 Kerberos 和 Active Directory,从而为数据库用户提供单一登录和集中身份验证的好处。您可以将用户凭证保存在 Active Directory 中。Active Directory 提供了一个集中位置,以存储和管理多个数据库集群的凭证。

要使用来自自行管理的 Active Directory 的凭证,您需要针对数据库集群加入的 Microsoft Active Directory 设置与 Amazon Directory Service 的信任关系。

Aurora PostgreSQL 和 Aurora MySQL 通过全林性身份验证或选择性身份验证,支持单向和双向林信任关系。

在某些情况下,可以通过外部信任关系配置 Kerberos 身份验证。这要求自行管理的 Active Directory 具有更多设置。这包括但不限于 Kerberos Forest Search Order

Aurora 支持对 Aurora MySQL 和 Aurora PostgreSQL 数据库集群进行 Kerberos 身份验证。有关更多信息,请参阅对 Aurora MySQL 使用 Kerberos 身份验证在 Aurora PostgreSQL 中使用 Kerberos 身份验证