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

英語の翻訳が提供されている場合で、内容が矛盾する場合には、英語版がオリジナルとして取り扱われます。翻訳は機械翻訳により提供されています。

リポジトリ ポリシーの例

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

重要

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

例: 。許可する IAM アカウント内のユーザー

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

{ "Version": "2008-10-17", "Statement": [ { "Sid": "AllowPushPull", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::account-id:user/push-pull-user-1", "arn:aws:iam::account-id: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::account-id: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::account-id:user/pull-user-1", "arn:aws:iam::account-id:user/pull-user-2" ] }, "Action": [ "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ] }, { "Sid": "AllowAll", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:user/admin-user" }, "Action": [ "ecr:*" ] } ] }

例: 。すべてを許可 AWS 画像をプルするアカウント

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

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

例: 。すべてを拒否

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

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

例: 。特定のIPアドレスへのアクセス制限

次の例は、リポジトリに適用された場合に Amazon ECR オペレーションを実行するアクセス許可をすべてのユーザーに付与します。ただし、リクエストは条件で指定された IP アドレス範囲からのリクエストである必要があります。

このステートメント内の条件は、 54.240.143.* 1 つの例外を除いて、許可される IPv4 IP アドレスの範囲: 54.240.143.188.

は、 Condition ブロックは IpAddress および NotIpAddress 条件および aws:SourceIp 条件キーです。 AWS-ワイド条件キー。これらの条件キーの詳細については、以下を参照してください。 AWS グローバル条件コンテキスト キー. は、aws:sourceIp IPv4 値は標準の CIDR 表記を使用します。詳細については、以下を参照してください。 IPアドレス条件演算子IAM ユーザーガイド.

{ "Version": "2012-10-17", "Id": "ECRPolicyId1", "Statement": [ { "Sid": "IPAllow", "Effect": "Allow", "Principal": "*", "Action": "ecr:*", "Condition": { "NotIpAddress": { "aws:SourceIp": "54.240.143.188/32" }, "IpAddress": { "aws:SourceIp": "54.240.143.0/24" } } } ] }

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

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

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