當您想將一個賬號下的鏡像同步到另一個賬號時,您可以使用跨賬號同步實例功能。跨賬號同步實例功能不受地域限制,支持手動和自動的方式。
前提條件
如果您想將源實例的鏡像同步到目標實例,請確保您的源實例為標準版或高級版,基礎版的源實例不支持同步實例功能。目標實例可以是經濟版、基礎版、標準版和高級版。
您可以在實例列表頁面單擊企業版實例的右下角的升級,升級企業版實例規格。
公有云Region不支持同步至非公有云Region(金融云、政務云等)。
背景信息
跨賬號同步實例支持阿里云賬號和阿里云賬號之間、RAM用戶和RAM用戶之間、阿里云賬號和RAM用戶之間的實例同步。
跨賬號自動同步實例
通過配置同步規則,在源實例上傳鏡像時,自動觸發將該鏡像同步到另一個賬號的目標實例中。本文假設源實例所在賬號為A賬號,目標實例所在的賬號為B賬號。
跨賬號自動同步實例只會同步設定同步規則后上傳的符合規則的鏡像,存量的鏡像無法同步。
存量鏡像同步提供兩種方案:
存量鏡像數量不多時,您可以選擇手動同步鏡像。請參見跨賬號手動同步實例和CreateRepoSyncTask。
存量鏡像數量較多時,推薦您使用OSS復制+ACR鏡像導入方案:
操作前準備
在進行跨賬號自動同步實例之前,您需要先獲取以下信息:
獲取A賬號和B賬號的UID。具體操作,請參見如何查看主賬號UID?。
說明如果您使用的是RAM用戶,您需要獲取RAM用戶所在的主賬號的UID。
獲取目標實例的所在地域和實例ID。
登錄容器鏡像服務控制臺,在實例列表頁面頂部選擇地域,單擊目標企業版實例。在概覽頁面實例信息區域可以查看實例所在地域和實例ID。
跨賬號自動同步實例支持按照命名空間和倉庫同步:
按照命名空間同步時,目標實例和源實例必須有相同的命名空間,并且目標實例的命名空間已開啟自動創建倉庫的能力。關于開啟自動創建倉庫的更多信息,請參見創建命名空間。
按照倉庫同步時,目標實例和源實例必須有相同的命名空間和鏡像倉庫。
步驟一:在B賬號中對A賬號進行授權
在B賬號中對A賬號進行授權,允許A賬號可以同步鏡像到B賬號的實例中。
創建aliyuncontainerregistrycrossaccoutsyncrole角色。
說明角色名稱必須為aliyuncontainerregistrycrossaccoutsyncrole。
使用B賬號登錄RAM控制臺
在控制臺左側導航欄選擇 ,在右側頁面單擊創建角色。
在選擇可信實體類型配置向導中設置可信實體類型為阿里云賬號,單擊下一步。
在配置角色配置向導中設置角色名稱為aliyuncontainerregistrycrossaccoutsyncrole,單擊完成。
創建權限策略。
在RAM控制臺左側導航欄選擇 ,單擊創建權限策略。
在創建權限策略頁面選擇腳本編輯,根據實際情況替換以下內容中的
Resource
字段,然后將以下內容復制到文檔框中,單擊確定。然后在創建權限策略對話框中填寫名稱和備注。說明Resource:授權資源,格式為
acs:cr:<B賬號目標實例所在地域>:<B賬號UID>:instance/<B賬號目標實例ID>
。如果B賬號為RAM用戶,
Resource
中B賬號UID
為RAM用戶所在主賬號的UID。{ "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" }
為aliyuncontainerregistrycrossaccoutsyncrole角色添加上文創建的權限策略。
在權限策略管理頁面搜索上文創建的權限策略名稱,單擊上文創建的權限策略名稱。
單擊引用記錄頁簽,然后單擊新增授權。
在添加權限面板設置資源范圍為賬號級別,授權主體為aliyuncontainerregistrycrossaccoutsyncrole,然后單擊確定新增授權。
單擊關閉。
修改aliyuncontainerregistrycrossaccoutsyncrole角色的信任策略。
在RAM控制臺左側導航欄選擇 。
在角色頁面搜索aliyuncontainerregistrycrossaccoutsyncrole,單擊aliyuncontainerregistrycrossaccoutsyncrole。
單擊信任策略,然后單擊編輯信任策略。
根據實際情況替換以下內容中
Service
字段,然后將以下內容復制到文檔框中,單擊保存信任策略。說明Service:授權對象,格式為
<A賬號的UID>@cr.aliyuncs.com
。如果A賬號為RAM用戶,
Service
中A賬號UID
為RAM用戶所在主賬號的UID。{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "125287961064****@cr.aliyuncs.com" ] } } ], "Version": "1" }
步驟二:創建同步規則
使用A賬號登錄容器鏡像服務控制臺。
在頂部菜單欄,選擇所需地域。
在左側導航欄,選擇實例列表。
在實例列表頁面單擊目標企業版實例。
在企業版實例管理頁面左側導航欄選擇 ,在右側頁面單擊新建規則。
在新建規則對話框實例信息配置向導中設置參數,單擊下一步。
參數
說明
規則名稱
設置同步規則的名稱。
同步場景
設置同步場景為跨賬號。
目標UID
輸入目標實例所在賬號的UID。
目標實例
選擇目標實例所在地域,輸入目標實例ID。
在同步信息配置向導中設置同步級別,可選按照命名空間和倉庫同步,選擇相應的命名空間或者倉庫,設置倉庫版本過濾規則,然后單擊創建同步規則。
在企業版實例管理頁面選擇
,在同步記錄頁面可以看到同步任務的狀態為同步成功,同時在目標實例中可以看到推送的鏡像,說明跨賬號自動同步實例成功。
跨賬號手動同步實例
通過配置同步規則,手動將源實例的鏡像推送到另一個賬號的目標實例中。本文假設源實例所在賬號為A賬號,目標實例所在的賬號為B賬號。
獲取A賬號和B賬號的UID,目標實例的所在地域和實例ID。具體操作,請參見上文的操作前準備。
在B賬號中對A賬號進行授權,允許A賬號可以同步鏡像到B賬號的實例中。具體操作,請參見上文的步驟一。
登錄容器鏡像服務控制臺。
在頂部菜單欄,選擇所需地域。
在左側導航欄,選擇實例列表。
在實例列表頁面單擊目標企業版實例。
在企業版實例管理頁面選擇 。
在鏡像倉庫頁面單擊目標鏡像倉庫的名稱。
在鏡像倉庫詳情頁面左側導航欄單擊鏡像版本,然后單擊目標鏡像右側操作列下的同步。
在鏡像同步對話框設置同步場景為跨賬號,輸入目標實例賬號UID,選擇目標倉庫,輸入目標實例ID、目標命名空間、目標倉庫名稱和鏡像版本,然后單擊確定。
在企業版實例管理頁面選擇
,在同步記錄頁面可以看到同步任務的狀態為同步成功,同時在目標實例中可以看到同步的鏡像,說明跨賬號手動同步實例成功。
相關文檔
若您想將一個賬號下的鏡像同步到該賬號的其他地域時,您可以參考同賬號同步實例來操作,無需進行賬號授權。