

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

# 创建源和目标终端节点
<a name="CHAP_Endpoints.Creating"></a>

您可以在创建复制实例时创建源和目标终端节点，也可以在创建复制实例后创建这些终端节点。源和目标数据存储可能位于 Amazon Elastic Compute Cloud (Amazon EC2) 实例和 Amazon Relational Database Service (Amazon RDS) 数据库实例上，也可能是本地数据库。（请注意，您的其中一个终端节点必须位于 AWS 服务上。 您不能使用 AWS DMS 从本地数据库迁移到另一个本地数据库。）

以下过程假设您已选择 AWS DMS 控制台向导。请注意，您也可以从 AWS 控制台的导航窗格中选择**端点**，然后选择**创建端点**以执行该步骤。在使用控制台向导时，您将在同一页面上创建源和目标终端节点。如果未使用控制台向导，您可以单独创建每个终端节点。

**使用 AWS 控制台指定源或目标数据库端点**

1. 在**连接源和目标数据库终端节点**页中，指定源或目标数据库的连接信息。下表描述了设置。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/dms/latest/userguide/CHAP_Endpoints.Creating.html)

   下表对于所列的数据库引擎，列出了端点密码和密钥管理器密钥中不支持的字符。如果您想在终端节点密码中使用逗号 (,)，请使用中提供的 Secrets Manager 支持 AWS DMS 来验证对您的 AWS DMS 实例的访问权限。有关更多信息，请参阅 [使用密钥访问 AWS Database Migration Service 终端节点](security_iam_secretsmanager.md)。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/dms/latest/userguide/CHAP_Endpoints.Creating.html)

1. 如果需要，请选择**端点设置**和 **AWS KMS key **。您可以选择**运行测试**以测试终端节点连接。下表描述了设置。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/dms/latest/userguide/CHAP_Endpoints.Creating.html)

# 在 Amazon RDS 终端节点中使用 IAM 身份验证 AWS DMS
<a name="CHAP_Endpoints.Creating.IAMRDS"></a>

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

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

## 在中为 Amazon RDS 终端节点配置 IAM 身份验证 AWS DMS
<a name="CHAP_Endpoints.Creating.IAMRDS.config"></a>

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

### DMS 控制台
<a name="CHAP_Endpoints.Creating.IAMRDS.console"></a>

1. 确保 Amazon RDS 和数据库用户启用了 IAM 身份验证。有关更多信息，请参阅《Amazon Relational Database Service 用户指南》**中的[启用和禁用 IAM 数据库身份验证](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.Enabling.html)。

1. 导航到 IAM 控制台，使用以下策略创建 IAM 角色：

   Policy

------
#### [ 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"
           }
       ]
   }
   ```

------

1. 在 [https://console.aws.amazon.com/dms/v2](https://console.aws.amazon.com/dms/v2)中配置端点期间，导航到**端点数据库的访问权限**部分，然后选择 **IAM 身份验证**。

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

    有关更多信息，请参阅[创建源和目标端点](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.Creating.html)。

### AWS CLI
<a name="CHAP_Endpoints.Creating.IAMRDS.awscli"></a>

1. 确保 Amazon RDS 和数据库用户启用了 IAM 身份验证。有关更多信息，请参阅《Amazon Relational Database Service 用户指南》**中的[启用和禁用 IAM 数据库身份验证](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.Enabling.html)。

1. 导航到 AWS 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"
           }
       ]
   }
   ```

------

1. 运行以下命令以导入证书并下载 PEM 文件。有关更多信息，请参阅《Amazon Relational Database Service 用户指南》**中的[下载 Amazon RDS 的证书捆绑包](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificatesDownload)。

   ```
   aws dms import-certificate --certificate-identifier rdsglobal --certificate-pem file://~/global-bundle.pem
   ```

1. 运行以下命令以创建 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>
     ```

1. 对所需的复制实例运行测试连接以创建实例端点关联，并验证所有设置是否正确：

   ```
   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 或更高 AWS DMS 版本。

## 限制
<a name="CHAP_Endpoints.Creating.IAMRDS.Limitations"></a>

AWS DMS 对 Amazon RDS 终端节点使用 IAM 身份验证时存在以下限制：
+ 目前，Amazon RDS PostgreSQL 和 Amazon Aurora PostgreSQL 实例不支持通过 IAM 身份验证建立 CDC 连接。有关更多信息，请参阅《Amazon Relational Database Service 用户指南》**中的 [IAM 数据库身份验证限制](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html#UsingWithRDS.IAMDBAuth.Limitations)。