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

在CloudFront和S3上部署Gatsby多语言站点出现AccessDenied错误如何解决

CloudFront访问S3静态托管站点AccessDenied问题修复方案

1. 最高频错误:源站类型配置错误

你当前S3已经开启静态网站托管模式,但是CloudFront配置源站时大概率选择了控制台默认下拉的S3 REST API端点(格式为<bucket-name>.s3.<region>.amazonaws.com),该端点不支持静态托管的默认索引映射、重定向规则等特性,哪怕文件全公开也会出现AccessDenied错误。

  • 修复方法:手动填入S3静态托管对外提供的访问域名our-site.s3-website.eu-central-1.amazonaws.com作为源站地址,源站协议选择HTTP即可(S3静态托管仅支持HTTP作为源站协议)。

2. 权限配置验证

你已经将存储桶所有文件设为公开权限,源站配置正确后无需额外权限配置。如果后续需要取消文件公开配置,可通过以下方式配置权限:

  • 配置CloudFront源站访问控制(OAC)
  • 在S3存储桶策略中添加授权,允许CloudFront服务主体读取存储桶内所有资源

3. 子路径索引映射配置

Gatsby生成的多语言站点结构为每个语言路径下对应index.html文件(如/en/对应/en/index.html):

  • 源站配置为S3静态托管端点时,S3会自动将末尾带/的路径请求映射到对应目录下的index.html,无需额外配置
  • 若后续使用S3 REST API作为源站,需要额外配置CloudFront函数,在viewer request阶段自动为路径末尾带/的请求追加index.html

4. 配置生效验证

修改完CloudFront配置后需要等待5-10分钟让配置全球生效,同时建议触发一次缓存失效,清除之前的错误响应缓存后再测试访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 23:15:01