如果加速域名的源站使用的是阿里云對象存儲OSS,并且OSS的Bucket被配置為私有模式(可以起到訪問鑒權的作用,避免非授權的請求盜刷流量),該情況下建議您給加速域名開啟OSS私有Bucket回源功能,可以實現通過CDN加速OSS私有Bucket資源。
注意事項
首次使用該功能時,需要進行默認權限策略的一鍵開啟操作,開啟后將會授予CDN產品對您同賬號下OSS產品的所有Bucket的只讀訪問權限(默認的訪問權限使用STS臨時令牌來訪問OSS Bucket,不支持通過該功能對OSS Bucket進行PUT等寫入或刪除操作)。
如果您選擇配置永久安全令牌,則需要在申請令牌的時候,限制該令牌對OSS Bucket進行PUT等寫入或者刪除操作的權限。配置RAM用戶訪問OSS的權限請參見以RAM用戶的方式訪問OSS。
授權成功并開啟了加速域名的私有Bucket回源功能之后,您可以通過該加速域名訪問您的私有Bucket內的所有資源。因此,開啟該功能前,請根據您的實際業務情況謹慎決策。如果您授權的私有Bucket內容并不適合作為CDN加速的回源內容,請勿授權或開啟此功能。
如果您的網站有被攻擊的風險,請購買高防服務,同時謹慎授權或開啟私有Bucket回源授權功能。
CDN回源OSS私有Bucket功能與OSS的靜態網站托管功能的默認首頁配置存在沖突,兩個功能需要同時使用的情況下,請參見說明文檔。
開啟了私有Bucket回源功能之后,CDN節點將會在回源請求中添加一個名稱為“Authorization”的Header,其值為OSS私有Bucket鑒權簽名信息。需要注意,回源OSS的單個請求不能同時在Header以及URL請求參數中均攜帶簽名,如果在回源請求中攜帶了Authorization請求頭的同時,又在URL中攜帶了用于簽名認證的參數(通常由客戶端生成),例如
Expires
、Signature
、OSSAccessKeyId
等,那么將會導致OSS鑒權失敗,詳細說明請參見說明文檔。您可以配合使用阿里云CDN提供的Referer防盜鏈功能、URL鑒權功能,來更有效地保護您的資源不被盜刷,更多信息,請參見配置Referer防盜鏈和配置URL鑒權。
開啟私有Bucket回源
登錄CDN控制臺。
在左側導航欄,單擊域名管理。
在域名管理頁面,單擊目標域名對應的管理。
在指定域名的左側導航欄,單擊回源配置。
可選:您首次使用該功能時,需要執行授權操作。在阿里云OSS私有Bucket回源區域,單擊點擊授權,繼續單擊同意授權。
說明如果無法通過CDN控制臺的授權按鈕來一鍵開啟授權,您還可以在RAM訪問控制臺CDN回源OSS私有Bucket權限,具體操作請參見通過RAM訪問控制服務開啟CDN回源OSS私有Bucket權限。
在阿里云OSS私有Bucket回源區域,打開阿里云OSS私有Bucket回源開關。
說明當CDN回源OSS私有Bucket訪問非加密文件時,完成以上配置即可正常訪問文件。如果您在OSS上對文件進行了KMS加密,此時將無法直接訪問,需要為AliyunCDNAccessingPrivateOSSRole角色添加AliyunKMSCryptoUserAccess權限才能正常訪問文件。具體操作請參見為AliyunCDNAccessingPrivateOSSRole角色添加AliyunKMSCryptoUserAccess權限 。
在彈出的阿里云OSS私有Bucket回源對話框中,選擇回源類型,單擊確定。
參數
說明
回源類型
同賬號回源:系統會自動配置STS安全令牌,配置更簡單,但僅支持CDN域名回源到同一個阿里云賬號下的OSS私有Bucket。
跨賬號回源或同賬號回源:需要配置永久安全令牌,除了支持CDN域名回源到同一個阿里云賬號下的OSS私有Bucket,還支持CDN域名回源到另外一個阿里云賬號下的OSS私有Bucket。
AccessKey ID
回源目標OSS私有Bucket所屬阿里云賬號的AccessKey ID,具體請參見創建AccessKey。
AccessKey Secret
回源目標OSS私有Bucket所屬阿里云賬號的AccessKey Secret。
可選:為AliyunCDNAccessingPrivateOSSRole角色添加AliyunKMSCryptoUserAccess權限。
登錄RAM控制臺。
在左側導航欄,選擇 。
在角色名稱列表下,找到AliyunCDNAccessingPrivateOSSRole角色。
單擊新增授權,授權主體會自動填入。
在權限策略下選擇系統策略,搜索AliyunKMSCryptoUserAccess,并單擊AliyunKMSCryptoUserAccess,將其添加到已選擇權限策略區域框中。
單擊確認新增授權,顯示已完成。
單擊關閉。
通過RAM訪問控制服務開啟CDN回源OSS私有Bucket權限
如果無法通過CDN控制臺的授權按鈕來一鍵開啟授權,您還可以通過RAM訪問控制服務來開啟CDN回源OSS私有Bucket權限。
登錄RAM控制臺。
在左側導航欄,單擊權限管理> 權限策略。
在權限策略頁面,單擊創建權限策略。
在腳本編輯頁簽,輸入以下策略內容。
{ "Version": "1", "Statement": [ { "Action": [ "oss:List*", "oss:Get*" ], "Resource": "*", "Effect": "Allow" } ] }
單擊確定,在創建權限策略頁面輸入以下信息之后單擊確定。
名稱:AliyunCDNAccessingPrivateOSSRolePolicy
備注:用于CDN/DCDN回源私有OSS Bucket角色的授權策略,包含OSS的只讀權限
在左側導航欄,單擊身份管理> 角色。
在角色頁面,單擊創建角色。
將選擇可信實體類型設置為阿里云賬號,單擊下一步。
在配置角色階段,輸入以下信息。
角色名稱:AliyunCDNAccessingPrivateOSSRole
備注:CDN/DCDN默認使用此角色來回源私有OSS Bucket
將選擇信任的云賬號選項設置為當前云賬號,單擊完成。
角色創建完成之后,在角色頁面列表中單擊AliyunCDNAccessingPrivateOSSRole,進入角色編輯頁面。
在信任策略頁簽,單擊編輯信任策略,輸入以下信息之后單擊保存信任策略。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "cdn.aliyuncs.com" ] } } ], "Version": "1" }
切換到權限管理頁簽,單擊新增授權。
資源范圍:賬號級別
權限策略:選擇自定義策略,選擇之前創建的AliyunCDNAccessingPrivateOSSRolePolicy,單擊確認新增授權。
確認新增授權之后,回到CDN控制臺的回源配置頁面,可以看到阿里云OSS私有Bucket回源功能已經完成授權,
關閉CDN回源OSS私有Bucket的權限
如果您不希望加速域名能夠訪問您同賬號下的私有Bucket內資源,您可以通過訪問控制RAM(Resource Access Management)控制臺,取消對應角色名稱的授權,關閉CDN回源OSS私有Bucket的權限。
登錄RAM控制臺。
在左側導航欄,單擊 。
在角色名稱列表下,單擊AliyunCDNAccessingPrivateOSSRole角色。
移除角色AliyunCDNAccessingPrivateOSSRole中的所有權限。
單擊權限對應的解除授權。
在移除權限的確認對話框中,單擊解除授權。
返回 頁面,刪除AliyunCDNAccessingPrivateOSSRole角色。
單擊AliyunCDNAccessingPrivateOSSRole角色對應的刪除。
在刪除角色的確認對話框中,單擊刪除角色。
相關文檔
使用CDN加速OSS資源,請參見CDN加速OSS資源。
開啟私有OSS Bucket回源后訪問CDN加速域名提示“You are forbidden to list buckets”錯誤,關于該問題的原因及解決方法,請參見開啟私有OSS Bucket回源后訪問CDN加速域名提示“You are forbidden to list buckets”錯誤。
開啟回源私有Bucket后,CDN回源時默認會帶上簽名信息,即非匿名訪問。而觸發靜態網站默認首頁的請求必須是匿名請求。解決方法請參見為什么CDN回源私有Bucket時,不支持訪問Bucket的默認首頁?