Knowledge Center Monthly Newsletter - March 2025
Stay up to date with the latest from the Knowledge Center. See all new and updated Knowledge Center articles published in the last month and re:Post’s top contributors.
如何允许用户通过其 Amazon IAM 凭证向 Amazon RDS for MySQL 数据库实例进行身份验证?
我想连接到 Amazon Relational Database Service (Amazon RDS) for MySQL 数据库实例。我想使用 AWS Identity and Access Management (IAM) 凭证,而不是原生身份验证方法。
解决方案
**注意:**如果在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI。
要连接到 Amazon RDS 数据库实例或集群,请使用 IAM 用户或角色凭证以及身份验证令牌。
注意:仅当您的客户端和服务器位于同一个虚拟私有云 (VPC) 中且网络可信时,才使用未加密的 MySQL 连接。
先决条件
您必须启动支持 IAM 数据库身份验证的数据库实例和 Amazon Elastic Compute Cloud (Amazon EC2) 实例才能连接到数据库。
要验证 IAM 身份验证所需的配置,请使用 AWSSupport-TroubleshootRDSIAMAuthentication AWS Systems Manager Automation 运行手册。您还可以使用该运行手册来解决与 Amazon RDS 实例或 Aurora 集群的连接问题。
在 RDS 数据库实例上激活 IAM 数据库身份验证
您可以使用 Amazon RDS 控制台、AWS 命令行界面 (AWS CLI) 或 Amazon RDS API 启用 IAM 数据库身份验证。如果您使用 Amazon RDS 控制台修改数据库实例,请选择 Apply Immediately(立即应用)以激活 IAM 数据库身份验证。有关详细信息,请参阅 Amazon RDS 数据库实例。
注意: 如果您选择 Apply Immediately(立即应用),则任何待处理的修改也会立即生效。有关详细信息,请参阅计划修改设置。
创建使用 AWS 身份验证令牌的数据库用户账户
要连接到数据库实例或集群端点,请运行以下命令。
$ mysql -h {database or cluster endpoint} -P {port number database is listening on} -u {master db username} -p
注意: 请使用您的主密码登录。
要创建使用 AWS 身份验证令牌而不是密码的数据库用户账户,请运行以下命令:
CREATE USER {dbusername} IDENTIFIED WITH AWSAuthenticationPlugin as 'RDS';
默认情况下,数据库用户没有权限。当您运行 SHOW GRANTS FOR {dbusername} 时,数据库用户会显示为 GRANT USAGE。如需要求用户账户通过 SSL 进行连接,请运行以下命令:
ALTER USER {dbusername} REQUIRE SSL;
要关闭 MySQL,请运行 exit 命令。然后,从数据库实例注销。
添加将数据库用户映射到 IAM 角色的 IAM 策略
完成以下步骤:
- 打开 IAM 控制台。
- 在导航窗格中,选择 Policies(策略)。
- 选择 Create Policy(创建策略)。
- 输入允许对所需用户执行 rds-db:connect 操作的策略。有关创建此策略的详细信息,请参阅创建和使用适用于 IAM 数据库访问的 IAM 策略。
**注意:**确保在 Resources(资源)部分中输入数据库资源的详细信息。 - 选择 Next(下一步)。
- 选择 Next(下一步)。
- 对于 Name(名称),输入策略名称。
- 选择 Create policy(创建策略)。
创建允许 Amazon RDS 访问权限的 IAM 角色
完成以下步骤:
- 打开 IAM 控制台。
- 在导航页面中,选择 Roles(角色)。
- 在 Trusted entity(可信实体)类型部分中,选择 Create role(创建角色)。
- 选择 AWS service(AWS 服务)。
- 在 Use case(用例)部分中,对于 Service or user case(服务或用户案例),选择 EC2。
- 对于 Use case(用例),选择 EC2,然后选择 Next(下一步)。
- 在搜索栏中,查找您以前在“添加映射数据库用户的 IAM 策略”部分创建的 IAM 策略。
- 选择 Next(下一步)。
- 对于 Role Name(角色名称),输入此 IAM 角色的名称。
- 选择 Create Role(创建角色)。
将 IAM 角色附加到 Amazon EC2 实例
完成以下步骤:
- 打开 Amazon EC2 控制台。
- 选择用于连接到 Amazon RDS 的 EC2 实例。
- 将新创建的 IAM 角色附加到 EC2 实例。
- 通过 SSH 连接到 EC2 实例。
生成 AWS 身份验证令牌来识别 IAM 角色
连接到 Amazon EC2 实例后,运行以下 AWS CLI generate-db-auth-token 命令以生成身份验证令牌:
$ aws rds generate-db-auth-token --hostname {db or cluster endpoint} --port 3306 --username {db username}
**注意:**如果在运行 AWS CLI 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI。
复制并存储此身份验证令牌以备日后使用。或者,使用适用于 .NET 的 AWS SDK 来生成令牌。
下载 SSL 根证书捆绑包文件
要下载所有 AWS 区域的证书捆绑包,请参阅所有 AWS 区域的证书捆绑包。
使用 IAM 角色凭证和身份验证令牌连接到 RDS 数据库实例
下载证书文件后,运行以下命令通过 SSL 连接到数据库实例:
RDSHOST="rdsmysql.abcdefghijk.us-west-2.rds.amazonaws.com" TOKEN="$(aws rds generate-db-auth-token --hostname $RDSHOST --port 3306 --region us-west-2 --username {db username})" mysql --host=$RDSHOST --port=3306 --ssl-ca=/sample_dir/global-bundle.pem --enable-cleartext-plugin --user=jane_doe --password=$TOKEN
注意: 如果您使用 MariaDB 客户端,则不包括 --enable-cleartext-plugin 选项。
使用 IAM 角色凭证和 SSL 证书连接到 RDS 数据库实例
下载证书文件后,通过 SSL 连接到数据库实例。
相关信息

相关内容
- 已提问 9 个月前lg...
- AWS 官方已更新 8 个月前
- AWS 官方已更新 1 年前
- AWS 官方已更新 4 年前