S3静态网站访问文件夹路径报AccessDenied问题求助
S3静态网站子路径访问AccessDenied问题排查
核心原因:使用了错误的访问端点
你应该是通过S3的REST API端点(格式如 https://__MYDOMAIN__.s3.amazonaws.com/products/)访问的,而非S3静态网站托管的专用端点(格式如 https://__MYDOMAIN__.s3-website-<区域>.amazonaws.com/products/)。
只有静态网站托管的专用端点才会自动将products/这类路径映射到对应子文件夹下的index.html;用REST端点访问时,S3会直接查找名为products/的对象(该对象不存在),因此返回AccessDenied。而直接访问products/index.html时,两种端点都能找到对应对象,所以正常。
其他排查项
- 确认静态网站托管的「索引文档」已设置为
index.html(根目录正常访问说明已配置,可再次核对)。 - 检查
products/index.html的对象路径:确保上传的文件前缀为products/,即对象键是products/index.html(S3无真实文件夹,前缀等同于路径)。 - 你的桶策略无权限问题:当前策略已允许所有用户获取桶内所有对象,权限范围完全覆盖
products/index.html。
解决方法
- 登录AWS控制台,进入目标S3桶的「属性」页面,找到「静态网站托管」模块,复制对应的网站端点URL。
- 使用该网站端点访问
products/路径,即可自动加载products/index.html。
内容的提问来源于stack exchange,提问作者David
相关产品推荐
相关产品推荐

