

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

# 将 SSL 与 AWS Database Migration Service
<a name="CHAP_Security.SSL"></a>

您可以使用安全套接字层 (SSL) 为源和目标终端节点的连接加密。为此，您可以使用 AWS DMS 管理控制台或 AWS DMS API 为端点分配证书。您也可以使用 AWS DMS 控制台来管理您的证书。

并非所有数据库都以相同的方式使用 SSL。Amazon Aurora MySQL 兼容版使用服务器名称（集群中主实例的端点）作为 SSL 的端点。Amazon Redshift 终端节点已使用 SSL 连接，并且不需要由 AWS DMS设置 SSL 连接。Oracle 终端节点需要其他步骤；有关更多信息，请参阅 [Oracle 终端节点的 SSL 支持](CHAP_Source.Oracle.md#CHAP_Security.SSL.Oracle)。

**Topics**
+ [使用 SSL 的限制 AWS DMS](#CHAP_Security.SSL.Limitations)
+ [管理证书](#CHAP_Security.SSL.ManagingCerts)
+ [为 MySQL 兼容、PostgreSQL 或 SQL Server 终端节点启用 SSL](#CHAP_Security.SSL.Procedure)

为建立安全连接，您需要提供对端点上的服务器 SSL 证书进行签名时使用的根证书或者直至根的中间 CA 证书链（作为证书捆绑包）。只接受 PEM 格式的 X509 文件的证书。在导入证书时，您收到可用于为终端节点指定证书的 Amazon 资源名称 (ARN)。如果使用 Amazon RDS，您可以下载由 Amazon RDS 托管的 `rds-combined-ca-bundle.pem` 文件中提供的根 CA 和证书捆绑包。有关下载此文件的更多信息，请参阅 *Amazon RDS 用户指南*中的[使用 SSL/TLS 加密与数据库实例的连接](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html)。

您可从多个 SSL 模式中选择用于 SSL 证书验证的模式。
+ **none** – 不加密连接。该选项不安全，但需要的开销较少。
+ **require** – 使用 SSL（TLS）加密连接，但不进行任何 CA 验证。该选项更为安全，但需要的开销较多。
+ **verify-ca** – 加密连接。该选项更为安全，但需要的开销较多。该选项将验证服务器证书。
+ **verify-full** – 加密连接。该选项更为安全，但需要的开销较多。该选项验证服务器证书并验证服务器主机名与证书的主机名属性匹配。

并非所有 SSL 模式均适用于所有数据库终端节点。下表显示了各个数据库引擎支持哪些 SSL 模式。


|  数据库引擎  |  **none**  |  **require**  |  **verify-ca**  |  **verify-full**  | 
| --- | --- | --- | --- | --- | 
|  MySQL/MariaDB/AmazonAurora MySQL  | 默认 | 不支持 | 支持 | 支持 | 
|  Microsoft SQL Server  | 默认 | 支持 | 不支持 | 支持 | 
|  PostgreSQL  | 默认 | 支持 | 支持 | 支持 | 
|  Amazon Redshift  | 默认 | SSL 未启用 | SSL 未启用 | SSL 未启用 | 
|  Oracle  | 默认 | 不支持 | 支持 | 不支持 | 
|  SAP ASE  | 默认 | SSL 未启用 | SSL 未启用 | 支持 | 
|  MongoDB  | 默认 | 支持 | 不支持 | 支持 | 
|  Db2 LUW  | 默认 | 不支持 | 支持 | 不支持 | 
|  Db2 for z/OS  | 默认 | 不支持 | 支持 | 不支持 | 

**注意**  
DMS 控制台或 API 上的 SSL 模式选项不适用于某些数据流和 NoSQL 服务，如 Kinesis 和 DynamoDB。默认情况下，它们是安全的，因此 DMS 显示的 SSL 模式设置为“无”（**SSL 模式=无**）。您无需为端点提供任何其他配置即可使用 SSL。例如，使用 Kinesis 作为目标端点时，默认情况下它是安全的。所有对 Kinesis 的 API 调用都使用 SSL，因此无需在 DMS 端点中添加额外的 SSL 选项。您可以使用 HTTPS 协议，通过 SSL 端点安全地存放数据和检索数据，DMS 在连接 Kinesis Data Stream 时默认使用该协议。

## 使用 SSL 的限制 AWS DMS
<a name="CHAP_Security.SSL.Limitations"></a>

以下是使用 SSL 的限制 AWS DMS：
+ 不支持与亚马逊 Redshift 目标终端节点的 SSL 连接。 AWS DMS 使用亚马逊 S3 存储桶将数据传输到亚马逊 Redshift 数据库。此传输默认情况下由 Amazon Redshift 加密。
+ 使用启用了 SSL 的 Oracle 终端节点执行更改数据捕获 (CDC) 任务时，可能会出现 SQL 超时。如果您遇到 CDC 计数器未体现预期数字的问题，请在任务设置的 `ChangeProcessingTuning` 部分将 `MinimumTransactionSize` 参数设置为较低的值。您可以从最低值 100 开始。有关 `MinimumTransactionSize` 参数的更多信息，请参阅 [更改处理优化设置](CHAP_Tasks.CustomizingTasks.TaskSettings.ChangeProcessingTuning.md)。
+ 您只能以 .pem 和 .sso (Oracle wallet) 格式导入证书。
+ 在某些情况下，您的服务器 SSL 证书可能由中间证书颁发机构 (CA) 签名。此种情况下，请确保从中间 CA 到根 CA 的整个证书链作为单个 .pem 文件导入。
+ 如果在服务器上使用自签名证书，请选择 **require** 以作为 SSL 模式。**require** SSL 模式隐式信任服务器的 SSL 证书，而不会尝试验证证书是否由 CA 签名。
+ AWS DMS 不支持 MySQL 和 MariaDb终端节点的 TLS 版本 1.3。

## 管理证书
<a name="CHAP_Security.SSL.ManagingCerts"></a>

您可以使用 DMS 控制台来查看和管理 SSL 证书。您也可以使用 DMS 控制台导入证书。

![\[AWS Database Migration Service SSL 证书管理\]](http://docs.aws.amazon.com/zh_cn/dms/latest/userguide/images/datarep-certificatemgr.png)


## 为 MySQL 兼容、PostgreSQL 或 SQL Server 终端节点启用 SSL
<a name="CHAP_Security.SSL.Procedure"></a>

您可以添加指向新创建终端节点或现有终端节点的 SSL 连接。

**使用 SSL 创建 AWS DMS 终端节点**

1. 登录 AWS 管理控制台 并在 [https://console.aws.amazon.com/dms/v2](https://console.aws.amazon.com/dms/v2/)/上打开 AWS DMS 控制台。

   如果您以 AWS Identity and Access Management (IAM) 用户身份登录，请确保您拥有相应的访问权限 AWS DMS。有关数据库迁移所需权限的更多信息，请参阅 [使用所需的 IAM 权限 AWS DMS](security-iam.md#CHAP_Security.IAMPermissions)。

1. 在导航窗格中，选择**证书**。

1. 选择**导入证书**。

1. 将要用于加密连接的证书上传到终端节点。
**注意**  
您还可以在创建或修改端点时使用 AWS DMS 控制台上传证书，方法是在**创建数据库**终端节点页面上选择**添加新 CA 证书**。  
要将 Aurora Serverless 作为目标，请获取[ TLS/SSL 与 Aurora Serverless 一起使用](https://docs.aws.amazon.com//AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html#aurora-serverless.tls)中提到的证书。

1. 如[步骤 2：指定源和目标端点](CHAP_GettingStarted.Replication.md#CHAP_GettingStarted.Replication.Endpoints)中所述创建终端节点

**修改现有 AWS DMS 终端节点以使用 SSL**

1. 登录 AWS 管理控制台 并在 [https://console.aws.amazon.com/dms/v2](https://console.aws.amazon.com/dms/v2/)/上打开 AWS DMS 控制台。

   如果以 IAM 用户身份登录，请确保具有适当的 AWS DMS访问权限。有关数据库迁移所需权限的更多信息，请参阅 [使用所需的 IAM 权限 AWS DMS](security-iam.md#CHAP_Security.IAMPermissions)。

1. 在导航窗格中，选择**证书**。

1. 选择**导入证书**。

1. 将要用于加密连接的证书上传到终端节点。
**注意**  
您还可以在创建或修改端点时使用 AWS DMS 控制台上传证书，方法是在**创建数据库**终端节点页面上选择**添加新 CA 证书**。

1. 在导航窗格中选择**终端节点**，选择要修改的终端节点，然后选择**修改**。

1. 为 **SSL mode (SSL 模式)** 选择一个值。

   如果选择 **verify-ca** 或 **verify-full** 模式，则需指定要用于 **CA certificate (CA 证书)** 的证书，如下所示。  
![\[AWS Database Migration Service SSL 证书管理\]](http://docs.aws.amazon.com/zh_cn/dms/latest/userguide/images/datarep-certificate2.png)

   

1. 选择 **Modify**(修改)。

1. 在修改终端节点后，选择终端节点，然后选择**Test connection (测试连接)** 以确定 SSL 连接是否正常工作。

创建源和目标终端节点之后，创建使用这些终端节点的任务。有关创建任务的更多信息，请参阅[步骤 3：创建任务并迁移数据](CHAP_GettingStarted.Replication.md#CHAP_GettingStarted.Replication.Tasks)。