Amazon ECR
ユーザーガイド (API バージョン 2015-09-21)

Amazon ECR リポジトリポリシーの例

以下の例では、Amazon ECR リポジトリに対してユーザーが所有するアクセス権限を制御するために使用できるポリシーステートメントを示しています。

重要

Amazon ECR では、ユーザーがレジストリに対して認証されるか、Amazon ECR レポジトリとの間でイメージをプッシュまたはプルするには、事前に IAM ポリシーを通じて ecr:GetAuthorizationToken API へのアクセス権限がユーザーに許可されている必要があります。Amazon ECR は、さまざまなレベルで複数の管理 IAM ポリシーを提供します。詳細については、「Amazon ECR 管理ポリシー」を参照してください。

例: すべての AWS アカウントにイメージのプルを許可する

次のリポジトリポリシーでは、すべての AWS アカウントにイメージのプルが許可されます。

{ "Version": "2008-10-17", "Statement": [ { "Sid": "AllowPull", "Effect": "Allow", "Principal": "*", "Action": [ "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability" ] } ] }

例: アカウント内での特定の IAM ユーザーに許可する

次のリポジトリポリシーでは、アカウント内の IAM ユーザーにイメージのプッシュとプルが許可されます。

{ "Version": "2008-10-17", "Statement": [ { "Sid": "AllowPushPull", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::123456789012:user/push-pull-user-1", "arn:aws:iam::123456789012:user/push-pull-user-2" ] }, "Action": [ "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability", "ecr:PutImage", "ecr:InitiateLayerUpload", "ecr:UploadLayerPart", "ecr:CompleteLayerUpload" ] } ] }

例: 他のアカウントの許可

次のリポジトリポリシーでは、特定のアカウントにイメージのプッシュが許可されます。

{ "Version": "2008-10-17", "Statement": [ { "Sid": "AllowCrossAccountPush", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:root" }, "Action": [ "ecr:GetDownloadUrlForLayer", "ecr:BatchCheckLayerAvailability", "ecr:PutImage", "ecr:InitiateLayerUpload", "ecr:UploadLayerPart", "ecr:CompleteLayerUpload" ] } ] }

次のリポジトリポリシーでは、一部の IAM ユーザーにイメージのプルが許可されますが (pull-user-1 および pull-user-2)、別のユーザーにはフルアクセスが許可されます (admin-user)。

注記

AWS マネジメントコンソール で現在サポートされていない、より複雑なリポジトリポリシーは、set-repository-policy AWS CLI コマンドを使用して適用できます。

{ "Version": "2008-10-17", "Statement": [ { "Sid": "AllowPull", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::123456789012:user/pull-user-1", "arn:aws:iam::123456789012:user/pull-user-2" ] }, "Action": [ "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability" ] }, { "Sid": "AllowAll", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/admin-user" }, "Action": [ "ecr:*" ] } ] }

例: すべて拒否

次のリポジトリポリシーでは、すべてのユーザーに対してすべてのイメージのプルが拒否されます。

{ "Version": "2008-10-17", "Statement": [ { "Sid": "DenyPull", "Effect": "Deny", "Principal": "*", "Action": [ "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability" ] } ] }

例: サービスにリンクされたロール

次のリポジトリポリシーは、AWS CodeBuild に、そのサービスとの統合に必要な Amazon ECR API アクションへのアクセスを許可します。詳細については、AWS CodeBuild ユーザーガイドの「CodeBuild の Amazon ECR サンプル」を参照してください。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CodeBuildAccess", "Effect": "Allow", "Principal": { "Service": "codebuild.amazonaws.com" }, "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ] } ] }