使用 IAM 身份验证创建数据库账户 - Amazon Aurora

使用 IAM 身份验证创建数据库账户

在使用 IAM 数据库身份验证时,您不需要为创建的用户账户分配数据库密码。如果删除映射到某个数据库账户的用户,则还应使用 DROP USER 语句删除该数据库账户。

注意

用于 IAM 身份验证的用户名必须与数据库中用户名的大小写相匹配。

Aurora MySQL 使用 IAM 身份验证

对于 Aurora MySQL,身份验证由 AWSAuthenticationPlugin 处理,这是 AWS 提供的一个插件,可以与 IAM 无缝协作以验证您的用户的身份。以主用户或其他可以创建用户和授予权限的用户身份连接到数据库集群。连接后,发出 CREATE USER 语句,如以下示例中所示。

CREATE USER 'jane_doe' IDENTIFIED WITH AWSAuthenticationPlugin AS 'RDS';

IDENTIFIED WITH 子句允许 Aurora MySQL 使用 AWSAuthenticationPlugin 对数据库账户 (jane_doe) 进行身份验证。AS 'RDS' 子句是指身份验证方法。确保指定的数据库用户名与 IAM 数据库访问策略中的资源相同。有关更多信息,请参阅“创建和使用适用于 IAM 数据库访问的 IAM 策略”。

注意

如果看到以下消息,则意味着 AWS 提供的插件对当前的数据库集群不可用。

ERROR 1524 (HY000): Plugin 'AWSAuthenticationPlugin' is not loaded

要纠正该错误,请确认您使用支持的配置,并且在数据库集群上启用了 IAM 数据库身份验证。有关更多信息,请参阅“区域和版本可用性”和“启用和禁用 IAM 数据库身份验证”。

在使用 AWSAuthenticationPlugin 创建一个账户后,可以像管理其他数据库账户一样管理此账户。例如,您可以使用 GRANT 语句和 REVOKE 语句修改账户权限,或使用 ALTER USER 语句修改各种账户属性。

使用 IAM 时,数据库网络流量使用 SSL/TLS 进行加密。要允许 SSL 连接,请使用以下命令修改用户账户。

ALTER USER 'jane_doe'@'%' REQUIRE SSL;

Aurora PostgreSQL 使用 IAM 身份验证

要在 Aurora PostgreSQL 中使用 IAM 身份验证,请以主用户或其他可以创建用户和授予权限的用户身份连接到数据库集群。连接后,创建数据库用户,然后向其授予 rds_iam 角色,如以下示例中所示。

CREATE USER db_userx; GRANT rds_iam TO db_userx;

确保指定的数据库用户名与 IAM 数据库访问策略中的资源相同。有关更多信息,请参阅 创建和使用适用于 IAM 数据库访问的 IAM 策略。您必须授予 rds_iam 角色才能使用 IAM 身份验证。也可以使用该角色的嵌套成员资格或间接授权。

请注意,PostgreSQL 数据库用户可以使用 IAM 或 Kerberos 身份验证(但不能同时使用),因此,此用户也不能具有 rds_ad 角色。这也适用于嵌套成员资格。有关更多信息,请参阅 步骤 7:为您的 Kerberos 主体创建 PostgreSQL 用户