Amazon S3替换默认XML错误为自定义错误不生效问题咨询
Amazon S3自定义错误文档不生效排查方案
1. 确认访问的是S3静态网站托管端点
这是最高发的问题原因
S3提供两类访问端点,只有静态网站托管专属端点支持自定义错误文档功能:
- 支持的端点格式:
{存储桶名}.s3-website-{区域}.amazonaws.com,可在S3控制台「属性」-「静态网站托管」板块直接获取 - 不支持的默认REST端点格式:
{存储桶名}.s3.{区域}.amazonaws.com,这类端点访问不存在路径时默认返回XML格式错误,不受自定义错误文档配置影响
2. 校验错误文档配置项
- 配置的错误文档路径为存储桶根目录的相对路径,无需添加前导斜杠:比如错误文件存放在根目录
404.html,配置项直接填404.html即可 - 直接访问错误文档的完整路径,确认文件本身可正常访问,无403/404错误
3. 修复权限配置问题
你之前配置的全量s3:*权限无法覆盖以下场景,需要单独校验:
- 存储桶的「公共访问阻止」配置四个开关全部关闭,否则公共访问请求会被全局拦截
- 给自定义错误文档单独配置公共读权限,存储桶策略参考如下:
{ "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::<替换为你的存储桶名称>/<替换为错误文档路径,如404.html>" }
- 如果你的存储桶前端挂载了CloudFront CDN,需要在CloudFront控制台单独配置「自定义错误响应」规则,关联S3的错误文档,否则CloudFront会直接透传S3的XML错误
4. 配置生效验证
S3静态网站配置存在1-2分钟的延迟,修改完成后等待2分钟再用静态网站托管端点访问不存在路径验证,不要使用REST端点或未配置错误规则的CDN端点测试。
内容的提问来源于stack exchange,提问作者sjaak
相关产品推荐
相关产品推荐

