[英]Allow CloudFront to access an S3 bucket with an origin access identity
[英]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 policies
值Block 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.