Amazon web services 桶策略中的主体无效

Amazon web services 桶策略中的主体无效,amazon-web-services,amazon-s3,Amazon Web Services,Amazon S3,我正试图学习如何使用AWS开发web应用程序,并遵循这个研讨会 我必须更新s3 bucket策略,因此根据B节中的说明,我将JSON文件中的字符串REPLACE_ME_bucket_NAME替换为我创建的mythicalbucket1的bucket名称,这是我得到的错误: 调用PutBucketPolicy操作时出错(格式错误):策略中的主体无效 这是JSON文件: { "Version": "2008-10-17", "Id": "PolicyForCloudFrontPriv

我正试图学习如何使用AWS开发web应用程序,并遵循这个研讨会 我必须更新s3 bucket策略,因此根据B节中的说明,我将JSON文件中的字符串
REPLACE_ME_bucket_NAME
替换为我创建的
mythicalbucket1
的bucket名称,这是我得到的错误:

调用PutBucketPolicy操作时出错(格式错误):策略中的主体无效

这是JSON文件:

{
    "Version": "2008-10-17",
    "Id": "PolicyForCloudFrontPrivateContent",
    "Statement": [
        {
            "Sid": "1",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity REPLACE_ME_CLOUDFRONT_ORIGIN_ACCESS_IDENTITY_ID"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::mythicalbucket1"
        }
    ]
}
我试图阅读bucket策略的文档,由于我必须向公众(或所有人)提供访问权限,因此我将
Principal
的值替换为
*
,这再次给出了不同的错误

查看JSON文件,我假设
REPLACE\u ME\u CLOUDFRONT\u ORIGIN\u ACCESS\u IDENTITY\u ID
必须替换为一些CLOUDFRONT ID,但不确定在这种情况下是否需要


我确实阅读了关于CloudFront ID和bucket策略的各种文档,但所有内容仍然令人困惑。非常感谢您的帮助。

该研讨会提供的文件似乎引用了Amazon CloudFront的使用。但是,说明书中没有提到这一点

因此,您只需使用:
“主体”:“*”

另外,请注意,这一行的末尾应该有一个
/*

"Resource": "arn:aws:s3:::REPLACE_ME_BUCKET_NAME/*"

确保在您的bucket名称后面仍然有一个
/*

这很有效!非常感谢@John。我以前不知道我必须包含“/*”,这就是“主体”的原因:“*”不起作用。
/*
的原因是它授予
GetObject
对bucket内容的权限,而不是对bucket本身的权限。