全部產品
Search
文件中心

Container Registry:跨帳號同步執行個體

更新時間:Jul 05, 2024

當您想將一個帳號下的鏡像同步到另一個帳號時,您可以使用跨帳號同步執行個體功能。跨帳號同步執行個體功能不受地區限制,支援手動和自動的方式。

前提條件

如果您想將源執行個體的鏡像同步到目標執行個體,請確保您的源執行個體為標準版或進階版,基礎版的源執行個體不支援同步執行個體功能。目標執行個體可以是基礎版、標準版和進階版。

說明
  • 您可以在執行個體列表頁面單擊企業版執行個體的右下角的升級,升級企業版執行個體規格。

  • 公用雲端Region不支援同步至非公用雲端Region(金融雲、政務雲等)。

背景資訊

跨帳號同步執行個體支援阿里雲帳號和阿里雲帳號之間、RAM使用者和RAM使用者之間、阿里雲帳號和RAM使用者之間的執行個體同步。

跨帳號自動同步執行個體

通過配置同步規則,在源執行個體上傳鏡像時,自動觸發將該鏡像同步到另一個帳號的目標執行個體中。本文假設源執行個體所在帳號為A帳號,目標執行個體所在的帳號為B帳號。

重要

跨帳號自動同步執行個體只會同步設定同步規則後上傳的符合規則的鏡像,存量的鏡像無法同步。

存量鏡像同步提供兩種方案:

  • 存量鏡像數量不多時,您可以選擇手動同步鏡像。請參見跨帳號手動同步執行個體CreateRepoSyncTask

  • 存量鏡像數量較多時,推薦您使用OSS複製+ACR鏡像匯入方案:

    1. 將OSS Bucket中的所有檔案複製到目標ACR執行個體的OSS Bucket中。詳細資料請參見資料複製

    2. 建立匯入規則,將遷移源選擇為OSS Bucket,並啟動鏡像匯入任務進行遷移。

操作前準備

在進行跨帳號自動同步執行個體之前,您需要先擷取以下資訊:

  • 擷取A帳號和B帳號的UID。

    說明

    如果您使用的是RAM使用者,您需要擷取RAM使用者所在的主帳號的UID。

  • 擷取目標執行個體的所在地區和執行個體ID。

    登入Container Registry控制台,在執行個體列表頁面頂部選擇地區,單擊目標企業版執行個體。在概覽頁面執行個體資訊地區可以查看執行個體所在地區和執行個體ID。

  • 跨帳號自動同步執行個體支援按照命名空間和倉庫同步:

    • 按照命名空間同步時,目標執行個體和源執行個體必須有相同的命名空間,並且目標執行個體的命名空間已開啟自動建立倉庫的能力。關於開啟自動建立倉庫的更多資訊,請參見建立命名空間

    • 按照倉庫同步時,目標執行個體和源執行個體必須有相同的命名空間和鏡像倉庫。

步驟一:在B帳號中對A帳號進行授權

在B帳號中對A帳號進行授權,允許A帳號可以同步鏡像到B帳號的執行個體中。

  1. 建立aliyuncontainerregistrycrossaccoutsyncrole角色。

    說明

    角色名稱必須為aliyuncontainerregistrycrossaccoutsyncrole。

    1. 使用B帳號登入RAM控制台

    2. 在控制台左側導覽列選擇身份管理 > 角色,在右側頁面單擊建立角色

    3. 選擇類型設定精靈中設定可信實體類型為阿里雲帳號,單擊下一步

    4. 配置角色設定精靈中設定角色名稱為aliyuncontainerregistrycrossaccoutsyncrole,單擊完成

    5. 建立完成設定精靈中單擊關閉

  2. 建立權限原則。

    1. 在RAM控制台左側導覽列選擇許可權管理 > 權限原則,單擊建立權限原則

    2. 建立權限原則頁面選擇指令碼編輯,根據實際情況替換以下內容中的Resource欄位,然後將以下內容複寫到文檔框中,單擊繼續編輯基本資料

      {
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "cr:CreateSyncRule",
                      "cr:CreateRepositorySync"
                  ],
                  "Resource": "acs:cr:cn-beijing:151356101970****:instance/cri-4im1o411ls8g****"
              },
              {
                  "Effect": "Allow",
                  "Action": [
                      "cr:CreateSyncRule",
                      "cr:CreateRepositorySync"
                  ],
                  "Resource": "acs:cr:cn-hangzhou:151356101970****:instance/cri-4im1o411ls8gxr****"
              }
          ],
          "Version": "1"
      }

      Resource:授權資源,格式為acs:cr:<B帳號目標執行個體所在地區>:<B帳號UID>:instance/<B帳號目標執行個體ID>

      說明

      如果B帳號為RAM使用者,ResourceB帳號UID為RAM使用者所在主帳號的UID。

  3. 為aliyuncontainerregistrycrossaccoutsyncrole角色添加上文建立的權限原則。

    1. 權限原則管理頁面搜尋上文建立的權限原則名稱,單擊上文建立的權限原則名稱。

    2. 單擊引用記錄頁簽,然後單擊新增授權

    3. 添加許可權面板設定授權範圍整個雲帳號授權主體為aliyuncontainerregistrycrossaccoutsyncrole,單擊自訂策略,然後在文字框中搜尋上文建立的權限原則名稱,單擊搜尋到的權限原則名稱,然後單擊確定

    4. 單擊完成

  4. 修改aliyuncontainerregistrycrossaccoutsyncrole角色的信任策略。

    1. 在RAM控制台左側導覽列選擇身份管理 > 角色

    2. 在角色頁面搜尋aliyuncontainerregistrycrossaccoutsyncrole,單擊aliyuncontainerregistrycrossaccoutsyncrole。

    3. 單擊信任策略,然後單擊編輯信任策略

    4. 根據實際情況替換以下內容中Service欄位,然後將以下內容複寫到文檔框中,單擊儲存信任策略

      {
        "Statement": [
          {
            "Action": "sts:AssumeRole",
            "Effect": "Allow",
            "Principal": {
              "Service": [
                "125287961064****@cr.aliyuncs.com"
              ]
            }
          }
        ],
        "Version": "1"
      }

      Service:授權對象,格式為<A帳號的UID>@cr.aliyuncs.com

      說明

      如果A帳號為RAM使用者,ServiceA帳號UID為RAM使用者所在主帳號的UID。

步驟二:建立同步規則

  1. 使用A帳號登入Container Registry控制台

  2. 在頂部功能表列,選擇所需地區。

  3. 在左側導覽列,選擇執行個體列表

  4. 執行個體列表頁面單擊目標企業版執行個體。

  5. 在企業版執行個體管理頁面左側導覽列選擇分發管理 > 執行個體同步,在右側頁面單擊建立規則

  6. 建立規則對話方塊執行個體資訊設定精靈中設定參數,單擊下一步

    參數

    說明

    規則名稱

    設定同步規則的名稱。

    同步情境

    設定同步情境跨帳號

    目標UID

    輸入目標執行個體所在帳號的UID。

    目標執行個體

    選擇目標執行個體所在地區,輸入目標執行個體ID。

  7. 同步資訊設定精靈中設定同步層級,可選按照命名空間和倉庫同步,選擇相應的命名空間或者倉庫,設定倉庫版本過濾規則,然後單擊建立同步規則

    在企業版執行個體管理頁面選擇分發管理 > 同步記錄,在同步記錄頁面可以看到同步任務的狀態為同步成功,同時在目標執行個體中可以看到推送的鏡像,說明跨帳號自動同步執行個體成功。

跨帳號手動同步執行個體

通過配置同步規則,手動將源執行個體的鏡像推送到另一個帳號的目標執行個體中。本文假設源執行個體所在帳號為A帳號,目標執行個體所在的帳號為B帳號。

  1. 擷取A帳號和B帳號的UID,目標執行個體的所在地區和執行個體ID。具體操作,請參見上文的操作前準備。

  2. 在B帳號中對A帳號進行授權,允許A帳號可以同步鏡像到B帳號的執行個體中。具體操作,請參見上文的步驟一。

  3. 登入Container Registry控制台

  4. 在頂部功能表列,選擇所需地區。

  5. 在左側導覽列,選擇執行個體列表

  6. 執行個體列表頁面單擊目標企業版執行個體。

  7. 在企業版執行個體管理頁面選擇倉庫管理 > 鏡像倉庫

  8. 在鏡像倉庫頁面單擊目標鏡像倉庫的名稱。

  9. 在鏡像倉庫詳情頁面左側導覽列單擊鏡像版本,然後單擊目標鏡像右側操作列下的同步

  10. 鏡像同步對話方塊設定同步情境跨帳號,輸入目標執行個體帳號UID,選擇目標倉庫,輸入目標執行個體ID、目標命名空間、目標倉庫名稱和鏡像版本,然後單擊確定

    在企業版執行個體管理頁面選擇分發管理 > 同步記錄,在同步記錄頁面可以看到同步任務的狀態為同步成功,同時在目標執行個體中可以看到同步的鏡像,說明跨帳號手動同步執行個體成功。

相關文檔

若您想將一個帳號下的鏡像同步到該帳號的其他地區時,您可以參考同帳號同步執行個體來操作,無需進行帳號授權。