

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

# 交付到 S3 存储桶操作
<a name="receiving-email-action-s3"></a>

**传送到 S3 存储桶**操作会将邮件传送到 S3 存储桶，并且可以选择通过 SNS 等方式向您发送通知。此操作具有以下选项。
+ **S3 存储桶** – 用于保存收到的电子邮件的 S3 存储桶的名称。您也可以在设置操作时通过选择**创建 S3 存储桶**来创建新的 S3 存储桶。Amazon SES 为您提供原始、未经修改的电子邮件，通常是多用途 Internet 邮件扩展（MIME）格式。有关 MIME 格式的更多信息，请参阅 [RFC 2045](https://tools.ietf.org/html/rfc2045)。
**重要**  
Amazon S3 存储桶必须存在于 SES [电子邮件接收](regions.md#region-receive-email) 可用的区域；否则，您必须使用下面介绍的 IAM 角色选项。
当您将电子邮件保存到 S3 存储桶时，默认的最大电子邮件大小（包括标头）为 40 MB。
SES 不支持通过已配置默认保留期的对象锁定启用上传至 S3 存储桶的接收规则。
如果通过指定您自己的 KMS 密钥在 S3 桶上应用加密，请确保使用完全限定的 KMS 密钥 ARN，而不是 KMS 密钥别名；使用别名可能导致以属于请求者而非桶管理员的 KMS 密钥对数据进行加密。请参阅[使用加密进行跨账户操作](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-encryption.html#bucket-encryption-update-bucket-policy)。
+ **对象键前缀** – 在 S3 存储桶中使用的可选键名称前缀。您可以通过键名称前缀以文件夹结构组织您的 S3 存储桶。例如，如果您使用 *Email* 作为**对象键前缀**，您的电子邮件将显示在 S3 存储桶中名为 *Email* 的文件夹中。
+ **消息加密** – 在将收到的电子邮件发送到 S3 存储桶之前对其进行加密的选项。
+ **KMS 加密密钥** –（如果选择了*消息加密*，则可用。） SES 应在将电子邮件保存到 S3 存储桶之前用于对其进行加密的 AWS KMS 密钥。您可以使用默认的 KMS 密钥或者您在 KMS 中创建的客户自主管理型密钥。
**注意**  
您选择的 KMS 密钥必须与用于接收电子邮件的 SES 端点位于同一 AWS 区域。
  + 要使用默认 KMS 密钥，请在设置接收规则时在 SES 控制台中选择 **aws/ses**。如果使用 SES API，可以通过提供 `arn:aws:kms:REGION:AWSACCOUNTID:alias/aws/ses` 形式的 ARN 指定默认 KMS 密钥。例如，如果您的 AWS 账户 ID 是 123456789012，并且您想要在 us-east-1 区域中使用默认 KMS 密钥，则默认 KMS 密钥的 ARN 为 `arn:aws:kms:us-east-1:123456789012:alias/aws/ses`。如果您使用默认 KMS 密钥，则不需要执行任何其他步骤来为 SES 提供使用它的权限。
  + 要使用在 KMS 中创建的客户自主管理型密钥，请提供 KMS 密钥的 ARN，并确保在密钥策略中添加一条语句，为 SES 提供使用该密钥的权限。有关提供权限的更多信息，请参阅[授予 Amazon SES 电子邮件接收的权限](receiving-email-permissions.md)。

  有关将 KMS 与 SES 结合使用的更多信息，请参阅《[AWS Key Management Service Developer Guide](https://docs.aws.amazon.com/kms/latest/developerguide/services-ses.html)》。如果您未在控制台或 API 中指定 KMS 密钥，则 SES 将不会加密您的电子邮件。
**重要**  
您的邮件将使用 S3 加密客户端通过 SES 进行加密，然后再提交到 S3 进行存储。它并不使用 S3 服务器端加密进行加密。这意味着，在从 S3 中检索电子邮件后，您必须使用 S3 加密客户端解密电子邮件，因为该服务没有使用 KMS 密钥进行解密的访问权限。此加密客户端可在[适用于 Java 的 AWS SDK](https://aws.amazon.com/sdk-for-java/)和[适用于 Ruby 的 AWS SDK](https://aws.amazon.com/sdk-for-ruby/)中获取。有关更多信息，请参阅 [Amazon Simple Storage Service 用户指南](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingClientSideEncryption.html)。
+ **IAM 角色** – SES 用来访问*传送到 S3* 操作（Amazon S3 存储桶、SNS 主题和 KMS 密钥）中的资源的 IAM 角色。如果未提供，则需要明确授予 SES 单独访问每个资源的权限，请参阅[授予 Amazon SES 电子邮件接收的权限](receiving-email-permissions.md)。

  如果您想向一个位于 SES *电子邮件接收*不可用区域的 S3 存储桶写入数据，则您必须使用一个 IAM 角色，该角色要能够将写入 S3 权限策略作为角色的内联策略。您可以直接从控制台应用此操作的权限策略：

  1. 在 **IAM 角色**字段中选择**创建新角色**，然后输入名称，接着选择**创建角色**。（此角色的 IAM 信任策略将在后台自动生成。）

  1. 由于 IAM 信任策略是自动生成的，因此您只需将操作的权限策略添加到角色中 - 选择 **IAM 角色**字段下的**查看角色**即可打开 IAM 控制台。

  1. 在**权限**选项卡下，选择**添加权限**，然后选择**创建内联策略**。

  1. 在**指定权限**页面上，在**策略编辑器**中选择 **JSON**。

  1. 将权限策略从 [适用于 S3 操作的 IAM 角色权限](receiving-email-permissions.md#receiving-email-permissions-s3-iam-role) 复制并粘贴到**策略编辑器**中，然后将红色文本中的数据替换为您自己的数据。（请务必删除编辑器中的所有示例代码。）

  1. 选择**下一步**。

  1. 选择**创建策略**，查看并创建您的 IAM 角色权限策略。

  1. 选择已打开 SES **创建规则** – **添加操作**页面的浏览器选项卡，然后继续执行创建规则的其余步骤。
+ **SNS 主题** – 在电子邮件保存到 S3 存储桶时发出通知的 Amazon SNS 主题的名称或 ARN。SNS 主题 ARN 的示例：*arn:aws:sns:us-east-1:123456789012:MyTopic*。您也可以在设置操作时通过选择**创建 SNS 主题**来创建 SNS 主题。有关 SNS 主题的更多信息，请参阅《[Amazon Simple Notification Service Developer Guide](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html)》。
**注意**  
您选择的 SNS 主题必须与用于接收电子邮件的 SNS 端点位于同一 AWS 区域。
仅对与 SES 接收规则关联的 SNS 主题使用*客户自主管理型* KMS 密钥加密，因为您需要编辑 KMS 密钥策略以允许 SES 发布到 SNS。这与 *AWS 管理的* KMS 密钥策略不同，后者按设计不可编辑。