翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon ECR でのプライベートイメージレプリケーション
リポジトリのレプリケーションをサポートするために、Amazon ECR プライベートレジストリを構成できます。Amazon ECR は、クロスリージョンレプリケーションおよびクロスアカウントレプリケーションの両方をサポートしています。クロスアカウントレプリケーションを実行するには、ターゲットアカウントで、ソースレジストリからのレプリケーションを許可するレジストリのアクセス許可ポリシーを設定する必要があります。詳細については、「Amazon ECR でのプライベートレジストリのアクセス許可」を参照してください。
トピック
クロスアカウントレプリケーションポリシーの要件
クロスアカウント ECR レプリケーションを正しく機能させるには、どのアカウントでどのポリシーが設定されているかを理解する必要があります。このセクションでは、送信元アカウントと送信先アカウントの両方のポリシー要件を明確にします。
ポリシー設定の概要
クロスアカウント ECR レプリケーションでは、送信先アカウントでのみポリシー設定が必要です。ソースアカウントには、特別なリポジトリポリシーやレジストリポリシーは必要ありません。
-
ソースアカウント: レジストリ設定でレプリケーションルールを設定します。ソースリポジトリに追加のポリシーは必要ありません。
-
送信先アカウント: ソースアカウントにイメージのレプリケートを許可するレジストリアクセス許可ポリシーを設定します。
送信先レジストリポリシーの要件
送信先アカウントは、次のアクションを実行するアクセス許可をソースアカウントに付与するレジストリアクセス許可ポリシーを設定する必要があります。
-
ecr:ReplicateImage
- ソースアカウントがイメージを送信先レジストリにレプリケートできるようにします -
ecr:CreateRepository
- リポジトリがまだ存在しない場合、ECR が宛先レジストリにリポジトリを自動的に作成できるようにします
重要
アクセスecr:CreateRepository
許可を付与しない場合は、レプリケーションが成功する前に、レプリケート先アカウントで同じ名前のリポジトリを手動で作成する必要があります。
送信先レジストリポリシーの例:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCrossAccountReplication", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
SOURCE-ACCOUNT-ID
:root" }, "Action": [ "ecr:ReplicateImage", "ecr:CreateRepository" ] } ] }
ソースアカウント要件
ソースアカウントに必要なのは、次のことだけです。
-
レジストリ設定でレプリケーションルールを設定して、レプリケート先アカウントとリージョンを指定する
-
レプリケーションを設定する IAM プリンシパルに必要な ECR アクセス許可があることを確認します。
ソースリポジトリに追加のポリシーは必要ありません。ソースリポジトリには、レプリケーション許可を付与するリポジトリポリシーは必要ありません。
一般的な誤解
ECR クロスアカウントレプリケーションポリシーに関する一般的な誤解は次のとおりです。
-
誤解: ソースリポジトリには、送信先アカウントがイメージをレプリケートできるようにするポリシーが必要です。
現実: ソースリポジトリでは、レプリケーションに特別なポリシーは必要ありません。
-
誤解: 送信元アカウントと送信先アカウントの両方にレジストリポリシーが必要です。
現実: レジストリアクセス許可ポリシーが必要なのは、送信先アカウントのみです。
-
誤解: リポジトリポリシーとレジストリポリシーは同じものです。
現実: リポジトリポリシーは個々のリポジトリへのアクセスを制御し、レジストリポリシーはレプリケーションなどのレジストリレベルのオペレーションを制御します。
レプリケーションの失敗のトラブルシューティング
クロスアカウントレプリケーションが失敗する場合は、以下を確認してください。
-
送信先アカウントにレジストリアクセス許可ポリシーが設定されていることを確認します。
-
レジストリポリシーに
ecr:ReplicateImage
アクションとecr:CreateRepository
アクションの両方が含まれていることを確認します。 -
送信元アカウント ID が送信先レジストリポリシーで正しく指定されていることを確認します。
-
送信先リポジトリが存在することを確認する (
ecr:CreateRepository
が付与されていない場合) -
CloudTrail ログで失敗した
CreateRepository
またはReplicateImage
API コールを確認する
プライベートイメージのレプリケーションに関する考慮事項
プライベートイメージのレプリケーションを使用する際には、以下の点を考慮する必要があります。
-
複製されるのは、レプリケーションの構成後にリポジトリにプッシュされたリポジトリコンテンツのみです。リポジトリ内の既存のコンテンツはいずれも複製されません。リポジトリにレプリケーションが構成されると、Amazon ECR は宛先とソースの同期を継続します。
-
レプリケーションが行われても、リポジトリ名はリージョンとアカウント間で同じままです。Amazon ECR はレプリケーション中のリポジトリ名の変更をサポートしていません。
-
レプリケーション用にプライベートレジストリを初めて設定すると、Amazon ECR は、お客様に代わってサービスにリンクされた IAM ロールを作成します。サービスにリンクされた IAM ロールは、レジストリでレポジトリの作成とイメージのレプリケートを行うために必要なアクセス許可を Amazon ECR レプリケーションサービスに付与します。詳細については、「Amazon ECR でのサービスにリンクされたロールの使用」を参照してください。
-
クロスアカウントレプリケーションを実行するには、プライベートレジストリのレプリケート先が、ソースレジストリによるそのイメージのレプリケートを許可する必要があります。これは、プライベートレジストリの許可ポリシーを設定することによって許可できます。詳細については、「Amazon ECR でのプライベートレジストリのアクセス許可」を参照してください。
-
プライベートレジストリの許可ポリシーが許可を取り消すように変更された場合でも、以前に許可された進行中のレプリケーションは完了することができます。
-
クロスリージョンレプリケーションを行うには、そのリージョン内またはリージョンに対してレプリケーションアクションが発生する前に、ソースアカウントとターゲットアカウントの両方がリージョンにオプトインされている必要があります。詳細については、「Amazon Web Services 全般のリファレンス」の「AWS リージョンの管理」を参照してください。
-
AWS パーティション間のクロスリージョンレプリケーションはサポートされていません。たとえば、
us-west-2
のリポジトリはcn-north-1
にレプリケートできません。 AWS パーティションの詳細については、AWS 「 全般のリファレンス」の「ARN 形式」を参照してください。 -
プライベートレジストリのレプリケーション設定には、すべてのルール (合計で最大 10 個) 全体で最大 25 個の一意のレプリケート先を含めることができます。各ルールには、最大 100 個のフィルターを含めることができます。これは、例えば本番環境やテスト用に使用されるイメージが含まれるリポジトリに対して個別のルールを指定することを可能にします。
-
レプリケーション設定は、リポジトリプレフィックスを指定することによって、プライベートレジストリ内のレプリケートされるリポジトリのフィルタリングをサポートします。例については、「例: リポジトリフィルターを使用したクロスリージョンレプリケーションの設定」を参照してください。
-
レプリケーションアクションは、イメージプッシュごとに 1 回のみ実行されます。たとえば、
us-west-2
からus-east-1
およびus-east-1
からus-east-2
へのクロスリージョンレプリケーションを設定した場合、us-west-2
にプッシュされたイメージはus-east-1
にのみレプリケートされ、us-east-2
には再度レプリk-トされません。この動作は、クロスリージョンおよびクロスアカウントのレプリケーションの両方に適用されます。 -
大部分のイメージは 30 分以内にレプリケートされますが、まれにレプリケーションに時間がかかることがあります。
-
レジストリレプリケーションでは、削除アクションは実行されません。レプリケートされたイメージとリポジトリは、使用しなくなったときに手動で削除できます。
-
IAM ポリシーやライフサイクルポリシーなどのリポジトリポリシーはレプリケートされず、定義されているリポジトリ以外には影響しません。
-
リポジトリ設定はデフォルトでレプリケートされません。リポジトリ作成テンプレートを使用してリポジトリ設定をレプリケートできます。これらの設定には、タグのミュータビリティ、暗号化、リポジトリのアクセス許可、ライフサイクルポリシーが含まれます。リポジトリ作成テンプレートの詳細については、「」を参照してくださいプルスルーキャッシュまたはレプリケーションアクション中に作成されたリポジトリを制御するテンプレート。
-
リポジトリでタグのイミュータブル性が有効で、既存のイメージと同じタグを使用するイメージをレプリケートする場合、イメージはレプリケートされますが、重複したタグは含まれません。その結果、イメージのタグ付けが解除される可能性があります。