全部產品
Search
文件中心

CDN:OSS私人Bucket回源

更新時間:Sep 02, 2026

如果加速網域名稱的來源站點是阿里雲Object Storage Service,並且OSS的Bucket為私人模式(可以起到訪問鑒權的作用,避免非授權的請求盜刷流量),建議您給加速網域名稱開啟OSS私人Bucket回源功能,通過CDN加速OSS私人Bucket資源。

工作原理與優勢

  • 工作原理:功能開啟後,CDN向您的私人OSS Bucket發起回源請求時,會自動在要求標頭(Header)中添加一個Authorization欄位。該欄位的值是根據您授權的身份資訊(STS臨時令牌或AccessKey)產生的有效簽名,OSS服務會據此對請求進行鑒權。

  • 安全訪問:通過為CDN授予一個受限的唯讀許可權,確保了回源請求的合法性,避免了將私人Bucket設定為公開所帶來的安全風險。

  • 成本最佳化:終端使用者訪問將命中CDN緩衝,其流量費用遠低於直接存取OSS產生的外網流出流量。同時,CDN回源到OSS的流量會計為CDN回源流量,其單價也低於OSS外網流出流量單價,有效降低總體成本。具體請參見CDN 加速 OSS 計費說明

操作步驟

配置過程分為兩步:首先為您的帳號完成一次性授權,然後為指定的加速網域名稱開啟該功能。

  1. 授權CDN訪問OSS。在首次為帳號下網域名稱配置該功能前,您必須先為CDN服務授予訪問OSS的許可權,此為帳號層級的一次性操作。如果您沒有出現授權提示,則直接跳過該步驟。

    (推薦)通過控制台一鍵授權

    1. 登入CDN控制台。

    2. 在左側導覽列,單擊域名管理。

    3. 在域名管理頁面,單擊目標網域名稱對應的管理。

    4. 在指定網域名稱的左側導覽列,單擊回源配置。

    5. 在私有Bucket回源地區,單擊点击授权,在授權確認頁中單擊確認授權。

      頁面 角色授權 行提示"該賬戶未授權CDN服務訪問您的OSS空間",狀態 開關預設為關閉。

    (備用方案)通過RAM手動授權

    1. 登入RAM控制台。

    2. 在左側導覽列,單擊許可權管理> 權限原則。

    3. 在權限原則頁面,單擊建立權限原則。

    4. 在指令碼編輯頁簽,輸入以下策略內容。

    5. {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "oss:List*",
                      "oss:Get*"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              }
          ]
      }
    6. 單擊确定,在建立權限原則頁面輸入以下資訊之後單擊確定。

    7. 策略名稱稱:AliyunCDNAccessingPrivateOSSRolePolicy

    8. 備忘:用於CDN/DCDN回源私人OSS Bucket角色的授權策略,包含OSS的唯讀許可權。

    在左側導覽列,單擊身份管理> 角色。

    1. 在角色頁面,單擊建立角色。

    2. 將信任主體類型設定為雲帳號,信任主體名稱選擇當前雲帳號,單擊確定。

    3. 在建立角色階段,輸入以下資訊。

    4. 角色名稱:AliyunCDNAccessingPrivateOSSRole

    角色建立完成之後,在角色頁面列表中單擊AliyunCDNAccessingPrivateOSSRole,進入角色編輯頁面。

    1. 在信任策略頁簽,單擊編輯信任策略,輸入以下資訊之後單擊確定。

    2. {
        "Statement": [
          {
            "Action": "sts:AssumeRole",
            "Effect": "Allow",
            "Principal": {
              "Service": [
                "cdn.aliyuncs.com"
              ]
            }
          }
        ],
        "Version": "1"
      }
    3. 切換到許可權管理頁簽,在授權頁簽中,單擊新增授權。

    4. 資源範圍:帳號層級

    5. 授權主體:選擇之前建立的AliyunCDNAccessingPrivateOSSRole

    6. 權限原則:選擇自定義策略,選擇之前建立的AliyunCDNAccessingPrivateOSSRolePolicy,單擊確認新增授權。

    確認新增授權之後,回到CDN控制台的回源配置頁面,可以看到私有Bucket回源功能已經完成授權,

  2. 開啟私有Bucket回源並配置回源類型。

    1. 找到私有Bucket回源地區,開啟其開關。

    2. 在彈出的私有Bucket回源對話方塊中,選擇回源類型,單擊确定。

      回源類型

      推薦情境與說明

      同帳號回源

      (推薦) 適用於CDN和OSS Bucket在同一個阿里雲帳號下的情境。系統將自動使用STS臨時安全性權杖進行鑒權,配置簡單,無需管理密鑰,安全性更高。

      STS臨時安全性權杖也可以實現跨帳號回源,詳情請參見本文使用STS實現跨帳號回源OSS私人Bucket。

      跨帳號回源或同帳號回源

      適用於CDN和OSS Bucket分屬不同阿里雲帳號的情境,也支援同帳號。此方式需要您手動提供回源目標OSS私人Bucket所屬阿里雲帳號的AccessKey ID和AccessKey Secret。具體請參見建立AccessKey。

      說明
      • 存取範圍說明:開啟後,該加速網域名稱將可以訪問其來源站點私人Bucket內的所有資源,無法在CDN側對Bucket內的部分資源做訪問限制。

      • 簽名衝突說明:為避免OSS鑒權失敗,請確保回源請求的URL參數中不攜帶簽名資訊。單個請求不能同時在Header和URL中攜帶簽名。

      • 功能衝突說明:本功能與OSS的靜態網站託管功能的預設首頁配置存在衝突。如需同時使用,請參考說明文檔。

安全強化建議

開啟私人Bucket回源後,您的來源站點資料是安全的,但緩衝在CDN邊緣節點上的資源預設是公開訪問的。為防止CDN流量被盜刷,強烈建議您結合使用CDN提供的其他安全功能:

關閉OSS私人Bucket回源

如果您不希望加速網域名稱能夠訪問您同帳號下的私人Bucket內資源,您可以通過存取控制RAM(Resource Access Management)控制台,取消對應角色名稱的授權,關閉CDN回源OSS私人Bucket的許可權。

  1. 在CDN控制台關閉該功能。

    1. 登入CDN控制台。

    2. 在左側導覽列,單擊域名管理。

    3. 在域名管理頁面,單擊目標網域名稱對應的管理。

    4. 在指定網域名稱的左側導覽列,單擊回源配置。

    5. 在私有Bucket回源地區,關閉私有Bucket回源開關。

  2. 在RAM控制台徹底刪除授權。

    1. 登入RAM控制台。

    2. 在左側導覽列,單擊

    3. 在角色名稱列表下,單擊AliyunCDNAccessingPrivateOSSRole角色。

      進入角色詳情頁,在許可權管理頁簽下可查看到已授權的系統策略(備忘:用於CDN回源私人OSS Bucket角色的授權策略,包含OSS的唯讀許可權),資源範圍為帳號層級。操作列提供解除授權連結,頁面右上方有刪除角色按鈕。

    4. 移除角色AliyunCDNAccessingPrivateOSSRole中的所有許可權。

      1. 單擊許可權對應的解除授權。

      2. 在移除許可權的確認對話方塊中,單擊解除授權。

    5. 返回

      1. 單擊AliyunCDNAccessingPrivateOSSRole角色對應的刪除角色。

      2. 在刪除角色的確認對話方塊中,單擊刪除角色。

    6. 返回

      1. 單擊AliyunCDNAccessingPrivateOSSRolePolic策略對應的刪除權限原則按鈕。

      2. 在刪除權限原則的確認對話方塊中,輸入策略名稱稱,單擊刪除權限原則。

使用STS實現跨帳號回源OSS私人Bucket

預設情況下,CDN 使用 STS 臨時安全性權杖的方式,只支援回源到同一個帳號下的 OSS 私人 Bucket,如果期望使用 STS 臨時安全性權杖實現跨帳號回源 OSS 私人 Bucket,可通過 OSS 添加Bucket授權策略來實現,配置方式如下:

  1. 登入私人 Bucket 所在的阿里雲帳號,進入OSS控制台。

  2. 依次單擊Bucket 列表 > 目標 Bucket。開啟許可權控制 > Bucket 授權策略頁簽,單擊新增授權。

  3. 授權用戶選擇其他帳號,根據 CDN 回源 OSS 時使用的授權方式,授權帳號填寫對應格式的 ARN:

    1. 直接 STS 授權:填寫arn:sts:uid,其中uid為 CDN 所在帳號的帳號ID。

    2. 扮演角色(AssumeRole):填寫arn:sts::{CDN帳號uID}:assumed-role/{CDN帳號角色role_name}/*,其中{CDN帳號uID}為 CDN 所在帳號的帳號 ID,{CDN帳號角色role_name}為 CDN 帳號扮演的角色名稱。若 CDN 通過扮演角色方式回源 OSS,必須使用此格式,否則會報 403 錯誤。

  4. 授權操作選擇簡單設定 > 唯讀(不包含ListObject操作),隨後單擊確定完成配置。

  5. 添加成功之後,Bucket 授權策略頁簽會顯示授權資訊。

常見問題

相關文檔

CDN加速OSS資源最佳實務