繁体   English   中英

允许 CloudFront 访问 S3 源,同时还拥有 S3 存储桶 阻止所有公共访问?

[英]Allow CloudFront to access S3 origin while also having S3 bucket Block all public access?

我正在尝试设置我希望 CloudFront 分配访问的 S3 存储桶。

从我的客户端,我使用 AWS 移动开发工具包上传到 S3。 当客户端使用来自 S3 的文件时,我点击了 CloudFront 并且一切正常,直到我进行了此更改:

在此处输入图片说明

创建分配时,我让 CloudFront 更新存储桶策略以将 OAI 包含在委托人中:

在此处输入图片说明

所以,然后我想我可以在 CloudFront 上运行 GET 调用,因为 CloudFront 具有 OAI 设置并且 S3 存储桶反映了这一点。

但是,我不断收到拒绝访问:

在此处输入图片说明

我还需要做什么来保护存储桶并只允许 CloudFront 读取并允许我的客户端应用程序能够使用我为其设置的 poolId 配置的 SDK 将文件上传到它? 除非我不选中“阻止所有公共访问”,否则我会通过 CloudFront 拒绝访问。

不幸的是,根据文档说明如下:

必须在存储桶上禁用 Amazon S3 阻止公有访问。

这是因为它会忽略存储桶策略,因为Block public and cross-account access to buckets and objects through any public bucket or access point policiesBlock public and cross-account access to buckets and objects through any public bucket or access point policies

除非您的存储桶策略默认也允许匿名GetObject ,否则您的对象将不会是公开的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM