本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon SES 和安全协议
本主题介绍当您连接到 Amazon SES 时以及当 SES 将电子邮件传递给接收方时,您可以使用的安全协议。
电子邮件发件人到 Amazon SES
您用于连接到 Amazon SES 的安全协议取决于您使用的是 Amazon SES API 还是 Amazon SES SMTP 接口,如下所述。
HTTPS
如果您使用的是 Amazon SES API(直接使用或通过 AWS 软件开发工具包),则所有通信都将通过 Amazon SES HTTPS 终端节点通过 TLS 加密。Amazon SES HTTPS 端点支持 TLS 1.2 和 TLS 1.3。
SMTP 接口
如果通过 SMTP 接口访问 Amazon SES,那么您需要使用传输层安全性(TLS)来加密您的连接。请注意,提及 TLS 时通常使用其前身协议的名称:安全套接字层 (SSL)。
Amazon SES 支持两种建立 TLS 加密连接的机制:STARTTLS 和 TLS Wrapper。
-
STARTTLS – STARTTLS 是一种将未加密的连接升级到加密连接的方式。提供了适用于各种协议的 STARTTLS 版本;SMTP 版本已在 RFC 3207
中定义。对于 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 端点。
Amazon SES 到接收方
虽然 TLS 1.3 是我们的默认传送方式,但 SES 可以使用早期版本的 TLS 将电子邮件传送到邮件服务器。
默认情况下,Amazon SES 使用操作 TLS。SES 中的机会主义 TLS 始终使用 STARTTLS,并且不包括 TLS 封装器。如果客户端和服务器都支持 STARTTLS,则流程包括建立初始纯文本连接,然后升级到 TLS 加密会话。如果 SES 无法建立安全连接,它会发送未加密的消息。
您可以使用配置集来更改此行为。使用 PutConfigurationSetDeliveryOptionsAPI 操作将配置的TlsPolicy属性设置为Require。您可以使用 AWS CLI
配置 Amazon SES 以要求配置集的 TLS 连接
-
在命令行输入以下命令:
aws sesv2 put-configuration-set-delivery-options --configuration-set-nameMyConfigurationSet--tls-policy REQUIRE在前面的示例中,
MyConfigurationSet替换为配置集的名称。如果您使用此配置集来发送电子邮件,那么只有当 Amazon SES 能够建立安全连接时,它才会将邮件发送到接收电子邮件服务器。如果 Amazon SES 无法与接收电子邮件服务器建立安全连接,那么它会丢弃该邮件。
End-to-end 加密
您可以使用 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