我正在尝试设置我想访问CloudFront发行版的S3存储桶。
我从客户端使用AWS移动SDK上载到S3。当客户端使用S3中的文件时,我选择了CloudFront,然后一切正常,直到进行了此更改:
创建发行版时,我让CloudFront更新了存储桶策略以将OAI包括在主体中:
因此,我以为我可以在CloudFront上运行GET调用,因为CloudFront具有OAI设置,而S3存储桶反映了这一点。
但是,我一直拒绝访问:
我还需要做些什么来保护存储桶,仅允许CloudFront读取并允许我的客户端应用程序使用配置了我为其设置的poolId的SDK上载文件到它?除非我未选中“阻止所有公共访问”,否则我将通过CloudFront拒绝访问。
答案 0 :(得分:0)
不幸的是,根据documentation,声明如下:
必须在存储桶上禁用Amazon S3 Block公共访问。
这是因为它将由于Block public and cross-account access to buckets and objects through any public bucket or access point policies
值而忽略存储桶策略。
除非您的存储桶策略默认还允许匿名GetObject
,否则您的对象将不会公开。