本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
导出邮箱内容
使用《Amazon WorkMail API 参考》中的 StartMailboxExportJob API 操作将 Amazon WorkMail 邮箱内容导出到 Amazon Simple Storage Service (Amazon S3) 存储桶。此操作会以 MIME 格式将指定邮箱中的所有电子邮件和日历项目导出到 Amazon S3 存储桶中的一个 .zip
文件中。不会导出联系人和任务等其他项目。
完成邮箱导出作业所需的时间取决于邮箱中项目的大小和数量。由于邮箱导出作业会持续一段时间,因此它不代表邮箱内容在单个时间点的快照。要查看导出作业的状态,请使用《Amazon WorkMail API 参考》中的 DescribeMailboxExportJob 或 ListMailboxExportJobs 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:SourceArn
和 aws: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-documentfile://mailbox-export-trust-policy.json
--regionus-east-1
aws iam put-role-policy --role-name
WorkmailMailboxExportRole
--policy-nameMailboxExport
--policy-documentfile://mailbox-export-policy.json
有关 AWS CLI 的更多信息,请参阅《AWS Command Line Interface 用户指南》。
示例:导出邮箱内容
在上一部分中创建 IAM 角色和策略后,请完成以下步骤导出邮箱内容。您必须拥有 Amazon WorkMail 组织 ID 和用户 ID(实体 ID),您可以在 Amazon WorkMail 控制台中或通过使用 Amazon WorkMail API 访问它们。
示例:导出邮箱内容
使用 AWS CLI 启动邮箱导出作业。
aws workmail start-mailbox-export-job --organization-id
m-a123b4c5de678fg9h0ij1k2lm234no56
--entity-idS-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-nameAWSDOC-EXAMPLE-BUCKET
--s3-prefixS3-PREFIX
使用 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-idJOB-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 存储桶