使S3静态网站仅对Cloudfront访问权限可用。

0

【以下的问题经过翻译处理】 我正在使用S3存储桶托管静态网站,尝试限制访问权限仅限于cloudfront。我的当前配置如下:

{
	"Version": "2008-10-17",
	"Id": "PolicyForCloudFrontPrivateContent",
	"Statement": [
		{
			"Sid": "AllowCloudFrontServicePrincipal",
			"Effect": "Allow",
			"Principal": {
				"Service": "cloudfront.amazonaws.com"
			},
			"Action": "s3:GetObject",
			"Resource": "arn:aws:s3:::MYBUCKET/*",
			"Condition": {
				"StringEquals": {
					"AWS:SourceArn": "DISTRIBUTION_ARN/"
				}
			}
		}
	]
}

但这不能允许cloudfront访问,并返回403 Forbidden错误。我该如何解决这个问题?

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

【以下的回答经过翻译处理】 您没有提到您是否正在尝试使用Origin Access Control(OAC)或Origin Access Identity(OAI - 旧版)。

但是,您提供的策略对于OAC几乎正确,除了条件密钥应该像这样(没有尾随斜杠):

AWS:SourceArn“:”arn:aws:cloudfront::<AWS帐户ID>:distribution / <CloudFront分配ID>“

如果您在桶上使用SSE-KMS,请查看文档以获取更多信息,尤其是有关SSE-KMS的部分。

还请注意,在Cloudfront Origin设置中,有一个选项可以复制预填充的策略语句,您可以将其插入到S3 Bucket策略中。

profile picture
专家
已回答 3 个月前

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

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

回答问题的准则