クロスアカウントインスタンス同期を使用すると、ある Alibaba Cloud アカウントのインスタンスから別のアカウントへイメージを同期できます。この機能はリージョンに依存せず、手動同期と自動同期の両方をサポートしています。
注意事項
-
ソースインスタンスは Enterprise Edition インスタンスである必要があります。宛先インスタンスにはBasic Editionまたは Advanced Edition のインスタンスを使用できます。
エンタープライズ版インスタンスをアップグレードするには、Container Registry (ACR) コンソールに移動し、インスタンスカードの右下隅にあるアップグレードをクリックします。
-
パブリッククラウドリージョンから Finance Cloud やガバメントクラウドなどの非パブリッククラウドリージョンへの同期はサポートされていません。
-
一部のリージョンでは、Object Storage Service (OSS) バケットへのパブリックネットワークアクセスが許可されていないなどの特別な制限があるため、カスタム同期リンクのみがサポートされています。
背景情報
クロスアカウントインスタンス同期は、Alibaba Cloud アカウントと RAM ユーザーの任意の組み合わせでのイメージ同期をサポートしています。
アカウント間でのインスタンスの自動同期
同期ルールを設定すると、ソースインスタンスにイメージがプッシュされたときに、別のアカウントの宛先インスタンスへイメージを自動的に同期できます。本トピックでは、ソースインスタンスがアカウント A に属し、宛先インスタンスがアカウント B に属することを前提としています。
クロスアカウント自動インスタンス同期は、同期ルール作成後にプッシュされたイメージにのみ適用され、既存のイメージは同期されません。
既存のイメージを同期するには、次のいずれかの方法を使用します。
-
既存のイメージの数が少ない場合は、手動で同期します。詳細については、「アカウント間でのインスタンスの手動同期」および「CreateRepoSyncTask」をご参照ください。
-
既存のイメージの数が多い場合は、OSS レプリケーション + ACR イメージインポートソリューションを使用します。
-
ソースインスタンスの OSS バケットから宛先 ACR インスタンスの OSS バケットへすべてのファイルをコピーします。詳細については、「データレプリケーション」をご参照ください。
-
「インポートルールの作成」で、移行元として OSS Bucket を選択し、イメージインポートタスクを開始します。
-
始める前に
開始する前に、次の情報を取得してください。
-
アカウント A とアカウント B の UID。
説明RAM ユーザーを使用する場合は、その RAM ユーザーが属する Alibaba Cloud アカウントの UID を取得してください。
-
宛先インスタンスのリージョンと ID。
ACR コンソールにログインします。上部のナビゲーションバーで、リージョンを選択します。インスタンス ページで、対象のエンタープライズ版インスタンスをクリックします。概要 ページで、インスタンスの リージョン を確認します。インスタンス セクションで、インスタンス ID を見つけます。
-
クロスアカウント自動インスタンス同期は、名前空間単位またはリポジトリ単位で実行できます。
-
名前空間単位での同期では、ソースインスタンスと宛先インスタンスの両方で名前空間名が一致している必要があります。また、宛先インスタンスの名前空間では、リポジトリの自動作成を有効にする必要があります。リポジトリの自動作成を有効にする方法の詳細については、「名前空間の作成」をご参照ください。
-
リポジトリ単位での同期では、ソースインスタンスと宛先インスタンスの両方で名前空間とイメージリポジトリ名が一致している必要があります。
-
ステップ 1: アカウント B での権限付与
アカウント B で、アカウント A に宛先インスタンスへイメージを同期する権限を付与します。
-
aliyuncontainerregistrycrossaccoutsyncrole ロールを作成します。
説明ロール名は正確に
aliyuncontainerregistrycrossaccoutsyncroleである必要があります。このスペルミスを含む名前を正確に使用する必要があります。-
アカウント B で RAM コンソールにログインします。
-
左側のナビゲーションウィンドウで、 を選択します。表示されたページで、ロール作成 をクリックします。
-
ロール作成 ページの Principal Type で、アカウント を選択します。次に、信頼できる Alibaba Cloud アカウントを指定し、OK をクリックします。
-
「ロールの作成」ダイアログボックスで、ロール名として
aliyuncontainerregistrycrossaccoutsyncroleを入力し、OK をクリックします。
-
-
アクセスポリシーを作成します。
-
RAM コンソールの左側のナビゲーションペインで、 を選択し、Create Policy をクリックします。
-
Create Policy ページで、JSON を選択します。 必要に応じて以下の内容の
Resourceフィールドを置き換え、内容をテキストボックスにコピーしてから、OK をクリックします。 その後、Create Policy ダイアログボックスで、Policy Name と [説明] を入力します。説明Resource:認可されるリソース。形式はacs:cr:<region_of_destination_instance_in_Account_B>:<UID_of_Account_B>:instance/<ID_of_destination_instance_in_Account_B>です。アカウント B が RAM ユーザーの場合、
ResourceパラメーターのUID_of_Account_Bは、その RAM ユーザーが属する Alibaba Cloud アカウントの UID です。{ "Statement": [ { "Effect": "Allow", "Action": [ "cr:CreateSyncRule", "cr:CreateRepositorySync", "cr:UpdateSyncRule" ], "Resource": "acs:cr:cn-beijing:151356101970****:instance/cri-4im1o411ls8g****" }, { "Effect": "Allow", "Action": [ "cr:CreateSyncRule", "cr:CreateRepositorySync", "cr:UpdateSyncRule" ], "Resource": "acs:cr:cn-hangzhou:151356101970****:instance/cri-4im1o411ls8gxr****" } ], "Version": "1" }
-
-
作成したアクセスポリシーを aliyuncontainerregistrycrossaccoutsyncrole ロールにアタッチします。
-
[Policies] ページで、作成したアクセスポリシーの名前を検索してクリックします。
-
参照履歴 タブをクリックし、次に 許可を与える をクリックします。
-
権限の追加 パネルで、Resource Scope を Account に、Principal を Principal に設定し、[OK] をクリックします。
-
閉じる をクリックします。
-
-
aliyuncontainerregistrycrossaccoutsyncrole ロールの信頼ポリシーを変更します。
-
RAM コンソールの左側のナビゲーションウィンドウで、を選択します。
-
[Roles] ページで、
aliyuncontainerregistrycrossaccoutsyncroleを検索してクリックします。 -
トラスト規則 タブをクリックし、次に 編集トラスト規則 をクリックします。
-
エディターで、以下のポリシーの
Serviceフィールドの値を、お客様の情報に置き換えてから、保存信任策略 をクリックします。説明Service:認可されるプリンシパル。形式は<UID_of_Account_A>@cr.aliyuncs.comです。アカウント A が RAM ユーザーの場合、
ServiceパラメーターのUID_of_Account_Aは、その RAM ユーザーが属する Alibaba Cloud アカウントの UID です。{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "125287961064****@cr.aliyuncs.com" ] } } ], "Version": "1" }
-
ステップ 2: アカウント A での同期ルールの作成
-
アカウント A で ACR コンソールにログインします。
上部のナビゲーションバーで、リージョンを選択します。
左側のナビゲーションウィンドウで、[インスタンス] をクリックします。
[インスタンス] ページで、管理するEnterprise Editionインスタンスをクリックします。
-
左側のナビゲーションウィンドウで、 の順に選択します。表示されたページで、ルールの作成 をクリックします。
-
ルールの作成 ダイアログボックスで、インスタンス ステップを完了し、次へ をクリックします。
パラメーター
説明
Rule Name
同期ルールの名前を入力します。
Replication Scenario
同期シナリオ を アカウント間 に設定します。
Destination UID
宛先インスタンスが属する Alibaba Cloud アカウントの UID を入力します。
Destination instance
宛先インスタンスのリージョンを選択し、インスタンス ID を入力します。
-
レプリケーション情報 ステップで、レプリケーションレベル を名前空間またはリポジトリのいずれかに設定し、対応する名前空間またはリポジトリを選択し、リポジトリ バージョンのフィルタリング ルールを設定してから、ルールの作成 をクリックします。
インスタンス管理ページで、 を選択します。レプリケーションレコード ページで、同期タスクのステータスが 完了 になり、イメージが宛先インスタンスに表示されていれば、同期は成功です。
アカウント間でのインスタンスの手動同期
ソースインスタンスから別のアカウントの宛先インスタンスへイメージを手動でプッシュできます。本トピックでは、ソースインスタンスがアカウント A に属し、宛先インスタンスがアカウント B に属することを前提としています。
-
アカウント A とアカウント B の UID、および宛先インスタンスのリージョンと ID を取得します。詳細については、「事前準備」セクションをご参照ください。
-
アカウント A に、アカウント B のインスタンスへイメージを同期する権限を付与します。詳細については、「ステップ 1: アカウント B での権限付与」をご参照ください。
Container Registryコンソールにログインします。
上部のナビゲーションバーで、リージョンを選択します。
左側のナビゲーションウィンドウで、[インスタンス] をクリックします。
[インスタンス] ページで、管理するEnterprise Editionインスタンスをクリックします。
Enterprise Editionインスタンスの管理ページの左側のナビゲーションウィンドウで、 を選択します。
-
[Repositories] ページで、対象のイメージリポジトリの名前をクリックします。
-
リポジトリ詳細ページの左側のナビゲーションペインで、イメージのバージョン をクリックします。 目的のイメージバージョンを見つけ、操作 列の 同期 をクリックします。
-
同期 ダイアログボックスで、同期シナリオ を アカウント間 に設定し、転送先のアカウント UID、リージョン、インスタンス ID、名前空間、リポジトリ名、およびイメージバージョンを入力します。その後、OK をクリックします。
インスタンス管理ページで、 を選択します。レプリケーションレコード ページで、同期タスクのステータスが 完了 であり、イメージが宛先インスタンスに表示されている場合、手動同期は成功です。
関連トピック
同一アカウント内の他のリージョンへイメージを同期するには、「アカウント内インスタンス同期」をご参照ください。この方法では、アカウント認可は不要です。