如何跨帐户启用S3服务器访问日志记录?

0

【以下的问题经过翻译处理】 你好,

我正在为一个我可以访问的一个bucket启用S3服务器访问日志记录,但目标账户是同一区域(us-east-1)的另一个账户。

  • A账户-必须启用日志记录的源账户
  • B账户-存储所有访问日志的目标账户

参考这个 文档,我已经将以下策略添加到B账户。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "S3ServerAccessLogsPolicy",
            "Effect": "Allow",
            "Principal": {
                "Service": "logging.s3.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::<在B账户内的s3 bucket名称>/*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "<A账户的账号>"
                }
            }
        }
    ]
}

但目标bucket是B账户内的S3 bucket时,在A账户中会得到以下错误:

You don’t have permission to edit server access logging details
You need s3:GetBucketPolicy and s3:PutBucketPolicy to update the target bucket policy (bucket settings) configuration. Learn more about Bucket policy ownership in Amazon S3 
API response - Access Denied

如果我尝试通过添加s3:GetBucketPolicy和s3:PutBucketPolicy来更新策略,我会得到以下错误。

Unknown Error
An unexpected error occurred.
API response - Action does not apply to any resource(s) in statement

我应该如何操作?

profile picture
专家
已提问 5 个月前12 查看次数
1 回答
0

【以下的回答经过翻译处理】 请注意,S3服务器访问日志仅接受属于相同AWS账户的目标存储桶。因此,您无法直接将服务器访问日志发送到其他账户。来自文档的引用。

默认情况下,Amazon S3不会收集服务器访问日志。当您启用日志记录时,Amazon S3会将源存储桶的访问日志传递到您选择的目标存储桶中。目标存储桶必须与源存储桶位于相同的AWS地区和AWS账户中,并且必须没有默认的保留期配置。

但是,您可以使用跨AWS账户的S3复制将日志文件从源账户的存储桶复制到目标账户的存储桶:

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则