amazon-web-services - 允许 CloudFront 访问 S3 源,同时还具有 S3 存储桶 阻止所有公共(public)访问?

标签 amazon-web-services amazon-s3 amazon-cloudfront

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

在我的客户中,我使用 AWS 移动 SDK 上传到 S3。当客户端使用来自 S3 的文件时,我点击了 CloudFront,一切正常,直到我做出此更改:

enter image description here

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

enter image description here

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

但是,我一直收到访问被拒绝的消息:

enter image description here

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

最佳答案

不幸的是,根据documentation声明如下:

Amazon S3 Block Public Access must be disabled on the bucket.

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

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

关于amazon-web-services - 允许 CloudFront 访问 S3 源,同时还具有 S3 存储桶 阻止所有公共(public)访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64433524/

相关文章:

amazon-web-services - 如何使用 VPC Endpoint 从 VPC 内的 Lambda 发布到 SNS?

drupal - 如何通过 AWS 上的 Drush Make 从 Aegir 访问私有(private) github 存储库

amazon-web-services - 如何搜索亚马逊 s3 存储桶?

ruby-on-rails - Amazon Cloudfront 是否隐藏文件以防止直接下载?

ruby-on-rails - 如何通过 Amazon Cloudfront 控制下载次数

amazon-web-services - ECS Fargate 容量提供商

amazon-web-services - 具有 Route53 的 AWS EC2 WordPress 网站 - 找不到服务器 DNS 地址

ruby - 将回形针与 Padrino 一起使用

javascript - 无法在 Ajax 调用中将图像上传到 Amazon S3

php - 云端签名 url ip 地址