

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

# Amazon SES 和安全协议
<a name="security-protocols"></a>

本主题介绍当您连接到 Amazon SES 时以及当 SES 将电子邮件传递给接收方时，您可以使用的安全协议。

## 电子邮件发件人到 Amazon SES
<a name="security-client-to-ses"></a>

您用于连接到 Amazon SES 的安全协议取决于您使用的是 Amazon SES API 还是 Amazon SES SMTP 接口，如下所述。

### HTTPS
<a name="security-client-to-ses-api"></a>

如果您使用的是 Amazon SES API（直接使用或通过 AWS 软件开发工具包），则所有通信都将通过 Amazon SES HTTPS 终端节点通过 TLS 加密。Amazon SES HTTPS 端点支持 TLS 1.2 和 TLS 1.3。

### SMTP 接口
<a name="security-client-to-ses-smtp"></a>

如果通过 SMTP 接口访问 Amazon SES，那么您需要使用传输层安全性（TLS）来加密您的连接。请注意，提及 TLS 时通常使用其前身协议的名称：安全套接字层（SSL）。

Amazon SES 支持两种建立 TLS 加密连接的机制：STARTTLS 和 TLS Wrapper。
+ **STARTTLS**：STARTTLS 是一种将未加密的连接升级到加密连接的方式。提供了适用于各种协议的 STARTTLS 版本；SMTP 版本已在 [RFC 3207](https://www.ietf.org/rfc/rfc3207.txt) 中定义。对于 STARTTLS 连接，Amazon SES 支持 TLS 1.2 和 TLS 1.3。
+ **TLS Wrapper**：TLS Wrapper（也称为 SMTPS 或握手协议）是一种在无需先建立未加密连接的情况下启动加密连接的方式。利用 TLS Wrapper，Amazon SES SMTP 端点不执行 TLS 协商：客户端负责使用 TLS 连接到端点，然后继续对整个对话使用 TLS。虽然 TLS Wrapper 是一项旧协议，但许多客户端仍支持它。对于 TLS 包装器连接，Amazon SES 支持 TLS 1.2 和 TLS 1.3。

有关使用这些方法来连接到 Amazon SES SMTP 接口的信息，请参阅[连接到 Amazon SES SMTP 端点](smtp-connect.md)。

## Amazon SES 到接收方
<a name="security-ses-to-receiver"></a>

 虽然 TLS 1.3 是我们的默认传送方式，但 SES 可以使用早期版本的 TLS 将电子邮件传送到邮件服务器。

默认情况下，Amazon SES 使用*操作 TLS*。SES 中的机会主义 TLS 始终使用 STARTTLS 并且不包括 TLS 包装器。流程包括建立初始的明文连接，然后如果客户端和服务器都支持 STARTTLS，则升级到 TLS 加密会话。如果 SES 无法建立安全连接，那么它会发送未加密的邮件。

您可以使用配置集来更改此行为。使用 [PutConfigurationSetDeliveryOptions](https://docs.aws.amazon.com/ses/latest/APIReference/API_PutConfigurationSetDeliveryOptions.html)API 操作将配置的`TlsPolicy`属性设置为`Require`。您可以使用 [AWS CLI](https://aws.amazon.com/cli) 来实施此更改。

**配置 Amazon SES 以要求配置集的 TLS 连接**
+ 在命令行输入以下命令：

  ```
  aws sesv2 put-configuration-set-delivery-options --configuration-set-name {{MyConfigurationSet}} --tls-policy REQUIRE
  ```

  在前面的示例中，{{MyConfigurationSet}}替换为配置集的名称。

  如果您使用此配置集来发送电子邮件，那么只有当 Amazon SES 能够建立安全连接时，它才会将邮件发送到接收电子邮件服务器。如果 Amazon SES 无法与接收电子邮件服务器建立安全连接，那么它会丢弃该邮件。

## End-to-end 加密
<a name="security-end-to-end"></a>

您可以使用 Amazon SES 发送使用 S/MIME 或 PGP 加密的消息。使用这些协议的消息会被发送人加密。只有拥有解密消息所需私有密钥的收件人才能查看其内容。

Amazon SES 支持以下 MIME 类型，您可以使用这些类型来发送 S/MIME 加密的电子邮件：
+ `application/pkcs7-mime`
+ `application/pkcs7-signature`
+ `application/x-pkcs7-mime`
+ `application/x-pkcs7-signature`

Amazon SES 还支持以下 MIME 类型，您可以使用它们来发送通过 PGP 加密的电子邮件：
+ `application/pgp-encrypted`
+ `application/pgp-keys`
+ `application/pgp-signature`