配置 AWS Cloudfront 以登录到另一个 AWS 账户中的 S3 存储桶

Gar*_*aid 5 cdn amazon-cloudfront amazon-web-services

在此处输入图片说明我有一些分布在不同 AWS 账户中的 AWS Cloudfront 发行版。

我想将来自这些分布的访问日志存储在单个 AWS 账户的单个 S3 存储桶中。

这是可能的,但没有记录(我可以找到)。

目前尚不清楚日志存储桶需要对 ACL 进行哪些更新,或者需要什么(如果有)存储桶策略。

我似乎需要的是更新存储桶上的 ACL,以将 FULL_CONTROL 赋予 Cloudfront 用于写入日志的其他 AWS 帐户中的任何帐户的规范 ID。

如果其他人已经配置了这个并且可以提供帮助,我将非常感激。

MLu*_*MLu 9

(更新以供将来参考)

假设您的 CloudFront 分配在账户 123456789012 中,日志记录配置到your-logging-bucket不同账户中的存储桶。

  1. 创建一个S3 存储桶策略,为 CloudFront 账户 123456789012 授予执行s3:GetBucketAcls3:PutBucketAcl开启权限your-logging-bucket

    这是所需的存储桶策略

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::123456789012:root"     << the CloudFront account
          },
          "Action": [
            "s3:GetBucketAcl",
            "s3:PutBucketAcl"
          ],
          "Resource": "arn:aws:s3:::your-logging-bucket"
        }
      ]
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用该S3 存储桶策略*在帐户 1223456789012 中创建一个新的 CloudFront 分配,并在创建向导中启用日志记录到your-logging-bucket. 由于上述存储桶策略,它将为您创建适当的 ACL。

    您可以c4c1ede66af...8632f77d2d0通过查看 S3 -> your-logging-bucket -> Permissions -> ACL来检查是否已授予官方 CloudFront 帐户 访问权限

    在此处输入图片说明

  3. 在 123... 帐户中配置所有其他 CF 发行版以登录your-logging-bucket- 现在它应该也适用于所有预先存在的 CF 发行版。

希望有帮助:)