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

S3静态托管结合CloudFront OAI访问返回403拒绝问题如何解决

根因说明

你遇到的403错误是S3静态托管端点不支持CloudFront OAI校验导致的:

  • OAI是AWS专为S3 REST API源站设计的访问控制机制,仅对格式为my-bucket.s3.<region>.amazonaws.com的S3 REST端点生效
  • 你使用的my-bucket.s3-website-<region>.amazonaws.com是S3静态网站专属的HTTP服务端点,所有发往该端点的请求都会被判定为匿名请求,你配置的OAI桶策略不会对这类请求生效,因此只有开公共读才能正常访问。
修复配置步骤

你原来的S3桶策略完全符合要求,无需修改,仅调整CloudFront配置即可实现需求:

  • 第一步:修改CloudFront源站配置,将源站地址从S3静态托管端点替换为S3 REST API端点my-bucket.s3.my-region-1.amazonaws.com,源站类型选择「S3」,不要选择自定义源站
  • 第二步:在当前源站的S3访问控制配置中,确认已关联你创建的OAI FOO
  • 第三步:配置CloudFront默认根对象为index.html,如果你的站点需要支持子路径自动解析index.html(如访问/about/返回/about/index.html),可以新增CloudFront自定义错误响应:将404错误的响应码修改为200,响应路径填写/index.html(适配SPA单页应用路由),或配置CloudFront Functions做路径重写适配多页站点的子目录解析
  • 第四步:确认S3存储桶的「阻止全部公共访问」开关已开启,删除所有对象的公共读权限。
验证

等待CloudFront分发部署完成(通常5~10分钟)后,直接访问S3静态托管地址会返回403,仅通过CloudFront地址可以正常访问站点资源,无需额外配置对象公共权限,符合安全规范。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 15:45:05