全部產品
Search
文件中心

Object Storage Service:跨帳號跨地區複製

更新時間:Nov 15, 2025

跨地區複製功能可將一個儲存空間(Bucket)內的資料對象,自動、非同步地複製到另一個阿里雲帳號下、位於不同地區的目標 Bucket 中,以實現異地容災、建立跨帳號的隔離備份,或滿足資料駐留的合規性要求。

配置跨帳號複製需要源帳號和目標帳號共同操作,分為三個步驟:

  1. 源帳號操作:建立專用於資料複製的RAM角色,並授予其讀取源Bucket資料的最小許可權。

  2. 目標帳號操作:修改目標 Bucket 的授權策略,允許源帳號建立的 RAM 角色向其中寫入資料。

  3. 返回源帳號操作:建立跨地區複製規則,將源 Bucket 和目標 Bucket 關聯起來,正式啟動複製任務。

步驟一:源帳號建立RAM角色並授權

  1. 建立RAM角色:進入建立RAM角色頁面,信任主體類型選擇雲端服務信任主體名稱選擇Object Storage Service

  2. 為RAM角色授予訪問源Bucket的許可權:建立一個僅包含複製要求的權限的自訂策略用於讀取源Bucket資料以啟動複製任務:

    1. 建立權限原則頁面,單擊指令碼編輯頁簽。將以下策略內容粘貼到策略編輯器中,並將src-bucket替換為實際的源Bucket名稱。

      {
         "Version": "1",
         "Statement": [
            {
               "Effect": "Allow",
               "Action": [
                  "oss:ReplicateList",
                  "oss:ReplicateGet"
               ],
               "Resource": [
                  "acs:oss:*:*:src-bucket",
                  "acs:oss:*:*:src-bucket/*"
               ]
            }
         ]
      }
    2. 建立策略後,在角色頁面,列表中找到剛建立的角色,單擊新增授權。在新增授權面板中,授權主體已自動填滿,權限原則選擇上一步建立的自訂策略,然後單擊確認新增授權

  3. (可選)為RAM角色授予訪問KMS的許可權:如果複製到目標Bucket的資料會使用KMS加密,則需要為該RAM角色授予KMS存取權限。

    角色頁面,列表中找到剛建立的角色,單擊新增授權。在新增授權面板中,授權主體已自動填滿,權限原則選擇AliyunKMSCryptoUserAccess,然後單擊確認新增授權

  4. 記錄角色ARN:在角色頁面找到建立RAM角色,進入基本資料頁面,複製角色的ARN備用。格式為 acs:ram::{源帳號UID}:role/{角色名稱}

步驟二:目標帳號授權RAM角色並準備資源

  1. 授權RAM角色寫入目標Bucket:在目標帳號側,修改目標Bucket的授權策略,允許源帳號的RAM角色向其中寫入資料。

    1. 使用目標帳號進入Bucket列表頁面,單擊目標Bucket。

    2. 在左側導覽列,選擇許可權控制 > Bucket 授權策略

    3. 單擊按圖形策略添加頁簽,然後單擊接收複製對象

    4. 在彈出的面板中,按如下說明配置:

      • UID及RAM角色擷取方式: 選擇從源端複製RAM角色ARN擷取

      • 源端複製RAM角色ARN: 輸入步驟一記錄的源帳號的RAM角色ARN。

      • 授權用途: 選擇跨帳號地區複製

    5. 單擊產生Policy,然後單擊儲存

  2. (可選) 配置目標端KMS密鑰若要複製 KMS 加密的對象,或目標 Bucket 啟用了 KMS 加密,需在目標帳號中預先配置 KMS 密鑰,為密鑰設定密鑰策略,授予源帳號RAM角色使用該密鑰的許可權。設定密鑰策略時,將源帳號建立的RAM角色ARN添加為其他帳號使用者

    此操作預設會授予該角色解密(kms:Decrypt)和產生資料密鑰(kms:GenerateDataKey)的許可權等必要許可權,允許其使用此密鑰在目標Bucket中建立加密對象。通過控制台嚮導配置通常會預設包含要求的權限,但若通過OpenAPI設定自訂密鑰策略,請務必手動確認這些許可權已正確添加。

步驟三:源帳號建立跨地區複製規則

完成授權後,返回源帳號控制台建立複製規則,正式啟動任務。

  1. 使用源帳號進入Bucket列表頁面,單擊源Bucket。

  2. 在左側導覽列,選擇資料管理 > 跨地區複製

  3. 單擊跨地區複製,在彈出的對話方塊中配置以下參數:

    1. 設定目標Bucket:選擇在另一個帳號中指定一個Bucket,選擇目標Bucket所在地區並輸入其名稱。

    2. 設定複製策略:

      • 資料複製對象:選擇全部檔案進行同步指定檔案名稱首碼進行同步。在源 Bucket內指定首碼的Object複製到目標Bucket,預設最多可以添加10個首碼。如需增加首碼數量,請聯絡申請調整,最多可提升至30個。

      • 資料複製策略:選擇資料同步的方式。在資料容災情境下,選擇增/改 同步可防止源Bucket的意外刪除操作同步到備份Bucket,增強資料安全性。

        • 增/改 同步:僅同步建立和修改的對象。刪除源Bucket中的對象不會影響目標Bucket。通過這種方式,可以有效防止因源Bucket手動刪除、通過生命週期自動刪除的行為導致目標Bucket資料丟失的問題。

        • 增/刪/改 同步:同步建立、修改和刪除操作,使目標Bucket與源Bucket保持一致。通過這種方式,確保了資料的一致性,適用於需要共用和訪問同一資料集的多使用者或應用程式環境。但是配置該策略後,當手動刪除或者通過生命週期自動刪除源Bucket內的Object時,目標Bucket也會刪除對應的Object,且Object刪除後無法恢複。

      • 複製歷史資料:選擇是否複製規則生效前源Bucket中已有的資料。此操作會覆蓋目標 Bucket 中的同名對象。為避免資料丟失,建議為源和目標Bucket都開啟版本控制功能。

      • (可選)複製 KMS 加密目標對象:如果源端對象已使用KMS加密,並且希望在目標端也保持加密狀態,請勾選此項,並提供在步驟二中準備的目標端KMS密鑰ARN。

        說明

        可以通過HeadObjectGetBucketEncryption分別查詢源Object和目標Bucket的加密狀態。

      • 授權角色:從下拉式清單中選擇步驟一中源帳號建立的RAM角色

    3. (可選)設定複製加速:

      • 傳輸加速: 當複製任務涉及中國內地與非中國內地地區時,可開啟此功能以提升資料轉送速度,此功能會產生額外傳輸加速費用

      • 資料複製時間控制(RTC): 將絕大多數增量資料的複寫延遲控制在10分鐘內。此功能僅在部分地區間支援且會產生額外跨地區複製RTC費用。詳情請參見RTC功能說明

    說明

    跨地區複製規則一旦建立,將無法修改或刪除。請在單擊“確定”前仔細檢查所有配置項。如需終止複製,可通過關閉複製任務的方式停止資料同步。

  4. 確認所有配置無誤後,單擊確定確認開啟

    複製任務將在規則建立成功後的幾分鐘內啟動。資料複製為非同步過程,具體耗時取決於對象大小、數量以及跨地區網路延遲,可能從幾分鐘到幾小時不等。可在源Bucket的跨地區複製頁簽查看複製進度,包括歷史資料和增量資料的同步狀態。

常見問題

為什麼源Bucket中對象的儲存類型或最後訪問時間變更後,沒有同步到目標Bucket?

資料複製操作僅由對象內容的變更(如增/刪/改)觸發。通過生命週期規則或 CopyObject 操作更改儲存類型,以及最後訪問時間(LastAccessTime)的更新不涉及對象內容的寫入,因此不會觸發新的複製任務,目標 Bucket 中的對象副本不會更新。

解決方案:

  • 同步儲存類型:建議在目標 Bucket 上配置與源Bucket一致的生命週期規則,以實現相同的儲存類型轉換。

  • 更新LastAccessTime:若需更新目標對象的最後訪問時間,請直接在目標 Bucket 中訪問該對象(例如執行 GetObject 請求),以觸發其 LastAccessTime 的重新整理。

分區上傳的對象會被複製嗎?

當通過分區上傳方式上傳的Object,每個分區的上傳操作都會複製至目標Bucket。且在源Bucket中完成合併(CompleteMultipartUpload)後產生的完整對象也會被作為一個整體複製到目標Bucket。

為源帳號的 RAM 角色授權時,有比自訂策略更簡單的授權方式嗎?

有。如果您希望快速授權,可以直接為建立的 RAM 角色授予阿里雲官方提供的系統策略 AliyunOSSFullAccess。但該策略包含您帳號下所有 OSS 資源的所有許可權,許可權範圍過大,不推薦在生產環境中使用。

為目標 Bucket 授權時,除了圖形化介面,是否支援通過 JSON 策略進行配置?

支援。您可以在目標 Bucket 的Bucket 授權策略頁面選擇按文法策略添加來進行更靈活的配置。使用 JSON 策略時需注意以下幾點:

  • 新添加的策略會覆蓋已有的 Bucket 策略,因此請確保新策略包含了所有需要的授權規則。

  • 策略中的 Principal 欄位需要填寫源帳號中 RAM 角色的 ARN。

  • 如果角色名稱中包含大寫字母,在策略中需要轉換為小寫。例如,角色 AliyunOssDrsRole 在策略中應寫為 aliyunossdrsrole

  • 需要準確填寫源帳號的 UID 和目標 Bucket 的名稱及目標帳號的UID。

一個策略樣本如下:

{
    "Version":"1",
    "Statement":[
        {
            "Effect":"Allow",
            "Action":[
                "oss:ReplicateList",
                "oss:ReplicateGet",
                "oss:ReplicatePut",
                "oss:ReplicateDelete"
            ],
            "Principal": [
                "arn:sts::{源帳號UID}:assumed-role/{角色名稱}/*"
            ],
            "Resource":[
                "acs:oss:*:{目標帳號UID}:{目標Bucket名}",
                "acs:oss:*:{目標帳號UID}:{目標Bucket名}/*"
            ]
        }
    ]
}