本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
要接收账单报告,您的 AWS 账户中必须有一个 Amazon S3 存储桶才能接收和存储报告。在账单控制台中创建成本和使用情况报告时,您可以选择您拥有的现有 Amazon S3 存储桶或创建新的存储桶。无论哪种情况,都要求您检查并确认应用了以下默认存储桶策略。如果在 Amazon S3 控制台中编辑此政策,或者在创建成本和使用情况报告后更改存储桶拥有者,则无法 AWS 提交报告。在将账单报告数据存储在 Amazon S3 存储桶时,将按标准 Amazon S3 费率计费。有关更多信息,请参阅 限额和限制。
在创建成本和使用情况报告时,将为每个存储桶应用以下策略:
{
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "billingreports.amazonaws.com"
},
"Action": [
"s3:GetBucketAcl",
"s3:GetBucketPolicy"
],
"Resource":"arn:aws:s3:::amzn-s3-demo-bucket",
"Condition": {
"StringEquals": {
"aws:SourceArn": "arn:aws:cur:us-east-1:${AccountId}:definition/*",
"aws:SourceAccount": "${AccountId}"
}
}
},
{
"Sid": "Stmt1335892526596",
"Effect": "Allow",
"Principal": {
"Service": "billingreports.amazonaws.com"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
"Condition": {
"StringEquals": {
"aws:SourceArn": "arn:aws:cur:us-east-1:${AccountId}:definition/*",
"aws:SourceAccount": "${AccountId}"
}
}
}
]
}
该默认策略有助于确保存储桶所有者可以读取成本和使用情况报告数据,并确认存储桶由创建成本和使用情况报告的账户拥有。具体来说:
-
每次交付成本和使用情况报告时, AWS 首先要确认存储桶是否仍归设置报告的账户所有。如果存储桶所有权发生变化,则不会传送报告。这有助于确保账户的账单数据安全性。此存储桶策略允许 AWS (
"Effect": "Allow"
) 检查哪个账户拥有该存储桶 ("Action": ["s3:GetBucketAcl", "s3:GetBucketPolicy"
)。 -
要将报告发送到您的 Amazon S3 存储桶, AWS 需要该存储桶的写入权限。为此,存储桶策略授予 (
"Effect": "Allow"
) AWS 成本和使用情况报告服务 ("Service": "billingreports.amazonaws.com"
) 向您拥有的存储桶提交 ("Action": "s3:PutObject"
) 报告的权限("Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
)。此存储桶策略不 AWS 授予读取或删除存储桶中任何对象的权限,包括交付后的成本和使用情况报告。
-
对于启用了 ACL 的 Amazon S3 存储桶,在提交报告时会 AWS 进一步
BucketOwnerFullControl
将 ACL 应用于报告。默认情况下,Amazon S3 对象(例如这些报告)只能由写入它们的用户或服务主体读取。要为您或存储桶所有者提供读取报告的权限, AWS 必须应用BucketOwnerFullControl
ACL。ACL 为存储桶所有者授予这些报告的Permission.FullControl
权限。不过,建议禁用 ACL 并使用 Amazon S3 存储桶策略控制访问。请注意,Amazon S3 已更改默认设置,对于新创建的存储桶,默认情况下 ACLs 处于禁用状态。有关更多信息,请参阅控制对象的所有权和禁 ACLs 用存储桶。
如果您在账单控制台中看到成本和使用情况报告出现无效存储桶错误,应验证该策略和存储桶所有权在报告设置后是否未发生变化。