如果加速網域名稱的來源站點使用的是阿里雲的雲端儲存OSS,並且OSS的Bucket被配置為私人模式,可以起到訪問鑒權的作用,避免非授權的請求盜刷流量,該情況下您需要給加速網域名稱開啟OSS私人Bucket回源功能。本文為您介紹如何開啟和關閉私人Bucket回源。
背景資訊
您可以配合使用阿里雲DCDN提供的Referer防盜鏈功能、URL鑒權功能,來更有效地保護您的資源不被盜刷,更多資訊,請參見配置Referer防盜鏈和配置URL鑒權。
首次使用該功能時,需要進行預設權限原則的一鍵開啟操作,開啟後將會授予DCDN產品對您同帳號下OSS產品的所有Bucket的唯讀存取權限(預設的存取權限使用STS臨時令牌來訪問OSS Bucket,不支援通過該功能對OSS Bucket進行PUT等寫入或刪除操作)。
如果您選擇配置永久安全性權杖,則需要在申請令牌的時候,限制該令牌對OSS Bucket進行PUT等寫入或者刪除操作的許可權。配置RAM使用者訪問OSS的許可權請參見以RAM使用者的方式訪問OSS。
授權成功並開啟了加速網域名稱的私人Bucket回源功能之後,您可以通過該加速網域名稱訪問您的私人Bucket內的所有資源。因此,開啟該功能前,請根據您的實際業務情況謹慎決策。如果您授權的私人Bucket內容並不適合作為DCDN加速的回源內容,請勿授權或開啟此功能。
如果您的網站有被攻擊的風險,請購買高防服務,同時謹慎授權或開啟私人Bucket回源授權功能。
DCDN回源OSS私人Bucket功能與OSS的靜態網站託管功能的預設首頁配置存在衝突,兩個功能需要同時使用的情況下,請參見說明文檔。
開啟了私人Bucket回源功能之後,DCDN節點將會在回源請求中添加一個名稱為“Authorization”的Header,其值為OSS私人Bucket鑒權簽名資訊。需要注意,回源OSS的單個請求不能同時在Header以及URL請求參數中均攜帶簽名,如果在回源請求中攜帶了Authorization要求標頭的同時,又在URL中攜帶了用於簽名認證的參數(通常由用戶端產生),例如
Expires、Signature、OSSAccessKeyId等,那麼將會導致OSS鑒權失敗。
開啟私人Bucket回源
登入DCDN控制台。
在左側導覽列,單擊域名管理。
在域名管理頁面,單擊目標網域名稱對應的配置。
在指定網域名稱的左側導覽列,單擊回源配置。
可選:您首次授權時,需要執行該步驟,在私有Bucket回源地區,單擊点击授权,繼續單擊同意授權。

在私有Bucket回源地區,開啟私有Bucket回源開關。
說明當DCDN回源OSS私人Bucket訪問非加密檔案時,完成以上配置即可正常訪問檔案。如果您在OSS上對檔案進行了KMS加密,此時將無法直接存取,需要為AliyunCDNAccessingPrivateOSSRole角色添加AliyunKMSCryptoUserAccess許可權才能正常訪問檔案。
在彈出的私有Bucket回源對話方塊中,選擇回源類型,單擊確定。

參數
說明
回源類型
同帳號回源:系統會自動設定STS安全性權杖,配置更簡單,但僅支援DCDN網域名稱回源到同一個阿里雲帳號下的OSS私人Bucket。
跨帳號回源或同帳號回源:需要配置永久安全性權杖,除了支援DCDN網域名稱回源到同一個阿里雲帳號下的OSS私人Bucket,還支援DCDN網域名稱回源到另外一個阿里雲帳號下的OSS私人Bucket。
AccessKey ID
回源目標OSS私人Bucket所屬阿里雲帳號的AccessKey ID,具體請參見建立AccessKey。
AccessKey Secret
回源目標OSS私人Bucket所屬阿里雲帳號的AccessKey Secret。
為AliyunCDNAccessingPrivateOSSRole角色添加AliyunKMSCryptoUserAccess許可權。
登入RAM控制台。
在左側導覽列,選擇。
在角色名稱列表下,找到AliyunCDNAccessingPrivateOSSRole角色。
單擊新增許可權,授權主體會自動填入。
在系統策略下搜尋AliyunKMSCryptoUserAccess,並單擊AliyunKMSCryptoUserAccess,會添加到已選擇列表。
單擊確認新增授權,顯示已完成。
單擊關閉。
關閉私人Bucket回源
如果您不希望加速網域名稱能夠訪問您私人Bucket內資源的許可權,您可以通過存取控制RAM(Resource Access Management)控制台,取消對應角色名稱的授權,關閉私人Bucket回源功能。
登入RAM控制台。
在左側導覽列,單擊。
在角色名稱列表下,單擊AliyunCDNAccessingPrivateOSSRole角色。

移除角色AliyunCDNAccessingPrivateOSSRole中的所有許可權。
單擊許可權對應的解除授權。
在解除授權的確認對話方塊中,單擊解除授權。
返回頁面,刪除AliyunCDNAccessingPrivateOSSRole角色。
單擊AliyunCDNAccessingPrivateOSSRole角色對應的刪除角色。
在刪除角色的確認對話方塊中,輸入對應的角色名稱單擊刪除角色。