You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CloudFront访问S3存储桶忽略桶策略?已尝试OAC/OAI仍无效

排查CloudFront绕过S3私有桶策略的问题

以下是几个关键排查点,按优先级检查:

  • 确认CloudFront源的端点类型
    如果你用了S3的网站托管端点(格式类似bucket-name.s3-website-<region>.amazonaws.com),OAC/OAI完全不生效——S3网站端点仅支持公开访问,不会识别CloudFront的身份验证。必须切换为S3的REST端点(bucket-name.s3.amazonaws.com或bucket-name.s3.<region>.amazonaws.com),才能配合OAC/OAI限制访问。

  • 检查OAC/OAI的核心配置

    • 若用OAC:确保创建OAC时选择的是**“签名请求(推荐)”,而非“不签名请求”;同时确认CloudFront源已关联这个OAC,且S3桶的块公共访问(Block Public Access)已开启所有四项设置**(防止任何公共访问路径)。
    • 若用OAI:确认已将OAI的ARN添加到S3桶的策略中(虽然你说没配CloudFront相关策略,但如果之前配过没删除,或者ACL给OAI开了权限,也会导致访问),同时同样要确保块公共访问全开启。
  • 检查S3桶的ACL和IAM权限

    • 查看S3桶的访问控制列表(ACL):有没有给Authenticated Users或Everyone设置了读取对象的权限?即使桶策略没配置,ACL的宽松权限也会允许CloudFront匿名访问。
    • 检查IAM角色/用户权限:CloudFront的服务角色(如果配置了)或者你用来测试的IAM实体,有没有被授予s3:GetObject等访问该桶的权限?这些权限会绕过桶策略的限制。
  • 清除CloudFront缓存
    之前的可访问内容可能已经被CloudFront缓存,即使你修改了配置,缓存未过期的话依然能访问。手动创建缓存失效请求(路径填/*),再重新测试访问。

  • 验证S3桶的私有性
    直接通过S3的REST端点(不经过CloudFront)访问一个对象,确认确实无法访问——如果直接访问也能打开,说明桶本身的私有设置有问题,和CloudFront无关,重点检查块公共访问、ACL、桶策略。

内容的提问来源于stack exchange,提问作者habib_101

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 05:37:10