导出邮箱内容 - Amazon WorkMail

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

导出邮箱内容

使用《Amazon WorkMail API 参考》中的 StartMailboxExportJob API 操作将 Amazon WorkMail 邮箱内容导出到 Amazon Simple Storage Service (Amazon S3) 存储桶。此操作会以 MIME 格式将指定邮箱中的所有电子邮件和日历项目导出到 Amazon S3 存储桶中的一个 .zip 文件中。不会导出联系人和任务等其他项目。

完成邮箱导出作业所需的时间取决于邮箱中项目的大小和数量。由于邮箱导出作业会持续一段时间,因此它不代表邮箱内容在单个时间点的快照。要查看导出作业的状态,请使用《Amazon WorkMail API 参考》中的 DescribeMailboxExportJobListMailboxExportJobs API 操作。

邮箱导出作业完成后,将使用您提供的对称 AWS Key Management Service (AWS KMS) 客户主密钥 (CMK) 对 Amazon S3 存储桶中的 .zip 文件进行加密。由于 AWS KMS 加密已与 Amazon S3 集成,因此只要用户有权访问 AWS KMS CMK,下载后即可查看解密后的数据。

先决条件

以下是导出邮箱内容的先决条件:

  • 编程能力。

  • 一个 Amazon WorkMail 管理员账户。

  • 一个不允许公有访问的 Amazon S3 存储桶。有关更多信息,请参阅《Amazon Simple Storage Service 用户指南》中的使用 Amazon S3 屏蔽公共访问权限Amazon Simple Storage Service 用户指南

  • 一个对称 AWS KMS CMK。有关更多信息,请参阅《AWS Key Management Service 开发人员指南》中的入门

  • 一个 AWS Identity and Access Management (IAM) 角色,其策略授予写入 Amazon S3 存储桶并使用 AWS KMS CMK 加密已发送文件的权限。有关更多信息,请参阅亚马逊如何 WorkMail 使用 IAM

IAM 策略示例和角色创建

以下示例显示了一个 IAM 策略,该策略授予写入 Amazon S3 存储桶并使用 AWS KMS CMK 加密已发送文件的权限。要在以下示例:导出邮箱内容过程中使用此示例策略,请将该策略另存为文件名为 mailbox-export-policy.json 的 JSON 文件。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:PutObject", "s3:GetBucketPolicyStatus" ], "Resource": [ "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET", "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET/*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:us-east-1:111122223333:key/KEY-ID" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.us-east-1.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET/S3-PREFIX*" } } } ] }

以下示例显示了一个附加到您创建的 IAM 角色的 IAM 信任策略。要在以下示例:导出邮箱内容过程中使用此示例策略,请将该策略另存为文件名为 mailbox-export-trust-policy.json 的 JSON 文件。

您不必同时使用 aws:SourceArnaws:SourceAccount 条件。例如,如果您需要使用相同的角色从同一 AWS 账户下的不同 Amazon WorkMail 组织导出消息,则可以从该策略中删除 aws:SourceArn。有关条件键的更多信息,请参阅《AWS Identity and Access Management 用户指南》中的 AWS 全局条件上下文键

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "export.workmail.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:workmail:us-east-1:111122223333:organization/m-a123b4c5de678fg9h0ij1k2lm234no56" } } } ] }

您可以使用 AWS CLI 通过运行以下命令在您的账户中创建 IAM 角色。

aws iam create-role --role-name WorkmailMailboxExportRole --assume-role-policy-document file://mailbox-export-trust-policy.json --region us-east-1
aws iam put-role-policy --role-name WorkmailMailboxExportRole --policy-name MailboxExport --policy-document file://mailbox-export-policy.json

有关 AWS CLI 的更多信息,请参阅《AWS Command Line Interface 用户指南》。

示例:导出邮箱内容

在上一部分中创建 IAM 角色和策略后,请完成以下步骤导出邮箱内容。您必须拥有 Amazon WorkMail 组织 ID 和用户 ID(实体 ID),您可以在 Amazon WorkMail 控制台中或通过使用 Amazon WorkMail API 访问它们。

示例:导出邮箱内容
  1. 使用 AWS CLI 启动邮箱导出作业。

    aws workmail start-mailbox-export-job --organization-id m-a123b4c5de678fg9h0ij1k2lm234no56 --entity-id S-1-1-11-1111111111-2222222222-3333333333-3333 --kms-key-arn arn:aws:kms:us-east-1:111122223333:key/KEY-ID --role-arn arn:aws:iam::111122223333:role/WorkmailMailboxExportRole --s3-bucket-name AWSDOC-EXAMPLE-BUCKET --s3-prefix S3-PREFIX
  2. 使用 AWS CLI 监控您的 Amazon WorkMail 组织的邮箱导出作业的状态。

    aws workmail list-mailbox-export-jobs --organization-id m-a123b4c5de678fg9h0ij1k2lm234no56

    或者,使用 start-mailbox-export-job 命令生成的作业 ID 仅监控该邮箱导出作业的状态。

    aws workmail describe-mailbox-export-job --organization-id m-a123b4c5de678fg9h0ij1k2lm234no56 --job-id JOB-ID

当邮箱导出作业状态为已完成时,导出的邮箱项目会以 .zip 文件的形式存在于指定的 Amazon S3 存储桶中。

以下是导出邮箱的输出日志示例:

{ "totalNonExportableItems" : "13", "totalMessages" : "76", "sha384Hash" : "4de93a***96a1dd", "totalBytes" : "161892", "totalFolders" : "15", "startTime" : "168***380", "endTime" : "168***384" }
注意

totalNonExportableItems 是不受支持的项目,如备注和联系人。

注意事项

导出 Amazon WorkMail 的邮箱作业时,请注意以下事项:

  • 对于给定的 Amazon WorkMail 组织,您最多可以同时运行 10 个邮箱导出作业。

  • 您可以每隔 24 小时为给定邮箱运行一次邮箱导出作业。

  • 以下资源必须全部位于同一 AWS 区域中:

    • Amazon WorkMail 组织

    • AWS KMS CMK

    • Amazon S3 存储桶