View a markdown version of this page

设置用于数据导出的 Amazon S3 存储桶 - AWS Data Exports

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

设置用于数据导出的 Amazon S3 存储桶

要接收和存储导出的数据,您的 AWS 账户或指定的目标 AWS 账户中必须有一个 Amazon S3 存储桶。在控制台中创建导出时,如果您想在自己的存储桶中导出,则可以选择自己拥有的现有 S3 存储桶,也可以创建新的存储桶。无论哪种情况,您都需要查看并确认应用了以下默认 S3 存储桶策略。如果您希望将导出内容传送到其他 AWS 账户拥有的存储桶,则可以在数据导出创建过程中指定存储桶所有者和存储桶名称。在创建导出后编辑存储桶策略或更改 S3 存储桶所有者可能会阻止 Data Exports 交付您的导出。将导出数据存储在任何 S3 存储桶中均按标准 Amazon S3 费率计费。有关更多信息,请参阅限额和限制

在创建数据导出时,必须将以下策略应用于每个 S3 存储桶,无论这些存储桶归您所有还是其他 AWS 账户所有:

{ "Version":"2012-10-17", "Statement": [ { "Sid": "EnableAWSDataExportsToWriteToS3", "Effect": "Allow", "Principal": { "Service": [ "bcm-data-exports.amazonaws.com" ] }, "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::{bucket-name}/*", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:bcm-data-exports:us-east-1:{source-account-id}:export/*" }, "StringEquals": { "aws:SourceAccount": "{source-account-id}" } } } ] }

此 S3 存储桶策略可确保 Data Exports 只能代表创建导出的账户将导出交付到 S3 存储桶。它还允许数据导出验证 S3 存储桶是否仍归创建导出期间指定的账户所有。

  • 要将导出内容传送到您的 S3 存储桶, AWS 需要该 S3 存储桶的写入权限。为此,S3 存储桶策略会授予 Data Exports 服务 (bcm-data-exports.amazonaws.com) 将 (s3:PutObject) 报告交付到您拥有的 S3 存储桶 (arn:aws:s3:::<EXAMPLE-BUCKET>/*) 的权限。

  • 每次 Data Exports 请求写入 S3 存储桶时,都必须提供创建导出的账户的账户 ID。条件键 aws:SourceArnaws:SourceAccount 会强制执行此操作。

  • 此 S3 存储桶策略不 AWS 授予读取或删除 S3 存储桶中任何对象的权限,包括成本和使用情况报告。

对于启用了访问控制列表 (ACL) 的 Amazon S3 存储桶,Data Exports 会在交付报告时将 BucketOwnerFullControl ACL 应用于报告。默认情况下,Amazon S3 对象(例如这些报告)只能由写入它们的用户或服务主体读取。要为您或 S3 存储桶拥有者提供读取报告的权限, AWS 需要应用 BucketOwnerFullControl ACL。该 ACL 会向 S3 存储桶拥有者授予对这些报告的 Permission.FullControl 权限。但是,建议禁用 ACL 并使用 S3 存储桶策略来控制访问。

注意

对于新创建的 S3 存储桶,默认情况下 ACLs 处于禁用状态。有关更多信息,请参阅控制对象的所有权和禁 ACLs 用存储桶

如果您在 Data Exports 控制台页面中看到无效存储桶错误,请验证相应的策略和 S3 存储桶所有权自报告设置以来是否未发生任何更改。