View a markdown version of this page

在中对 Amazon RDS 终端节点使用 IAM Amazon DMS - Amazon Database Migration Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在中对 Amazon RDS 终端节点使用 IAM Amazon DMS

Amazon 身份和访问管理 (IAM) 数据库身份验证通过 IA Amazon M 证书管理数据库访问权限,从而增强您的 Amazon RDS 数据库的安全性。IAM 身份验证不是使用传统的数据库密码,而是使用 Amazon 凭证生成短期身份验证令牌,有效期为 15 分钟。这种方法无需在应用程序代码中存储数据库密码,降低了凭证泄露的风险,并通过 IAM 提供集中式访问管理,从而显著提高了安全性。它还通过利用现有的 Amazon IAM 角色和策略来简化访问管理,使您能够使用与其他 Amazon 服务相同的 IAM 框架来控制数据库访问权限。

Amazon DMS 现在,当连接到亚马逊 RDS 上的 MySQL、PostgreSQL、Aurora PostgreSQL、Aurora MySQL、Aurora MySQL、Aurora MySQL 或 MariaDB 终端节点时,支持对运行 DMS 版本 3.6.1 在为这些引擎创建新的端点时,您可以选择 IAM 身份验证并指定 IAM 角色,而不是提供数据库凭证。这种集成无需为迁移任务管理和存储数据库密码,从而增强了安全性。

在中为亚马逊 RDS 终端节点配置 IAM 身份验证 Amazon DMS

在创建端点时,您可以为 Amazon RDS 数据库配置 IAM 身份验证。要配置 IAM 身份验证,请执行以下操作:

  1. 确保 Amazon RDS 和数据库用户启用了 IAM 身份验证。有关更多信息,请参阅《Amazon Relational Database Service 用户指南》中的启用和禁用 IAM 数据库身份验证

  2. 导航到 IAM 控制台,使用以下策略创建 IAM 角色:

    策略

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "rds-db:connect" ], "Resource": "*" } ] }

    信任策略:

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "dms.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
  3. Amazon DMS 控制台中配置端点期间,导航到端点数据库的访问权限部分,然后选择 IAM 身份验证

  4. RDS 数据库身份验证的 IAM 角色下拉菜单中,选择具有相应数据库访问权限的 IAM 角色。

    有关更多信息,请参阅创建源和目标端点

  1. 确保 Amazon RDS 和数据库用户启用了 IAM 身份验证。有关更多信息,请参阅《Amazon Relational Database Service 用户指南》中的启用和禁用 IAM 数据库身份验证

  2. 导航到 Amazon CLI,创建 IAM 角色并允许 DMS 代入该角色:

    策略:

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "rds-db:connect" ], "Resource": "*" } ] }

    信任策略:

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "dms.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
  3. 运行以下命令以导入证书并下载 PEM 文件。有关更多信息,请参阅《Amazon Relational Database Service 用户指南》中的下载 Amazon RDS 的证书捆绑包

    aws dms import-certificate --certificate-identifier rdsglobal --certificate-pem file://~/global-bundle.pem
  4. 运行以下命令以创建 IAM 端点:

    • 对于 PostgreSQL/Aurora PostgreSQL 端点(设置sslmode为时required,不需要--certificate-arn标记):

      aws dms create-endpoint --endpoint-identifier <endpoint-name> --endpoint-type <source/target> --engine-name <postgres/aurora-postgres> --username <db username with iam auth privileges> --server-name <db server name> --port <port number> --ssl-mode <required/verify-ca/verify-full> --postgre-sql-settings "{\"ServiceAccessRoleArn\": \"role arn created from step 2 providing permissions for iam authentication\", \"AuthenticationMethod\": \"iam\", \"DatabaseName\": \"database name\"}" --certificate-arn <if sslmode is verify-ca/verify full use cert arn generated in step 3, otherwise this parameter is not required>
    • 对于 MySQL、MariaDB 或 Aurora MySQL 端点:

      aws dms create-endpoint --endpoint-identifier <endpoint-name> --endpoint-type <source/target> --engine-name <mysql/mariadb/aurora> --username <db username with iam auth privileges> --server-name <db server name> --port <port number> --ssl-mode <verify-ca/verify-full> --my-sql-settings "{\"ServiceAccessRoleArn\": \"role arn created from step 2 providing permissions for iam authentication\", \"AuthenticationMethod\": \"iam\", \"DatabaseName\": \"database name\"}" --certificate-arn <cert arn from previously imported cert in step 3>
  5. 对所需的复制实例运行测试连接以创建实例端点关联,并验证所有设置是否正确:

    aws dms test-connection --replication-instance-arn <replication instance arn> --endpoint-arn <endpoint arn from previously created endpoint in step 4>
    注意

    使用 IAM 身份验证时,测试连接中提供的复制实例必须为 3.6.1 或更高 Amazon DMS 版本。

限制

有关 Amazon RDS 数据库的 IAM 数据库身份验证限制的更多信息,请参阅《亚马逊关系数据库服务用户指南》中的 IAM 数据库身份验证限制。