AWS S3+Cloudfront 访问被拒绝初学者问题

Posted

技术标签:

【中文标题】AWS S3+Cloudfront 访问被拒绝初学者问题【英文标题】:AWS S3+Cloudfront access denied beginner question 【发布时间】:2022-01-11 22:14:30 【问题描述】:

我第一次使用 cloudfront + s3 时遇到了一个小问题。我只想通过云端访问我的图像。在 S3 上,我已阻止所有公共访问。 Cloudfront 源设置为 S3 存储桶。

问题是当我现在尝试通过云端域名访问我的图像时。

XXX.cloudfront.net/folder/image.jpg

我得到了错误

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>

但是,如果我在 s3 存储桶上设置公共访问权限

Block public and cross-account access to buckets and objects through any public bucket or access point policies
S3 will ignore public and cross-account access for buckets or access points with policies that grant public access to buckets and objects.

然后我可以从云端链接查看图像。是否可以在没有公共访问权限的情况下查看云端图像?

【问题讨论】:

【参考方案1】:

当您将 S3 对象设为私有时,公众将无法访问它们,但 CloudFront 也无法再访问它们。这就是您收到 403 错误的原因。为了使其工作,您需要授予 CloudFront 访问这些私有对象的权限。为此,您可以创建一个源访问身份,然后在 S3 存储桶上设置适当的权限,以便 CloudFront 能够读取私有对象。

以下是有关如何在 CloudFront 控制台中进行设置的分步说明: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html#private-content-creating-oai-console

【讨论】:

以上是关于AWS S3+Cloudfront 访问被拒绝初学者问题的主要内容,如果未能解决你的问题,请参考以下文章

Cloudfront 访问被拒绝

aws cloudfront - 使用 S3 拒绝访问

AWS CloudFront 拒绝访问 S3 存储桶

AWS CloudFront 签名 URL 的访问被拒绝

带有签名 URL 的 AWS CloudFront:403 访问被拒绝

Amazon Cloudfront 签名 URL 访问被拒绝问题