开启私有OSS Bucket回源后,访问域名提示“You are forbidden to list buckets”错误

更新时间:2024-05-27 05:46:30

您通过CDNOSS存储上的静态资源做分发加速时,同时希望在开启CDN私有Bucket的情况下,使用OSS的静态网站托管。通过本文,为您解决该情况下的访问报错问题。

背景信息

问题现象

OSS Bucket权限设置为私有、开启静态网站托管功能且CDN开启OSS私有Bucket回源。

用户访问https://example.com/,希望能够访问网站首页https://example.com/index.html,但是CDN节点会给用户返回403 Forbidden并提示You don't have permission to access the URL on this server.。查看浏览器调试信息可以看到响应信息x-tengine-error: You are forbidden to list buckets403错误

问题原因

CDN的私有Bucket回源功能和OSS静态网站托管功能的默认首页配置冲突。

说明
OSS的Bucket在配置静态网站托管的时候,需要配置域名的默认首页为指定文件,例如index.html,使用匿名身份访问网站域名(例如:https://example.com/)的时候会自动解析到默认首页(例如:https://example.com/index.html)。但是CDN开启OSS私有Bucket回源功能后,访问CDN加速域名产生的回源OSS请求相当于非匿名身份发起的根目录访问请求,而该请求默认会被CDN拒绝,导致用户访问被拒绝而出现“You are forbidden to list buckets”报错。

解决方案

  • 方案一:如果您不需要使用OSS的静态网站托管功能,关闭OSS的静态网站托管功能即可。具体方法,请参见静态网站托管概述删除静态网站托管配置。
  • 方案二:如果您需要使用OSS的静态网站托管功能,那么在开启OSS的静态网站托管功能后,您需要在CDN中配置URI重写规则,避免出现CDN回源访问根目录的情况。

    配置方法:待重写的Path配置为支持根目录访问的^/$目标Path配置为/index.html执行规则选择Redirect。配置完成后,当客户端请求www.example.com/时,CDN节点将返回302让客户端重新请求www.example.com/index.html的内容。具体步骤,请参见配置访问URL改写规则

上一篇:无下一篇:CDN
  • 本页导读 (1)
  • 背景信息
  • 问题现象
  • 问题原因
  • 解决方案
  • 相关文档
AI助理

点击开启售前

在线咨询服务

你好,我是AI助理

可以解答问题、推荐解决方案等