このドキュメントはバージョン 1 の AWS CLI のみを対象としています。AWS CLI のバージョン 2 に関連するドキュメントについては、バージョン 2 用ユーザーガイドを参照してください。
次のコード例は、Amazon ECR Public で AWS Command Line Interfaceを使用してアクションを実行し、一般的なシナリオを実装する方法を示しています。
アクションはより大きなプログラムからのコードの抜粋であり、コンテキスト内で実行する必要があります。アクションは個々のサービス機能を呼び出す方法を示していますが、コンテキスト内のアクションは、関連するシナリオで確認できます。
各例には完全なソースコードへのリンクが含まれており、コードの設定方法と実行方法に関する手順を確認できます。
トピック
アクション
次のコード例では、batch-delete-image
を使用する方法を示しています。
- AWS CLI
-
例 1: イメージダイジェスト ID を使用してイメージを削除するために、パブリックレジストリ内のリポジトリからイメージとそのすべてのタグが削除される
次の
batch-delete-image
の例では、イメージダイジェストを指定してイメージを削除します。aws ecr-public batch-delete-image \ --repository-name
project-a/nginx-web-app
\ --image-idsimageDigest=sha256:b1f9deb5fe3711a3278379ebbcaefbc5d70a2263135db86bd27a0dae150546c2
出力:
{ "imageIds": [ { "imageDigest": "sha256:b1f9deb5fe3711a3278379ebbcaefbc5d70a2263135db86bd27a0dae150546c2", "imageTag": "latest" } ], "failures": [] }
詳細については、Amazon ECR Public ユーザーガイドの「パブリックリポジトリからのイメージの削除」を参照してください。
例 2: リポジトリから削除するイメージに関連付けられているタグを指定してイメージを削除するには
次の
batch-delete-image
の例では、パブリックレジストリ内のproject-a/nginx-web-app
という名前のイメージリポジトリに関連付けられているタグを指定してイメージを削除します。タグが 1 つしかない場合、このコマンドを実行すると、イメージが削除されます。同じイメージに複数のタグがある場合は、1 つのタグを指定すると、そのタグのみがリポジトリから削除され、イメージ自体は削除されません。aws ecr-public batch-delete-image \ --repository-name
project-a/nginx-web-app
\ --image-idsimageTag=_temp
出力:
{ "imageIds": [ { "imageDigest": "sha256:f7a86a0760e2f8d7eff07e515fc87bf4bac45c35376c06f9a280f15ecad6d7e0", "imageTag": "_temp" } ], "failures": [] }
詳細については、Amazon ECR Public ユーザーガイドの「パブリックリポジトリからのイメージの削除」を参照してください。
例 3: パブリックレジストリ内のリポジトリに対するリクエストで複数のイメージタグまたはイメージダイジェストを指定して、複数のイメージを削除するには
次の
batch-delete-image
の例では、リクエストで複数のイメージタグまたはイメージダイジェストを指定することで、project-a/nginx-web-app という名前のリポジトリから複数のイメージを削除します。aws ecr-public batch-delete-image \ --repository-name
project-a/nginx-web-app
\ --image-idsimageTag=temp2.0
imageDigest=sha256:47ba980bc055353d9c0af89b1894f68faa43ca93856917b8406316be86f01278
出力:
{ "imageIds": [ { "imageDigest": "sha256:47ba980bc055353d9c0af89b1894f68faa43ca93856917b8406316be86f01278" }, { "imageDigest": "sha256:f7a86a0760e2f8d7eff07e515fc87bf4bac45c35376c06f9a280f15ecad6d7e0", "imageTag": "temp2.0" } ], "failures": [] }
詳細については、Amazon ECR Public ユーザーガイドの「パブリックリポジトリからのイメージの削除」を参照してください。
例 4: レジストリ ID とイメージダイジェスト ID を使用してクロス AWS アカウントのイメージを削除するために、パブリックレジストリ内のリポジトリからイメージとそのすべてのタグが削除される
次の
batch-delete-image
の例では、クロス AWS アカウントのイメージダイジェストを指定してイメージを削除します。aws ecr-public batch-delete-image \ --registry-id
123456789098
\ --repository-nameproject-a/nginx-web-app
\ --image-idsimageDigest=sha256:b1f9deb5fe3711a3278379ebbcaefbc5d70a2263135db86bd27a0dae150546c2
\ --regionus-east-1
出力:
{ "imageIds": [ { "imageDigest": "sha256:b1f9deb5fe3711a3278379ebbcaefbc5d70a2263135db86bd27a0dae150546c2", "imageTag": "temp2.0" } ], "failures": [] }
詳細については、Amazon ECR Public ユーザーガイドの「パブリックリポジトリからのイメージの削除」を参照してください。
-
API の詳細については、「AWS CLI コマンドリファレンス」の「BatchDeleteImage
」を参照してください。
-
次のコード例では、create-repository
を使用する方法を示しています。
- AWS CLI
-
例 1: パブリックレジストリにリポジトリを作成するには
次の
create-repository
の例では、パブリックレジストリに project-a/nginx-web-app という名前のリポジトリを作成します。aws ecr-public create-repository \ --repository-name
project-a/nginx-web-app
出力:
{ "repository": { "repositoryArn": "arn:aws:ecr-public::123456789012:repository/project-a/nginx-web-app", "registryId": "123456789012", "repositoryName": "project-a/nginx-web-app", "repositoryUri": "public.ecr.aws/public-registry-custom-alias/project-a/nginx-web-app", "createdAt": "2024-07-01T21:08:55.131000+00:00" }, "catalogData": {} }
詳細については、Amazon ECR Public ユーザーガイドの「パブリックリポジトリの作成」を参照してください。
例 2: リポジトリ内のイメージと互換性があるリポジトリ、システム、およびオペレーションアーキテクチャの内容を簡単に記述して、パブリックレジストリにリポジトリを作成するには
次の
create-repository
の例では、パブリックレジストリに project-a/nginx-web-app という名前のリポジトリを作成し、そのリポジトリの内容について、さらに、そのリポジトリ内のイメージと互換性のあるシステムとオペレーティングアーキテクチャについて、簡単な説明を追加します。aws ecr-public create-repository \ --repository-name
project-a/nginx-web-app
\ --catalog-data 'description=My project-a ECR Public Repository,architectures=ARM,ARM 64,x86,x86-64,operatingSystems=Linux
'出力:
{ "repository": { "repositoryArn": "arn:aws:ecr-public::123456789012:repository/project-a/nginx-web-app", "registryId": "123456789012", "repositoryName": "project-a/nginx-web-app", "repositoryUri": "public.ecr.aws/public-registry-custom-alias/project-a/nginx-web-app", "createdAt": "2024-07-01T21:23:20.455000+00:00" }, "catalogData": { "description": "My project-a ECR Public Repository", "architectures": [ "ARM", "ARM 64", "x86", "x86-64" ], "operatingSystems": [ "Linux" ] } }
詳細については、Amazon ECR Public ユーザーガイドの「パブリックリポジトリの作成」を参照してください。
例 3: logoImageBlob、aboutText、usageText、タグ情報と一緒にパブリックレジストリにリポジトリを作成するには
次の
create-repository
の例では、project-a/nginx-web-app という名前のリポジトリを、logoImageBlob、aboutText、usageText、タグ情報と一緒にパブリックレジストリに作成します。aws ecr-public create-repository \ --cli-input-json
file://myfile.json
myfile.json
の内容:{ "repositoryName": "project-a/nginx-web-app", "catalogData": { "description": "My project-a ECR Public Repository", "architectures": [ "ARM", "ARM 64", "x86", "x86-64" ], "operatingSystems": [ "Linux" ], "logoImageBlob": "iVBORw0KGgoA<<truncated-for-better-reading>>ErkJggg==", "aboutText": "## Quick reference\n\nMaintained by: [the Amazon Linux Team](https://github.com/aws/amazon-linux-docker-images)\n\nWhere to get help: [the Docker Community Forums](https://forums.docker.com/), [the Docker Community Slack](https://dockr.ly/slack), or [Stack Overflow](https://stackoverflow.com/search?tab=newest&q=docker)\n\n## Supported tags and respective `dockerfile` links\n\n* [`2.0.20200722.0`, `2`, `latest`](https://github.com/amazonlinux/container-images/blob/03d54f8c4d522bf712cffd6c8f9aafba0a875e78/Dockerfile)\n* [`2.0.20200722.0-with-sources`, `2-with-sources`, `with-sources`](https://github.com/amazonlinux/container-images/blob/1e7349845e029a2e6afe6dc473ef17d052e3546f/Dockerfile)\n* [`2018.03.0.20200602.1`, `2018.03`, `1`](https://github.com/amazonlinux/container-images/blob/f10932e08c75457eeb372bf1cc47ea2a4b8e98c8/Dockerfile)\n* [`2018.03.0.20200602.1-with-sources`, `2018.03-with-sources`, `1-with-sources`](https://github.com/amazonlinux/container-images/blob/8c9ee491689d901aa72719be0ec12087a5fa8faf/Dockerfile)\n\n## What is Amazon Linux?\n\nAmazon Linux is provided by Amazon Web Services (AWS). It is designed to provide a stable, secure, and high-performance execution environment for applications running on Amazon EC2. The full distribution includes packages that enable easy integration with AWS, including launch configuration tools and many popular AWS libraries and tools. AWS provides ongoing security and maintenance updates to all instances running Amazon Linux.\n\nThe Amazon Linux container image contains a minimal set of packages. To install additional packages, [use `yum`](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/managing-software.html).\n\nAWS provides two versions of Amazon Linux: [Amazon Linux 2](https://aws.amazon.com/amazon-linux-2/) and [Amazon Linux AMI](https://aws.amazon.com/amazon-linux-ami/).\n\nFor information on security updates for Amazon Linux, please refer to [Amazon Linux 2 Security Advisories](https://alas.aws.amazon.com/alas2.html) and [Amazon Linux AMI Security Advisories](https://alas.aws.amazon.com/). Note that Docker Hub's vulnerability scanning for Amazon Linux is currently based on RPM versions, which does not reflect the state of backported patches for vulnerabilities.\n\n## Where can I run Amazon Linux container images?\n\nYou can run Amazon Linux container images in any Docker based environment. Examples include, your laptop, in Amazon EC2 instances, and Amazon ECS clusters.\n\n## License\n\nAmazon Linux is available under the [GNU General Public License, version 2.0](https://github.com/aws/amazon-linux-docker-images/blob/master/LICENSE). Individual software packages are available under their own licenses; run `rpm -qi [package name]` or check `/usr/share/doc/[package name]-*` and `/usr/share/licenses/[package name]-*` for details.\n\nAs with all Docker images, these likely also contain other software which may be under other licenses (such as Bash, etc from the base distribution, along with any direct or indirect dependencies of the primary software being contained).\n\nSome additional license information which was able to be auto-detected might be found in [the `repo-info` repository's `amazonlinux/` directory](https://github.com/docker-library/repo-info/tree/master/repos/amazonlinux).\n\n## Security\n\nFor information on security updates for Amazon Linux, please refer to [Amazon Linux 2 Security Advisories](https://alas.aws.amazon.com/alas2.html) and [Amazon Linux AMI Security Advisories](https://alas.aws.amazon.com/). Note that Docker Hub's vulnerability scanning for Amazon Linux is currently based on RPM versions, which does not reflect the state of backported patches for vulnerabilities.", "usageText": "## Supported architectures\n\namd64, arm64v8\n\n## Where can I run Amazon Linux container images?\n\nYou can run Amazon Linux container images in any Docker based environment. Examples include, your laptop, in Amazon EC2 instances, and ECS clusters.\n\n## How do I install a software package from Extras repository in Amazon Linux 2?\n\nAvailable packages can be listed with the `amazon-linux-extras` command. Packages can be installed with the `amazon-linux-extras install <package>` command. Example: `amazon-linux-extras install rust1`\n\n## Will updates be available for Amazon Linux containers?\n\nSimilar to the Amazon Linux images for Amazon EC2 and on-premises use, Amazon Linux container images will get ongoing updates from Amazon in the form of security updates, bug fix updates, and other enhancements. Security bulletins for Amazon Linux are available at https://alas.aws.amazon.com/\n\n## Will AWS Support the current version of Amazon Linux going forward?\n\nYes; in order to avoid any disruption to your existing applications and to facilitate migration to Amazon Linux 2, AWS will provide regular security updates for Amazon Linux 2018.03 AMI and container image for 2 years after the final LTS build is announced. You can also use all your existing support channels such as AWS Support and Amazon Linux Discussion Forum to continue to submit support requests." }, "tags": [ { "Key": "Name", "Value": "project-a/nginx-web-app" }, { "Key": "Environment", "Value": "Prod" } ] }
出力:
{ "repository": { "repositoryArn": "arn:aws:ecr-public::123456789012:repository/project-a/nginx-web-app", "registryId": "123456789012", "repositoryName": "project-a/nginx-web-app", "repositoryUri": "public.ecr.aws/public-registry-custom-alias/project-a/nginx-web-app", "createdAt": "2024-07-01T21:53:05.749000+00:00" }, "catalogData": { "description": "My project-a ECR Public Repository", "architectures": [ "ARM", "ARM 64", "x86", "x86-64" ], "operatingSystems": [ "Linux" ], "logoUrl": "https://d3g9o9u8re44ak.cloudfront.net/logo/23861450-4b9b-403c-9a4c-7aa0ef140bb8/2f9bf5a7-a32f-45b4-b5cd-c5770a35e6d7.png", "aboutText": "## Quick reference\n\nMaintained by: [the Amazon Linux Team](https://github.com/aws/amazon-linux-docker-images)\n\nWhere to get help: [the Docker Community Forums](https://forums.docker.com/), [the Docker Community Slack](https://dockr.ly/slack), or [Stack Overflow](https://stackoverflow.com/search?tab=newest&q=docker)\n\n## Supported tags and respective `dockerfile` links\n\n* [`2.0.20200722.0`, `2`, `latest`](https://github.com/amazonlinux/container-images/blob/03d54f8c4d522bf712cffd6c8f9aafba0a875e78/Dockerfile)\n* [`2.0.20200722.0-with-sources`, `2-with-sources`, `with-sources`](https://github.com/amazonlinux/container-images/blob/1e7349845e029a2e6afe6dc473ef17d052e3546f/Dockerfile)\n* [`2018.03.0.20200602.1`, `2018.03`, `1`](https://github.com/amazonlinux/container-images/blob/f10932e08c75457eeb372bf1cc47ea2a4b8e98c8/Dockerfile)\n* [`2018.03.0.20200602.1-with-sources`, `2018.03-with-sources`, `1-with-sources`](https://github.com/amazonlinux/container-images/blob/8c9ee491689d901aa72719be0ec12087a5fa8faf/Dockerfile)\n\n## What is Amazon Linux?\n\nAmazon Linux is provided by Amazon Web Services (AWS). It is designed to provide a stable, secure, and high-performance execution environment for applications running on Amazon EC2. The full distribution includes packages that enable easy integration with AWS, including launch configuration tools and many popular AWS libraries and tools. AWS provides ongoing security and maintenance updates to all instances running Amazon Linux.\n\nThe Amazon Linux container image contains a minimal set of packages. To install additional packages, [use `yum`](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/managing-software.html).\n\nAWS provides two versions of Amazon Linux: [Amazon Linux 2](https://aws.amazon.com/amazon-linux-2/) and [Amazon Linux AMI](https://aws.amazon.com/amazon-linux-ami/).\n\nFor information on security updates for Amazon Linux, please refer to [Amazon Linux 2 Security Advisories](https://alas.aws.amazon.com/alas2.html) and [Amazon Linux AMI Security Advisories](https://alas.aws.amazon.com/). Note that Docker Hub's vulnerability scanning for Amazon Linux is currently based on RPM versions, which does not reflect the state of backported patches for vulnerabilities.\n\n## Where can I run Amazon Linux container images?\n\nYou can run Amazon Linux container images in any Docker based environment. Examples include, your laptop, in Amazon EC2 instances, and Amazon ECS clusters.\n\n## License\n\nAmazon Linux is available under the [GNU General Public License, version 2.0](https://github.com/aws/amazon-linux-docker-images/blob/master/LICENSE). Individual software packages are available under their own licenses; run `rpm -qi [package name]` or check `/usr/share/doc/[package name]-*` and `/usr/share/licenses/[package name]-*` for details.\n\nAs with all Docker images, these likely also contain other software which may be under other licenses (such as Bash, etc from the base distribution, along with any direct or indirect dependencies of the primary software being contained).\n\nSome additional license information which was able to be auto-detected might be found in [the `repo-info` repository's `amazonlinux/` directory](https://github.com/docker-library/repo-info/tree/master/repos/amazonlinux).\n\n## Security\n\nFor information on security updates for Amazon Linux, please refer to [Amazon Linux 2 Security Advisories](https://alas.aws.amazon.com/alas2.html) and [Amazon Linux AMI Security Advisories](https://alas.aws.amazon.com/). Note that Docker Hub's vulnerability scanning for Amazon Linux is currently based on RPM versions, which does not reflect the state of backported patches for vulnerabilities.", "usageText": "## Supported architectures\n\namd64, arm64v8\n\n## Where can I run Amazon Linux container images?\n\nYou can run Amazon Linux container images in any Docker based environment. Examples include, your laptop, in Amazon EC2 instances, and ECS clusters.\n\n## How do I install a software package from Extras repository in Amazon Linux 2?\n\nAvailable packages can be listed with the `amazon-linux-extras` command. Packages can be installed with the `amazon-linux-extras install <package>` command. Example: `amazon-linux-extras install rust1`\n\n## Will updates be available for Amazon Linux containers?\n\nSimilar to the Amazon Linux images for Amazon EC2 and on-premises use, Amazon Linux container images will get ongoing updates from Amazon in the form of security updates, bug fix updates, and other enhancements. Security bulletins for Amazon Linux are available at https://alas.aws.amazon.com/\n\n## Will AWS Support the current version of Amazon Linux going forward?\n\nYes; in order to avoid any disruption to your existing applications and to facilitate migration to Amazon Linux 2, AWS will provide regular security updates for Amazon Linux 2018.03 AMI and container image for 2 years after the final LTS build is announced. You can also use all your existing support channels such as AWS Support and Amazon Linux Discussion Forum to continue to submit support requests." } }
詳細については、「Amazon ECR Public ユーザーガイド」の「パブリックリポジトリの作成」および「Amazon ECR Public ユーザーガイド」の「リポジトリカタログデータ」を参照してください。
-
API の詳細については、「AWS CLI コマンドリファレンス」の「CreateRepository
」を参照してください。
-
次のコード例では、delete-repository-policy
を使用する方法を示しています。
- AWS CLI
-
パブリックレジストリのリポジトリに関するポリシーを削除するには
次の
delete-repository-policy
の例では、AWS アカウントの ECR Public リポジトリに関するポリシーを削除します。aws ecr-public delete-repository-policy \ --repository-name
project-a/nginx-web-app
\ --regionus-east-1
出力:
{ "registryId": "123456789012", "repositoryName": "project-a/nginx-web-app", "policyText": "{\n \"Version\" : \"2008-10-17\",\n \"Statement\" : [ {\n \"Sid\" : \"AllowPush\",\n \"Effect\" : \"Allow\",\n \"Principal\" : {\n \"AWS\" : [ \"arn:aws:iam:"123456789012":user/eksuser1\", \"arn:aws:iam:"123456789012":user/admin\" ]\n },\n \"Action\" : [ \"ecr-public:BatchCheckLayerAvailability\", \"ecr-public:PutImage\", \"ecr-public:InitiateLayerUpload\", \"ecr-public:UploadLayerPart\", \"ecr-public:CompleteLayerUpload\" ]\n } ]\n}" }
詳細については、Amazon ECR Public ユーザーガイドの「パブリックリポジトリのポリシーステートメントの削除」を参照してください。
-
API の詳細については、「AWS CLI コマンドリファレンス」の「DeleteRepositoryPolicy
」を参照してください。
-
次のコード例では、delete-repository
を使用する方法を示しています。
- AWS CLI
-
パブリックレジストリのリポジトリを削除するには
次の
delete-repository
の例では、パブリックレジストリからproject-a/nginx-web-app
という名前のリポジトリを削除します。aws ecr-public delete-repository \ --repository-name
project-a/nginx-web-app
出力:
{ "repository": { "repositoryArn": "arn:aws:ecr-public::123456789012:repository/project-a/nginx-web-app", "registryId": "123456789012", "repositoryName": "project-a/nginx-web-app", "repositoryUri": "public.ecr.aws/public-registry-custom-alias/project-a/nginx-web-app", "createdAt": "2024-07-01T22:14:50.103000+00:00" } }
詳細については、Amazon ECR Public の「パブリックリポジトリの削除」を参照してください。
-
API の詳細については、「AWS CLI コマンドリファレンス」の「DeleteRepository
」を参照してください。
-
次のコード例では、describe-image-tags
を使用する方法を示しています。
- AWS CLI
-
例 1: パブリックリポジトリのイメージタグの詳細を取得するには
次の
describe-image-tags
の例では、project-a/nginx-web-app
サンプルリポジトリ内のイメージタグについて説明します。aws ecr-public describe-image-tags \ --repository-name
project-a/nginx-web-app
\ --regionus-east-1
出力:
{ "imageTagDetails": [ { "imageTag": "latest", "createdAt": "2024-07-10T22:29:00-05:00", "imageDetail": { "imageDigest": "sha256:b1f9deb5fe3711a3278379ebbcaefbc5d70a2263135db86bd27a0dae150546c2", "imageSizeInBytes": 121956548, "imagePushedAt": "2024-07-10T22:29:00-05:00", "imageManifestMediaType": "application/vnd.docker.distribution.manifest.v2+json", "artifactMediaType": "application/vnd.docker.container.image.v1+json" } } ] }
-
API の詳細については、AWS CLI コマンドリファレンスの「DescribeImageTags
」を参照してください。
-
次のコード例では、describe-images
を使用する方法を示しています。
- AWS CLI
-
例 1: パブリックレジストリリポジトリ内のイメージの詳細を取得するには
次の
describe-images
の例では、パブリックレジストリ内のproject-a/nginx-web-app
という名前のリポジトリ内の imagesDetails の詳細を取得します。aws ecr-public describe-images \ --repository-name
project-a/nginx-web-app
\ --regionus-east-1
出力:
{ "imageDetails": [ { "registryId": "123456789012", "repositoryName": "project-a/nginx-web-app", "imageDigest": "sha256:0d8c93e72e82fa070d49565c00af32abbe8ddfd7f75e39f4306771ae0628c7e8", "imageTags": [ "temp1.0" ], "imageSizeInBytes": 123184716, "imagePushedAt": "2024-07-23T11:32:49-05:00", "imageManifestMediaType": "application/vnd.docker.distribution.manifest.v2+json", "artifactMediaType": "application/vnd.docker.container.image.v1+json" }, { "registryId": "123456789012", "repositoryName": "project-a/nginx-web-app", "imageDigest": "sha256:b1f9deb5fe3711a3278379ebbcaefbc5d70a2263135db86bd27a0dae150546c2", "imageTags": [ "temp2.0" ], "imageSizeInBytes": 121956548, "imagePushedAt": "2024-07-23T11:39:38-05:00", "imageManifestMediaType": "application/vnd.docker.distribution.manifest.v2+json", "artifactMediaType": "application/vnd.docker.container.image.v1+json" }, { "registryId": "123456789012", "repositoryName": "project-a/nginx-web-app", "imageDigest": "sha256:f7a86a0760e2f8d7eff07e515fc87bf4bac45c35376c06f9a280f15ecad6d7e0", "imageTags": [ "temp3.0", "latest" ], "imageSizeInBytes": 232108879, "imagePushedAt": "2024-07-22T00:54:34-05:00", "imageManifestMediaType": "application/vnd.docker.distribution.manifest.v2+json", "artifactMediaType": "application/vnd.docker.container.image.v1+json" } ] }
詳細については、Amazon ECR Public の「パブリックリポジトリのイメージの詳細を取得する」を参照してください。
例 2: リポジトリからイメージを imageTags と imagePushedAt でソートして詳細を取得するには
次の
describe-images
の例では、パブリックレジストリ内の project-a/nginx-web-app という名前のリポジトリ内のイメージの詳細を取得します。aws ecr-public describe-images \ --repository-name
project-a/nginx-web-app
\ --query 'sort_by(imageDetails,& imagePushedAt)[*].imageTags[*]
' \ --outputtext
出力:
temp3.0 latest temp1.0 temp2.0
例 3: リポジトリにプッシュされた最後の 2 つのイメージタグを生成するためにリポジトリからイメージの詳細を取得するには
次の
describe-images
の例では、パブリックレジストリ内のproject-a/nginx-web-app
という名前のリポジトリからイメージタグの詳細を取得し、結果に対してクエリを実行して最初の 2 つのレコードのみを表示します。aws ecr-public describe-images \ --repository-name
project-a/nginx-web-app
\ --query 'sort_by(imageDetails,& imagePushedAt)[*].imageTags[*] | [0:2]
' \ --outputtext
出力:
temp3.0 latest temp1.0
-
API の詳細については、「AWS CLI コマンドリファレンス」の「DescribeImages
」を参照してください。
-
次のコード例では、describe-registries
を使用する方法を示しています。
- AWS CLI
-
パブリックレジストリ内のすべてのレジストリの詳細を取得するには
次の
describe-registries
の例では、アカウントのすべてのレジストリの詳細を取得します。aws ecr-public describe-registries
出力:
{ "registries": [ { "registryId": "123456789012", "registryArn": "arn:aws:ecr-public::123456789012:registry/123456789012", "registryUri": "public.ecr.aws/publicregistrycustomalias", "verified": false, "aliases": [ { "name": "publicregistrycustomalias", "status": "ACTIVE", "primaryRegistryAlias": true, "defaultRegistryAlias": true } ] } ] }
-
API の詳細については、AWS CLI コマンドリファレンスの「DescribeRegistries
」を参照してください。
-
次のコード例では、describe-repository
を使用する方法を示しています。
- AWS CLI
-
例 1: パブリックレジストリ内のリポジトリの詳細を取得するには
次の
describe-repositories
の例では、パブリックレジストリ内のproject-a/nginx-web-app
という名前のリポジトリの詳細を取得します。aws ecr-public describe-repositories \ --repository-name
project-a/nginx-web-app
出力:
{ "repositories": [ { "repositoryArn": "arn:aws:ecr-public::123456789012:repository/project-a/nginx-web-app", "registryId": "123456789012", "repositoryName": "project-a/nginx-web-app", "repositoryUri": "public.ecr.aws/public-registry-custom-alias/project-a/nginx-web-app", "createdAt": "2024-07-07T00:07:56.526000-05:00" } ] }
例 2: パブリックレジストリ内のすべてのリポジトリの詳細を表形式で表示するには
次の
describe-repositories
の例では、パブリックレジストリ内のすべてのリポジトリの詳細を取得し、リポジトリ名を表形式で出力します。aws ecr-public describe-repositories \ --region
us-east-1
\ --outputtable
\ --query"repositories[*].repositoryName"
出力:
----------------------------- | DescribeRepositories | +---------------------------+ | project-a/nginx-web-app | | nginx | | myfirstrepo1 | | helm-test-chart | | test-ecr-public | | nginx-web-app | | sample-repo | +---------------------------+
-
API の詳細については、「AWS CLI コマンドリファレンス」の「DescribeRepository
」を参照してください。
-
次のコード例では、get-authorization-token
を使用する方法を示しています。
- AWS CLI
-
例 1: IAM プリンシパルがアクセスできる Amazon ECR パブリックレジストリの認可トークンを取得するには
次の
get-authorization-token
の例では、AWS CLI を使用して認可トークンを取得し、環境変数に設定します。aws ecr-public get-authorization-token \ --region
us-east-1
出力:
{ "authorizationData": { "authorizationToken": "QVdTOmV5SndZWGxzYjJKJFHDSFKJHERWUY65IOU36TRYEGFNSDLRIUOTUYTHJKLDFGOcmFUQk9OSFV2UVV4a0x6Sm1ZV0Z6TDFndlZtUjJSVmgxVEVObU9IZEdTWEZxU210c1JUQm5RWGxOUVV4NlNFUnROWG92ZWtGbWJFUjRkbWMyV0U5amFpczRNWGxTVkM5Tk5qWkVUM2RDYm05TVJqSkxjV3BsUVZvMmFYSm5iV1ZvVFdGSVRqVlFMMHN4VnpsTGVXbDFRWGRoTmpsbWFuQllhbVl6TkdGaGMwUjJha2xsYUhscWRscHZTRUpFVkVnNVQwNUdOVFpPY2xZclVFNVFVWGRSVFZvd04xUkhjVGxZZFVkQ1ZFZHBPRUptUzBVclYxQldMMjVMVkRsd2VFVlNSa1EzTWpWSlIxRkVWakJGZFZOVWEzaFBSVk5FWWpSc1lWZHZWMHBSYmxaMlJYWmhZekpaWVVOeFppdFlUa2xKU1RCdFUwdElVbXRJYlhGRk1WaFhNVTVRTkdwc1FYRlVNVWxZZUhkV05Xa3ZXWGd3ZUVZMWIyeE5VRU5QZEdSaWRHOU9lakZOZVdwTVZEUkNRVzlvYzNKSlpsRXhhR2cwWjJwRVJFVjNWalEzYjNCUmRIcEZUR1pYU1Rsc1kxSlNNbU5hUW5wRE1tOUpRMHR5Y1hkeGNXNDVMMmx4Um5GUlVGQnhjMVpQZG5WYUswOW9SQ3RPY0hwSlRsUk5lVXQyY0c1b1FsQjVZVEprVmtSdmJsQklOM05RU3pkNmQydERhMkZ5VmxSRmFVUndWVlE1ZGtsVWFXUkJWMFZEWVhoSFdXTk5VMXBTYTFreVRHZEVlVVZ0ZFRWRk4xTTVjRXBDUjBRMlYyTkdPVWhGWkVweVVGcEVaRFJxZUVablkwNXFaamh5YkVKWmJGSTNOVzFXSzFjdllXSTVTMWx2YUZacksxSnJWSFJ0Wml0T1NFSnpWVFZvV204eVFYbzFWRU5SYjNaR01Va3hPR3h2TWxkNVJsSmpUbTVSTjNjemJsUkdVRlZKVDBjeE9VeHlXVEpGVFRSS2NWbFdkVEJrV0VreFVsSktXbkpCVGtsMFdVZEJOMjltWjFFNGVHRktNbGRuWlVoUlNXNXdZV3A0VjI5M2FYZGljbE5tZGpkQ1ZYTmhOVFUyTDBzeVpteDBka0pUTVdkNGJ6TkxkSEJDYml0cE0waGhTbVpEZEZkQ00yOU1TM1pXTDNSVFlWaFpWelZXVWxjNFRXNXdhR3BhUmpoU1FuWnFkRlJMVW5abGRYRlNjVVJKZDBaSFpXUTRabEZUTUdOTVQwcFFkVXAyYjA5Tk9UaFlZMjEwVnpFMlpXdE9hMnBWV0hST1owUkpVV3R1VFU1dGJXWjNNVGc0VTAxUlNHZE9TbXRMY2tWYWJVeFljVVk0ZWpsTFdWWlRNbEZMVDJkMk1FaFBTMDl5YzJSM1NqTlplRGhUWVVOQlJGWnRlbkU1WTBKVFdqTktSR05WTkd0RGNEVjZNalJHVXpkVk9HTnVSa2xLUVd4SVJDODJXbGcyYldGemJVczJPRVp6TDBoNFMwWkRUMmdyYldGa1QwWjVhMlZQTm5SQ1l6QkpNbFpyVUhSaGVIbFVOR296VjFGVlQyMHpNeTlPWVVoSk1FdDBWalZFU2pneU5rcHNLemQxZDNwcVp6RlNja3AwVm10VU0yRnRWWGMzZDJnMFduSnFjVXczWTBjclNXeHFUVlUyVkZwWGNWY3ZSV0V6WW1oT2JIRklZVlJHU1RrMGEyOVJiMHBPVUhORk9FdERjbFJZY0daS2VVdHRZa2x5YjFORE4zSkJaWEJPZUU5eGR6WnhZMlY1WXprM1JtSkZhVFZFYkVFck5EUk9ZMWRyVEVNd1dqa2lMQ0prWVhSaGEyVjVJam9pWlhsS1VWSkdaMmxQYVVwV1ZXeENhVk5YVm14WFdFWk5VMjFrV21SRE9YaGFhWFF4VkhwS1MyTkljSHBVUms0MFlWaHNTbUpIYUhsWFZHdDZZVWhqZDFKRmFETldNbFYyWTJ0cmVVMUlTbHBWUjJONFRURlJNMDlHYUd4U01uaHVWRVJzUWxaV1pGZFJibkJLV1RCYU5HTXpUakpXTUhoWFRrWndhRTVyTVVwVFZFSkdWV3RzTUZaVVpEQlRSVGxyVkVkb2FGUlVVWHBaTVhCSFQxWmFOVlJxU20xaVZXUnVTM3BaTlZaV2NIcFdWMlJGVkcwMVRHSXdSakpXUnpoNlVsUm5kbUpzUmpGT2FUazFWVzFTY0dWR1FtOVdiVEZoVmpKc1NWRllhRmRTUkZwc1V6SkdSbUpWYkhCVlNFbDJWVzB4Ym1OVk1IWmFhelZ3WkZoa1FtVnFUa3BpTTJoTVRWVk9jMVo2V2t4aWJFWnJWRVUxVW1ONlp6QldWVFZPWW14c01sZFlZekprUjFwVFkxaE9kRnBXWkhaVFZWcGhWa2MxU2xWRlVtdFRiWE16WWpOVmVrNXFSa2RVTTJSd1QwaGtXbVJIVVhsbGJYQkRaRlp2ZGxvd1ZqWmlNbEl4Vkc1T2FtSldjRU5VU0ZVd1kwZDRjbU14WkhaVVYwNTRaRzV2TWxSVlVsQmpiSEJPVkc1VmVsZEZPVzVYYkVwWlUyNWtVbGRZWkZWaVdFWlNUVzF3VFZSSVFraE9XRnBwWVZoak0xUnJXak5OYm04eFpEQk9XbEZzYkhSTmEyaHpaRmRTUTJORVFUQlpWMk01VUZOSmMwbHJiRUpTUTBrMlNXNUZlbHA2U1RGVVZXeFVZekIwYVU5RWFEVmtiRVpzVVZWc2QxbHJWbmxOYW13MVZWaG9UazVzVWpWbFJHaDZZMjFHVkZVeFFubFZXRTVLVGpCMGFXSlZNWGhpUjBwTVlUSTVNRTVVYXpCTE0wVnlWakF4VG1WSE5VcGtSa0pRVld4V1UwOVdVWGhqTVc4eVZraFdlVnA2VGsxV01tUnhVV3Q0ZEdGcVRsUk5hMnN5V2tSV2FtUkdVakZqVm5CUFVrUlNjR0pHUm1GbGFscDRXV2x6Y2xFd1VYcGhSRnBZVmtaU2FVNXVSVFZYYlVaVFpXdHdkVmRZVGpaVGEyaDBWMnhDVlU0elZrWlRSRUpIVlVWa2MwNVlhRFZsUkVwelQwWkNSbE5WY0ZGWFNFWXhaVmMxVEZsVE9VeFdhMGt4V1ROS1Rrd3pXazFpYkhCdFVrUldWRlJHVlhaTmJVazBZbFZzUkV3d2N6UldSV2MxVDBWa05tSXpiM2hXVms1V1ZtMDFiRkZUT1hoUFJVcHpUMGRzU2xaSVJrTkxNVTVFWWtaa05WWnViRmRYVjJRd1RXcG5kMVJWUmpCa1JYQkdZVlYwZFZNeU1VVlpWVTVQV25wa1ExZHFVbE5sUjBaRVlWVTFXbVZwY3pSTE1HTTFVbFZGTlZwRll6UlRSMVoxVFcxb05XTnJkRUpWZWxsM1RETmplbUV4WkdGU1JsWm9ZVVpzZEdWR2JFTlVNblJYVkRCNE5HUXlkRXhaTWxKTlYxZDBWRTB5YUZwaFJsazFVMGR3Y0ZGVk9YaGxhekV6VVZRd09VbHVNRDBpTENKMlpYSnphVzl1SWpvaU15SXNJblI1Y0dVaU9pSkVRVlJCWDB0RldTSXNJbVY0Y0dseVlYUnBiMjRpT2pFM01qRTVOVGMzTmpKOQ==", "expiresAt": "2024-07-25T21:37:26.301000-04:00" } }
詳細については、Amazon ECR Public の「Amazon ECR パブリックレジストリ」を参照してください。
例 2: IAM プリンシパルがアクセスできる Amazon ECR パブリックレジストリの認可トークンを取得するには
次の
get-authorization-token
の例では、AWS CLI を使用して認可トークンを取得し、環境変数に設定します。aws ecr-public get-authorization-token \ --region
us-east-1
\ --output=text \ --query 'authorizationData.authorizationToken
'出力:
QVdTOmV5SndZWGxzYjJKJFHDSFKJHERWUY65IOU36TRYEGFNSDLRIUOTUYTHJKLDFGOcmFUQk9OSFV2UVV4a0x6Sm1ZV0Z6TDFndlZtUjJSVmgxVEVObU9IZEdTWEZxU210c1JUQm5RWGxOUVV4NlNFUnROWG92ZWtGbWJFUjRkbWMyV0U5amFpczRNWGxTVkM5Tk5qWkVUM2RDYm05TVJqSkxjV3BsUVZvMmFYSm5iV1ZvVFdGSVRqVlFMMHN4VnpsTGVXbDFRWGRoTmpsbWFuQllhbVl6TkdGaGMwUjJha2xsYUhscWRscHZTRUpFVkVnNVQwNUdOVFpPY2xZclVFNVFVWGRSVFZvd04xUkhjVGxZZFVkQ1ZFZHBPRUptUzBVclYxQldMMjVMVkRsd2VFVlNSa1EzTWpWSlIxRkVWakJGZFZOVWEzaFBSVk5FWWpSc1lWZHZWMHBSYmxaMlJYWmhZekpaWVVOeFppdFlUa2xKU1RCdFUwdElVbXRJYlhGRk1WaFhNVTVRTkdwc1FYRlVNVWxZZUhkV05Xa3ZXWGd3ZUVZMWIyeE5VRU5QZEdSaWRHOU9lakZOZVdwTVZEUkNRVzlvYzNKSlpsRXhhR2cwWjJwRVJFVjNWalEzYjNCUmRIcEZUR1pYU1Rsc1kxSlNNbU5hUW5wRE1tOUpRMHR5Y1hkeGNXNDVMMmx4Um5GUlVGQnhjMVpQZG5WYUswOW9SQ3RPY0hwSlRsUk5lVXQyY0c1b1FsQjVZVEprVmtSdmJsQklOM05RU3pkNmQydERhMkZ5VmxSRmFVUndWVlE1ZGtsVWFXUkJWMFZEWVhoSFdXTk5VMXBTYTFreVRHZEVlVVZ0ZFRWRk4xTTVjRXBDUjBRMlYyTkdPVWhGWkVweVVGcEVaRFJxZUVablkwNXFaamh5YkVKWmJGSTNOVzFXSzFjdllXSTVTMWx2YUZacksxSnJWSFJ0Wml0T1NFSnpWVFZvV204eVFYbzFWRU5SYjNaR01Va3hPR3h2TWxkNVJsSmpUbTVSTjNjemJsUkdVRlZKVDBjeE9VeHlXVEpGVFRSS2NWbFdkVEJrV0VreFVsSktXbkpCVGtsMFdVZEJOMjltWjFFNGVHRktNbGRuWlVoUlNXNXdZV3A0VjI5M2FYZGljbE5tZGpkQ1ZYTmhOVFUyTDBzeVpteDBka0pUTVdkNGJ6TkxkSEJDYml0cE0waGhTbVpEZEZkQ00yOU1TM1pXTDNSVFlWaFpWelZXVWxjNFRXNXdhR3BhUmpoU1FuWnFkRlJMVW5abGRYRlNjVVJKZDBaSFpXUTRabEZUTUdOTVQwcFFkVXAyYjA5Tk9UaFlZMjEwVnpFMlpXdE9hMnBWV0hST1owUkpVV3R1VFU1dGJXWjNNVGc0VTAxUlNHZE9TbXRMY2tWYWJVeFljVVk0ZWpsTFdWWlRNbEZMVDJkMk1FaFBTMDl5YzJSM1NqTlplRGhUWVVOQlJGWnRlbkU1WTBKVFdqTktSR05WTkd0RGNEVjZNalJHVXpkVk9HTnVSa2xLUVd4SVJDODJXbGcyYldGemJVczJPRVp6TDBoNFMwWkRUMmdyYldGa1QwWjVhMlZQTm5SQ1l6QkpNbFpyVUhSaGVIbFVOR296VjFGVlQyMHpNeTlPWVVoSk1FdDBWalZFU2pneU5rcHNLemQxZDNwcVp6RlNja3AwVm10VU0yRnRWWGMzZDJnMFduSnFjVXczWTBjclNXeHFUVlUyVkZwWGNWY3ZSV0V6WW1oT2JIRklZVlJHU1RrMGEyOVJiMHBPVUhORk9FdERjbFJZY0daS2VVdHRZa2x5YjFORE4zSkJaWEJPZUU5eGR6WnhZMlY1WXprM1JtSkZhVFZFYkVFck5EUk9ZMWRyVEVNd1dqa2lMQ0prWVhSaGEyVjVJam9pWlhsS1VWSkdaMmxQYVVwV1ZXeENhVk5YVm14WFdFWk5VMjFrV21SRE9YaGFhWFF4VkhwS1MyTkljSHBVUms0MFlWaHNTbUpIYUhsWFZHdDZZVWhqZDFKRmFETldNbFYyWTJ0cmVVMUlTbHBWUjJONFRURlJNMDlHYUd4U01uaHVWRVJzUWxaV1pGZFJibkJLV1RCYU5HTXpUakpXTUhoWFRrWndhRTVyTVVwVFZFSkdWV3RzTUZaVVpEQlRSVGxyVkVkb2FGUlVVWHBaTVhCSFQxWmFOVlJxU20xaVZXUnVTM3BaTlZaV2NIcFdWMlJGVkcwMVRHSXdSakpXUnpoNlVsUm5kbUpzUmpGT2FUazFWVzFTY0dWR1FtOVdiVEZoVmpKc1NWRllhRmRTUkZwc1V6SkdSbUpWYkhCVlNFbDJWVzB4Ym1OVk1IWmFhelZ3WkZoa1FtVnFUa3BpTTJoTVRWVk9jMVo2V2t4aWJFWnJWRVUxVW1ONlp6QldWVFZPWW14c01sZFlZekprUjFwVFkxaE9kRnBXWkhaVFZWcGhWa2MxU2xWRlVtdFRiWE16WWpOVmVrNXFSa2RVTTJSd1QwaGtXbVJIVVhsbGJYQkRaRlp2ZGxvd1ZqWmlNbEl4Vkc1T2FtSldjRU5VU0ZVd1kwZDRjbU14WkhaVVYwNTRaRzV2TWxSVlVsQmpiSEJPVkc1VmVsZEZPVzVYYkVwWlUyNWtVbGRZWkZWaVdFWlNUVzF3VFZSSVFraE9XRnBwWVZoak0xUnJXak5OYm04eFpEQk9XbEZzYkhSTmEyaHpaRmRTUTJORVFUQlpWMk01VUZOSmMwbHJiRUpTUTBrMlNXNUZlbHA2U1RGVVZXeFVZekIwYVU5RWFEVmtiRVpzVVZWc2QxbHJWbmxOYW13MVZWaG9UazVzVWpWbFJHaDZZMjFHVkZVeFFubFZXRTVLVGpCMGFXSlZNWGhpUjBwTVlUSTVNRTVVYXpCTE0wVnlWakF4VG1WSE5VcGtSa0pRVld4V1UwOVdVWGhqTVc4eVZraFdlVnA2VGsxV01tUnhVV3Q0ZEdGcVRsUk5hMnN5V2tSV2FtUkdVakZqVm5CUFVrUlNjR0pHUm1GbGFscDRXV2x6Y2xFd1VYcGhSRnBZVmtaU2FVNXVSVFZYYlVaVFpXdHdkVmRZVGpaVGEyaDBWMnhDVlU0elZrWlRSRUpIVlVWa2MwNVlhRFZsUkVwelQwWkNSbE5WY0ZGWFNFWXhaVmMxVEZsVE9VeFdhMGt4V1ROS1Rrd3pXazFpYkhCdFVrUldWRlJHVlhaTmJVazBZbFZzUkV3d2N6UldSV2MxVDBWa05tSXpiM2hXVms1V1ZtMDFiRkZUT1hoUFJVcHpUMGRzU2xaSVJrTkxNVTVFWWtaa05WWnViRmRYVjJRd1RXcG5kMVJWUmpCa1JYQkdZVlYwZFZNeU1VVlpWVTVQV25wa1ExZHFVbE5sUjBaRVlWVTFXbVZwY3pSTE1HTTFVbFZGTlZwRll6UlRSMVoxVFcxb05XTnJkRUpWZWxsM1RETmplbUV4WkdGU1JsWm9ZVVpzZEdWR2JFTlVNblJYVkRCNE5HUXlkRXhaTWxKTlYxZDBWRTB5YUZwaFJsazFVMGR3Y0ZGVk9YaGxhekV6VVZRd09VbHVNRDBpTENKMlpYSnphVzl1SWpvaU15SXNJblI1Y0dVaU9pSkVRVlJCWDB0RldTSXNJbVY0Y0dseVlYUnBiMjRpT2pFM01qRTVOVGMzTmpKOQ
詳細については、Amazon ECR Public の「Amazon ECR パブリックレジストリ」を参照してください。
-
API の詳細については、「AWS CLI コマンドリファレンス」の「GetAuthorizationToken
」を参照してください。
-
次のコード例では、get-login-password
を使用する方法を示しています。
- AWS CLI
-
例 1: Amazon ECR パブリックレジストリに docker を認証するには
次の
get-login-password
の例では、GetAuthorizationToken API を使用して認証トークンを取得して表示します。このトークンを使用して、Amazon ECR パブリックレジストリに認証できます。aws ecr-public get-login-password \ --region
us-east-1
|
docker
login
\ --usernameAWS
\ --password-stdinpublic.ecr.aws
このコマンドはターミナルに出力を表示せず、代わりに Docker に出力をパイプします。
詳細については、Amazon ECR Public の「パブリックレジストリへの認証」を参照してください。
例 2: 独自のカスタム AmazonECR パブリックレジストリに docker を認証するには
次の
get-login-password
の例では、GetAuthorizationToken API を使用して認証トークンを取得して表示します。このトークンを使用して、独自のカスタム Amazon ECR パブリックレジストリに認証できます。aws ecr-public get-login-password \ --region us-east-1 \ | docker login \ --username AWS \ --password-stdin public.ecr.aws/<your-public-registry-custom-alias>
このコマンドはターミナルに出力を表示せず、代わりに Docker に出力をパイプします。
詳細については、Amazon ECR Public の「独自の Amazon ECR Public への認証」を参照してください。
-
API の詳細については、「AWS CLI コマンドリファレンス」の「GetLoginPassword
」を参照してください。
-
次のコード例では、get-registry-catalog-data
を使用する方法を示しています。
- AWS CLI
-
パブリック ECR レジストリのカタログメタデータを取得するには
次の
get-registry-catalog-data
は、ECR パブリックレジストリのカタログメタデータを取得します。aws ecr-public get-registry-catalog-data \ --region
us-east-1
出力:
{ "registryCatalogData": { "displayName": "YourCustomPublicRepositoryalias" } }
-
API の詳細については、AWS CLI コマンドリファレンスの「GetRegistryCatalogData
」を参照してください。
-
次のコード例では、get-repository-catalog-data
を使用する方法を示しています。
- AWS CLI
-
パブリックレジストリ内のリポジトリのカタログメタデータを取得するには
次の
get-repository-catalog-data
の例では、パブリックレジストリ内のリポジトリproject-a/nginx-web-app
のカタログメタデータを一覧表示します。aws ecr-public get-repository-catalog-data \ --repository-name
project-a/nginx-web-app
\ --regionus-east-1
出力:
{ "catalogData": { "description": "My project-a ECR Public Repository", "architectures": [ "ARM", "ARM 64", "x86", "x86-64" ], "operatingSystems": [ "Linux" ], "logoUrl": "https://d3g9o9u8re44ak.cloudfront.net/logo/491d3846-8f33-4d8b-a10c-c2ce271e6c0d/4f09d87c-2569-4916-a932-5c296bf6f88a.png", "aboutText": "## Quick reference\n\nMaintained <truncated>", "usageText": "## Supported architectures\n\namd64, arm64v8\n\n## <truncated>" } }
詳細については、Amazon ECR Public の「リポジトリカタログデータ」を参照してください。
-
API の詳細については、AWS CLI コマンドリファレンスの「GetRepositoryCatalogData
」を参照してください。
-
次のコード例では、get-repository-policy
を使用する方法を示しています。
- AWS CLI
-
リポジトリに関連付けられているポリシーを取得するには
次の
get-repository-policy
の例では、リポジトリに関連付けられているポリシーを取得します。aws ecr-public get-repository-policy \ --repository-name
project-a/nginx-web-app
\ --regionus-east-1
出力:
{ "registryId": "123456789012", "repositoryName": "project-a/nginx-web-app", "policyText": "{\n \"Version\" : \"2008-10-17\",\n \"Statement\" : [ {\n \"Sid\" : \"AllowPush\",\n \"Effect\" : \"Allow\",\n \"Principal\" : {\n \"AWS\" : [ \"arn:aws:iam::123456789012:user/eksuser1\", \"arn:aws:iam::123456789012:user/admin\" ]\n },\n \"Action\" : [ \"ecr-public:BatchCheckLayerAvailability\", \"ecr-public:PutImage\", \"ecr-public:InitiateLayerUpload\", \"ecr-public:UploadLayerPart\", \"ecr-public:CompleteLayerUpload\" ]\n } ]\n}" }
詳細については、Amazon ECR Public ユーザーガイドの「AWS SDK または CLI で GetRepositoryPolicy を使用する」を参照してください。
-
API の詳細については、「AWS CLI コマンドリファレンス」の「GetRepositoryPolicy
」を参照してください。
-
次のコード例では、list-tags-for-resource
を使用する方法を示しています。
- AWS CLI
-
パブリックレジストリ内のパブリックリポジトリのタグを一覧表示するには
次の
list-tags-for-resource
の例では、パブリックレジストリ内のproject-a/nginx-web-app
という名前のリソースのタグを一覧表示します。aws ecr-public list-tags-for-resource \ --resource-arn
arn:aws:ecr-public::123456789012:repository/project-a/nginx-web-app
\ --regionus-east-1
出力:
{ "tags": [ { "Key": "Environment", "Value": "Prod" }, { "Key": "stack", "Value": "dev1" }, { "Key": "Name", "Value": "project-a/nginx-web-app" } ] }
詳細については、Amazon ECR Public の「パブリックリポジトリのタグを一覧表示する」を参照してください。
-
API の詳細については、「AWS CLI コマンドリファレンス」の「ListTagsForResource
」を参照してください。
-
次のコード例では、put-registry-catalog-data
を使用する方法を示しています。
- AWS CLI
-
パブリック ECR レジストリのカタログメタデータを作成または更新するには
次の
put-registry-catalog-data
は、ECR パブリックレジストリのカタログメタデータを作成または更新します。検証済みアカウントバッジを取得したアカウントのみがレジストリ表示名を設定できます。aws ecr-public put-registry-catalog-data \ --region
us-east-1
\ --display-name<YourCustomPublicRepositoryalias>
出力:
{ "registryCatalogData": { "displayName": "YourCustomPublicRepositoryalias" } }
-
API の詳細については、AWS CLI コマンドリファレンスの「PutRegistryCatalogData
」を参照してください。
-
次のコード例では、put-repository-catalog-data
を使用する方法を示しています。
- AWS CLI
-
パブリックレジストリ内のリポジトリのカタログデータを作成または更新するには
次の
put-repository-catalog-data
の例では、パブリックレジストリ内の project-a/nginx-web-app という名前のリポジトリのカタログデータを作成または更新し、logoImageBlob、aboutText、usageText、およびタグ情報を追加します。aws ecr-public put-repository-catalog-data \ --repository-name
project-a/nginx-web-app
\ --cli-input-jsonfile://repository-catalog-data.json
\ --regionus-east-1
repository-catalog-data.json
の内容:{ "repositoryName": "project-a/nginx-web-app", "catalogData": { "description": "My project-a ECR Public Repository", "architectures": [ "ARM", "ARM 64", "x86", "x86-64" ], "operatingSystems": [ "Linux" ], "logoImageBlob": "iVBORw0KGgoA<<truncated-for-better-reading>>ErkJggg==", "aboutText": "## Quick reference.", "usageText": "## Supported architectures are as follows." } }
出力:
{ "catalogData": { "description": "My project-a ECR Public Repository", "architectures": [ "ARM", "ARM 64", "x86", "x86-64" ], "operatingSystems": [ "Linux" ], "logoUrl": "https://d3g9o9u8re44ak.cloudfront.net/logo/df86cf58-ee60-4061-b804-0be24d97ccb1/4a9ed9b2-69e4-4ede-b924-461462d20ef0.png", "aboutText": "## Quick reference.", "usageText": "## Supported architectures are as follows." } }
詳細については、Amazon ECR Public の「リポジトリカタログデータ」を参照してください。
-
API の詳細については、AWS CLI コマンドリファレンスの「PutRepositoryCatalogData
」を参照してください。
-
次のコード例では、set-repository-policy
を使用する方法を示しています。
- AWS CLI
-
例 1: リポジトリへのプルを許可するリポジトリポリシーを設定するには
次の
set-repository-policy
の例では、指定したリポジトリに ECR パブリックリポジトリポリシーを適用して、アクセス許可を制御します。aws ecr-public set-repository-policy \ --repository-name
project-a/nginx-web-app
\ --policy-textfile://my-repository-policy.json
my-repository-policy.json
の内容:{ "Version" : "2008-10-17", "Statement" : [ { "Sid" : "allow public pull", "Effect" : "Allow", "Principal" : "*", "Action" : [ "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ] } ] }
出力:
{ "registryId": "12345678901", "repositoryName": "project-a/nginx-web-app", "policyText": "{\n \"Version\" : \"2008-10-17\",\n \"Statement\" : [ {\n \"Sid\" : \"allow public pull\",\n \"Effect\" : \"Allow\",\n \"Principal\" : \"*\",\n \"Action\" : [ \"ecr:BatchCheckLayerAvailability\", \"ecr:BatchGetImage\", \"ecr:GetDownloadUrlForLayer\" ]\n } ]\n}" }
詳細については、Amazon ECR Public ユーザーガイドの「リポジトリポリシーステートメントの設定」を参照してください。
例 2: アカウント内の IAM ユーザーがイメージをプッシュできるようにリポジトリポリシーを設定するには
次の
set-repository-policy
の例では、お客様のアカウントの IAM ユーザーに、file://my-repository-policy.json
という名前の入力ファイルをポリシーテキストとして使用して、AWS アカウントの ECR リポジトリにイメージをプッシュすることを許可します。aws ecr-public set-repository-policy \ --repository-name
project-a/nginx-web-app
\ --policy-textfile://my-repository-policy.json
my-repository-policy.json
の内容:{ "Version": "2008-10-17", "Statement": [ { "Sid": "AllowPush", "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-public:BatchCheckLayerAvailability", "ecr-public:PutImage", "ecr-public:InitiateLayerUpload", "ecr-public:UploadLayerPart", "ecr-public:CompleteLayerUpload" ] } ] }
出力:
{ "registryId": "12345678901", "repositoryName": "project-a/nginx-web-app", "policyText": "{\n \"Version\" : \"2008-10-17\",\n \"Statement\" : [ {\n \"Sid\" : \"AllowPush\",\n \"Effect\" : \"Allow\",\n \"Principal\" : {\n \"AWS\" : [ \"arn:aws:iam::12345678901:user/admin\", \"arn:aws:iam::12345678901:user/eksuser1\" ]\n },\n \"Action\" : [ \"ecr-public:BatchCheckLayerAvailability\", \"ecr-public:PutImage\", \"ecr-public:InitiateLayerUpload\", \"ecr-public:UploadLayerPart\", \"ecr-public:CompleteLayerUpload\" ]\n } ]\n}" }
詳細については、Amazon ECR Public ユーザーガイドの「リポジトリポリシーステートメントの設定」を参照してください。
例 3: 異なるアカウントの IAM ユーザーにイメージのプッシュを許可するリポジトリポリシーを設定するには
次の
set-repository-policy
の例では、CLI 入力ファイル file://my-repository-policy.json を使用して、指定したアカウントに、お客様の AWS アカウントのリポジトリにイメージをプッシュすることを許可します。aws ecr-public set-repository-policy \ --repository-name
project-a/nginx-web-app
\ --policy-textfile://my-repository-policy.json
my-repository-policy.json
の内容:{ "Version": "2008-10-17", "Statement": [ { "Sid": "AllowCrossAccountPush", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::other-or-same-account-id:role/RoleName" }, "Action": [ "ecr-public:BatchCheckLayerAvailability", "ecr-public:PutImage", "ecr-public:InitiateLayerUpload", "ecr-public:UploadLayerPart", "ecr-public:CompleteLayerUpload" ] } ] }
出力:
{ "registryId": "12345678901", "repositoryName": "project-a/nginx-web-app", "policyText": "{\n \"Version\" : \"2008-10-17\",\n \"Statement\" : [ {\n \"Sid\" : \"AllowCrossAccountPush\",\n \"Effect\" : \"Allow\",\n \"Principal\" : {\n \"AWS\" : \"arn:aws:iam::12345678901:role/RoleName\"\n },\n \"Action\" : [ \"ecr-public:BatchCheckLayerAvailability\", \"ecr-public:PutImage\", \"ecr-public:InitiateLayerUpload\", \"ecr-public:UploadLayerPart\", \"ecr-public:CompleteLayerUpload\" ]\n } ]\n}" }
詳細については、Amazon ECR Public ユーザーガイドの「パブリックリポジトリポリシーの例」を参照してください。
-
API の詳細については、「AWS CLI コマンドリファレンス」の「SetRepositoryPolicy
」を参照してください。
-
次のコード例では、tag-resource
を使用する方法を示しています。
- AWS CLI
-
例 1: パブリックレジストリ内の既存のパブリックリポジトリにタグを付けるには
次の
tag-resource
の例では、パブリックレジストリ内のproject-a/nginx-web-app
という名前のリポジトリにタグを付けます。aws ecr-public tag-resource \ --resource-arn
arn:aws:ecr-public::123456789012:repository/project-a/nginx-web-app
\ --tagsKey=stack,Value=dev
\ --regionus-east-1
詳細については、Amazon ECR Public の「パブリックリポジトリのタグの使用」を参照してください。
例 2: パブリックレジストリ内の既存のパブリックリポジトリに複数のタグを付けるには
次の
tag-resource
の例では、既存のリポジトリに複数のタグを付けます。aws ecr-public tag-resource \ --resource-arn
arn:aws:ecr-public::890517186334:repository/project-a/nginx-web-app
\ --tagsKey=key1,Value=value1
Key=key2,Value=value2
Key=key3,Value=value3
\ --regionus-east-1
詳細については、Amazon ECR Public の「パブリックリポジトリのタグの使用」を参照してください。
-
API の詳細については、AWS CLI コマンドリファレンスの「TagResource
」を参照してください。
-
次のコード例では、untag-resource
を使用する方法を示しています。
- AWS CLI
-
例 1: パブリックレジストリ内の既存のパブリックリポジトリのタグを削除するには
次の
untag-resource
の例では、パブリックレジストリ内のproject-a/nginx-web-app
という名前のリポジトリにタグを付けます。aws ecr-public untag-resource \ --resource-arn
arn:aws:ecr-public::123456789012:repository/project-a/nginx-web-app
\ --tag-keysstack
\ --regionus-east-1
このコマンドでは何も出力されません。
詳細については、Amazon ECR Public の「パブリックリポジトリのタグの使用」を参照してください。
-
API の詳細については、「AWS CLI コマンドリファレンス」の「UntagResource
」を参照してください。
-