通过 AWS 控制台访问 Root 帐户时上传的文件出现 CloudFront 403 错误

Files uploaded with CloudFront 403 error when access Root account via AWS Console

通过 CloudFront 源访问身份通过 CloudFront 将文件上传到 s3 存储桶运行成功,但是上传文件的属性无法修改,我的 AWS 账户的根用户无法访问某些元数据.我可以通过 CloudFront 端点获取文件,但是我不明白为什么我无法通过我的 AWS 根帐户通过 AWS 管理控制台修改或访问上传文件的某些字段。

s3 存储桶中的默认 ACL 用于 root 用户帐户,如下所示:

我在我的存储桶中添加了第二个策略,以确保 root 用户具有对文件的明确访问权限。完整的桶策略可以在下面看到:

{
    "Version": "2008-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity 00000000000000"
                ]
            },
            "Action": [
                "s3:PutObject",
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::my-bucket/stuff/",
                "arn:aws:s3:::my-bucket/stuff/*",
                "arn:aws:s3:::my-bucket/other-stuff/",
                "arn:aws:s3:::my-bucket/other-stuff/*"
            ]
        },
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::000000000000:root"
            },
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::my-bucket/stuff/",
                "arn:aws:s3:::my-bucket/stuff/*",
                "arn:aws:s3:::my-bucket/other-stuff/",
                "arn:aws:s3:::my-bucket/other-stuff/*"
            ]
        }
    ]
}

当我查看通过 CloudFront 上传的文件时,我在文件概览选项卡上收到针对多个选项的拒绝访问:

我还从同一文件的文件属性选项卡收到更多拒绝访问:

您需要通过您使用 CloudFront PUT/POST 进行的调用传递 ACL "Bucket-owner-full-control" link 并修改 CloudFront 的存储桶策略以允许您 PutobjectACL。