全部產品
Search
文件中心

Object Storage Service:開啟私人OSS Bucket回源後訪問CDN加速網域名稱提示“You are forbidden to list buckets”錯誤

更新時間:Aug 03, 2024

問題描述

使用阿里雲CDN加速OSS資源時,當來源站點為OSS且Bucket設定為私人時,開啟靜態網站託管功能且CDN開啟OSS私人Bucket回源的情況下,訪問CDN加速網域名稱返回403 Forbidden並提示以下錯誤:

You don't have permission to access the URL on this server

查看瀏覽器調試資訊可以看到以下響應資訊:

X-Tengine-Error: You are forbidden to list buckets

系統顯示類似如下。

CDN

問題原因

CDN回源OSS私人Bucket功能與OSS的靜態網站託管功能的預設首頁配置存在衝突。開啟回源私人Bucket後,CDN回源時預設會帶上籤名資訊,即非匿名訪問,而觸發靜態網站預設首頁的請求必須是匿名請求。

說明

OSS的Bucket在配置靜態網站託管時,需要佈建網域名的預設首頁為指定檔案,例如index.html。使用匿名身份訪問網站網域名稱(例如:https://example.com/)時會自動解析到預設首頁(例如:https://example.com/index.html)。但是CDN開啟OSS私人Bucket回源功能後,訪問CDN加速網域名稱產生的回源OSS請求相當於非匿名身份發起的根目錄訪問請求,而該請求預設會被OSS拒絕。

解決方案

在開啟私人OSS Bucket回源後,訪問CDN加速網域名稱發生報錯的排查方法如下:

  1. 請檢查靜態網站託管配置情況。

    • 如果配置了OSS的靜態網站託管功能,您可以根據實際情況選擇以下一種解決方案進行處理:

      • 如果不需要使用OSS的靜態網站託管功能,請關閉OSS的靜態網站託管功能,詳情請參見靜態網站託管概述

      • 如果需要使用OSS的靜態網站託管功能,則需要直接存取CDN加速網域名稱來實現訪問靜態首頁,需要將OSS設定為公用讀取,同時關閉OSS的私人Bucket回源。如何關閉OSS的私人Bucket回源,請參見OSS私人Bucket回源

    • 如果沒有配置OSS的靜態網站託管功能,請繼續執行下一步進行排查。

  2. 在CDN側將根網域名稱URL重寫為指向根網域名稱URL下的某個檔案,例如將CDN加速網域名稱www.example.com重寫為www.example.com/index.html。有關重寫規則的具體操作,請參見配置重寫