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

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

リポジトリポリシーの例

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

重要

Amazon ECR では、ユーザーにecr:GetAuthorizationTokenAPI では、レジストリーに対して認証したり、Amazon ECR リポジトリとの間でイメージをプッシュまたはプルしたりできるためには、事前に IAM ポリシーを通じて API を使用できます。Amazon ECR には、さまざまなレベルでユーザーアクセスを制御するいくつかのマネージド型IAM ポリシーが用意されています。詳細については、「」を参照してください。Amazon Elastic Container Registry Ident

例: アカウント内の 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-policyAWS CLI Command

{ "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.*許可されたインターネットプロトコルバージョン 4 (IPv4) IP アドレスの範囲です。ただし、を除きます。54.240.143.188

Condition ブロックでは、IpAddress および NotIpAddress 条件と、aws:SourceIp 条件キーが使用されています。これは AWS 全体を対象とする条件キーです。これらの条件キーの詳細については、」を参照してください。AWS グローバル条件コンテキストキーaws:sourceIpIPv4 値は標準の 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 アクションへのアクセスを許可します。詳細については、「」を参照してください。CodeBuild の Amazon ECR サンプル()AWS CodeBuild ユーザーガイド

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