全般
プライベートリポジトリはコンテンツ検索機能を提供せず、イメージのプルを許可する前に AWS アカウント認証情報を使用した Amazon IAM ベースの認証を必要とします。パブリックリポジトリには説明的なコンテンツがあり、AWS アカウントを必要とせず、IAM 認証情報を使用しなくても、誰でもどこからでもイメージをプルできます。パブリックリポジトリのイメージは、Amazon ECR パブリックギャラリーでも入手できます。
Amazon ECR の使用
Q: Amazon ECR の使用を開始するにはどのようにすればよいですか?
Amazon ECR を開始する一番よい方法は、Docker CLI を使用して最初のイメージをプッシュおよびプルすることです。詳細については、開始方法ページをご覧ください。
Q: VPC 内で Amazon ECR にアクセスできますか?
はい。インスタンスがパブリックインターネットを経由せずに、プライベートリポジトリからイメージをプルできるように、AWS PrivateLink エンドポイントを設定できます。
Q: リポジトリやイメージを管理する一番よい方法はどれですか?
Amazon ECR では、リポジトリの作成、モニタリング、削除、およびリポジトリへのアクセス許可の設定のために、コマンドラインインターフェイスと API を利用できます。Amazon ECR コンソールの [Repositories] セクションからアクセスできる Amazon ECR コンソールでも、同じ操作ができます。また、Amazon ECR は Docker CLI と統合されており、開発マシンでイメージのプッシュ、プル、およびタグ付けを行えます。
Q: ローカルおよびオンプレミス環境内で Amazon ECR を使用できますか?
はい。Docker が実行されていれば、デスクトップやオンプレミス環境など、場所を問わず Amazon ECR にアクセスできます。
Q: Amazon ECR パブリックギャラリーは AWS で公開されたイメージを提供しますか?
はい。Amazon EKS、Amazon SageMaker、AWS Lambda などのサービスは、公式のパブリックユースコンテナイメージとアーティファクトを Amazon ECR に公開します。
Q: Amazon ECR は Amazon ECS と連携しますか?
はい。Amazon ECR は Amazon ECS と統合されているので、Amazon ECS で実行中のアプリケーションのコンテナイメージの保存、実行、管理を簡単に行えます。タスク定義で Amazon ECR リポジトリを指定するだけで、Amazon ECS がアプリケーションに最適なイメージを取得します。
Q: Amazon ECR は AWS Elastic Beanstalk と連携しますか?
はい。AWS Elastic Beanstalk では Amazon ECR の単一コンテナおよび複数コンテナの Docker 環境の両方がサポートされており、Amazon ECR に保存されたコンテナイメージを簡単に AWS Elastic Beanstalk にデプロイできます。必要な操作は、Dockerrun.aws.json 設定で Amazon ECR リポジトリを指定し、AmazonEC2ContainerRegistryReadOnly ポリシーをコンテナインスタンスロールにアタッチするだけです。
Q: Amazon ECR では、どのバージョンの Docker Engine がサポートされていますか?
Amazon ECR で現在サポートされているのは、Docker Engine 1.7.0 以上です。
Q: Amazon ECR では、どのバージョンの Docker Registry API がサポートされていますか?
Amazon ECR でサポートされているのは、Docker Registry V2 API 仕様です。
Q: Amazon ECR では、Dockerfile から自動的にイメージが構築されますか?
いいえ。ただし、Amazon ECR は、この機能がある一般的な CI/CD ソリューションのいくつかと統合されています。詳細については、Amazon ECR パートナーのページを参照してください。
Q: Amazon ECR で、フェデレーテッドアクセスはサポートされていますか?
はい。Amazon ECR は AWS Identity and Access Management (IAM) と統合されており、AWS マネジメントコンソールや AWS API に対して、ID フェデレーションによるアクセス委任を実行できます。
Q: Amazon ECR では、Docker Image Manifest 仕様のどのバージョンがサポートされていますか?
Amazon ECR では、Docker Image Manifest V2、Schema 2 形式がサポートされています。Schema 1 イメージとの下位互換性を維持するため、Amazon ECR では Schema 1 形式でアップロードされるイメージを引き続き受け入れています。さらに Amazon ECR では、Docker Engine の古いバージョン (1.9 以前) を使用してプルする場合、Schema 2 から Schema 1 イメージに下位変換できます。
Q: Amazon ECR はオープンコンテナ規格 (OCI) 形式をサポートしていますか?
はい。Amazon ECR は、オープンコンテナ規格 (OCI) イメージ仕様と互換性があるため、OCI イメージとアーティファクトをプッシュおよびプルできます。また、Amazon ECR は、Docker イメージマニフェスト V2、Schema 2 イメージ、OCI イメージ間でもプルする際に変換できます。
セキュリティ
Q: Amazon ECR は、コンテナイメージのセキュリティを確保するのにどのように役立ちますか?
Amazon ECR では、Amazon S3 のサーバー側暗号化または AWS KMS 暗号化を使用して保管中のイメージが自動的に暗号化し、HTTPS を介してコンテナイメージを転送します。AWS Identity and Access Management (IAM) のユーザーとロールを使用してイメージへのアクセス権限の管理やアクセスの制御を行えるようポリシーを設定できるため、認証情報を EC2 インスタンスで直接管理する必要はありません。
Q: アクセス許可に関して AWS Identity and Access Management (IAM) をどのように使用できますか?
IAM のリソースベースのポリシーを使用して、コンテナイメージにアクセスできるユーザーやアクセス元 (EC2 インスタンスなど)、およびアクセスできる方法、時間、場所を制御して、モニタリングすることができます。使用を開始するには、AWS マネジメントコンソールを使用して、リポジトリに対してリソースベースのポリシーを作成します。または、Amazon ECR CLI を使って、サンプルポリシーをリポジトリにアタッチすることもできます。
Q: 別の AWS アカウントとイメージを共有できますか?
はい。クロスアカウントのイメージ共有でポリシーを作成および設定する方法の例はこちらをご覧ください。
Q: Amazon ECR はコンテナイメージの脆弱性をスキャンしますか?
Amazon ECR を有効にして、オペレーティングシステムのさまざまな脆弱性についてコンテナイメージを自動的にスキャンできます。API コマンドを使用して画像をスキャンすることもできます。スキャンが完了すると、Amazon ECR が API を介してコンソールに通知します。画像スキャンを強化するために、Amazon Inspector をオンにすることができます。
Amazon ECR 料金の詳細はこちら