プライベートレジストリの許可ステートメントを設定する - Amazon ECR

プライベートレジストリの許可ステートメントを設定する

次の手順を使用して、レジストリの許可ポリシーを追加または更新できます。レジストリごとに複数のポリシーステートメントを追加できます。エンドポイントポリシーの例については、「プライベートレジストリのポリシーの例」を参照してください。

レプリケーションのプライベートレジストリ許可

クロスアカウントポリシータイプを使用して AWS プリンシパルに許可を付与し、ソースレジストリから指定レジストリへのレポジトリのレプリケーションを許可します。デフォルトでは、ユーザーには、独自のレジストリ内でクロスリージョンレプリケーションを設定する許可があります。レジストリにコンテンツをレプリケートする許可を別のアカウントに付与する場合、必要な操作は、レジストリポリシーを構成することだけです。

レジストリポリシーは、ecr:ReplicateImage API アクションに許可を付与する必要があります。この API は、複数のリージョンまたはアカウント間でイメージをレプリケートできる内部 Amazon ECR API です。ecr:CreateRepository の許可を付与することもできます。この場合、レポジトリが存在しない場合、Amazon ECR がレジストリ内にリポジトリを作成できるようになります。ecr:CreateRepository の許可が指定されていない場合、ソースリポジトリと同じ名前のリポジトリを手動でレジストリに作成する必要があります。どちらも行われていない場合、レプリケーションは失敗します。失敗した CreateRepository または ReplicateImage API アクションは CloudTrail に表示されます。

プライベートレジストリのレプリケーション許可ポリシーを設定するには (AWS Management Console)
  1. Amazon ECR コンソール (https://console.aws.amazon.com/ecr/) を開きます。

  2. ナビゲーションバーから、レジストリポリシーを設定するリージョンを選択します。

  3. ナビゲーションペインで、[Private registry] (プライベートレジストリ)、[Registry permissions] (レジストリー許可) の順に選択します。

  4. [Registry permissions] (レジストリー許可) ページで [Generate statement] (ステートメントを生成) を選択します。

  5. ポリシージェネレータを使用してポリシーステートメントメントを定義するには、次の手順を実行します。

    1. [Policy type] (ポリシータイプ) で、[Cross account policy] (クロスアカウントポリシー) を選択します。

    2. [Statement ID] (ステートメント ID) に一意のステートメント ID を入力します。このフィールドは、レジストリポリシーの Sid として使用されます。

    3. [Accounts] (アカウント) に、許可を付与する各アカウントのアカウント ID を入力します。複数のアカウント ID を指定する場合は、カンマで区切ります。

  6. [Preview policy statement] (ポリシーステートメントをプレビュー) セクションを展開して、レジストリの許可ポリシーステートメントを確認します。

  7. ポリシーステートメントを確認したら、[Add to policy] (ポリシーに追加) を選択してレジストリにポリシーを保存します。

プライベートレジストリの許可ポリシーを設定するには (AWS CLI)
  1. registry_policy.json という名前のファイルを作成し、レジストリポリシーの情報を入力します。

    { "Version":"2012-10-17", "Statement":[ { "Sid":"ReplicationAccessCrossAccount", "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::source_account_id:root" }, "Action":[ "ecr:CreateRepository", "ecr:ReplicateImage" ], "Resource": [ "arn:aws:ecr:us-west-2:your_account_id:repository/*" ] } ] }
  2. ポリシーファイルを使用してレジストリポリシーを作成します。

    aws ecr put-registry-policy \ --policy-text file://registry_policy.json \ --region us-west-2
  3. レジストリのポリシーを取得して確認します。

    aws ecr get-registry-policy \ --region us-west-2

プルスルーキャッシュのプライベートレジストリ許可

Amazon ECR プライベートレジストリ許可は、プルスルーキャッシュを使用する個々の IAM エンティティのアクセス許可のスコープ設定に使用できます。レジストリ許可ポリシーによって付与されるアクセス許可よりも多くのアクセス許可が IAM ポリシーによって IAM エンティティに付与される場合、IAM ポリシーが優先されます。

プライベートレジストリの許可ポリシーを作成するには (AWS Management Console)
  1. Amazon ECR コンソール (https://console.aws.amazon.com/ecr/) を開きます。

  2. ナビゲーションバーから、プライベートレジストリ許可ステートメントを設定するリージョンを選択します。

  3. ナビゲーションペインで、[Private registry] (プライベートレジストリ)、[Registry permissions] (レジストリー許可) の順に選択します。

  4. [Registry permissions] (レジストリー許可) ページで [Generate statement] (ステートメントを生成) を選択します。

  5. 作成するプルスルーキャッシュ許可ポリシーステートメントごとに、次の操作を行います。

    1. [ポリシータイプ] で、[プルスルーキャッシュポリシー] を選択します。

    2. [ステートメント ID] で、プルスルーキャッシュステートメントポリシーの名前を指定します。

    3. [IAM entities] (IAM エンティティ) で、ポリシーに含めるユーザー、グループ、またはロールを指定します。

    4. [リポジトリ名前空間] で、ポリシーを関連付けるプルスルーキャッシュルールを選択します。

    5. [リポジトリ名] で、ルールを適用するリポジトリベース名を指定します。たとえば、Amazon ECR パブリックで Amazon Linux リポジトリを指定する場合、リポジトリ名は amazonlinux になります。