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

Amazon ECR インターフェイス VPC エンドポイント (AWS PrivateLink)

インターフェイス VPC エンドポイントを使用するように Amazon ECR を設定することで、VPC のセキュリティ体制を強化できます。インターフェイスエンドポイントは、プライベート IP アドレスを使用して Amazon ECR API にプライベートにアクセスできるテクノロジーである AWS PrivateLink を使用しています。PrivateLink は、VPC および Amazon ECR 間のすべてのネットワークトラフィックを Amazon ネットワークに限定します。また、インターネットゲートウェイ、NAT デバイスあるいは仮想プライベートゲートウェイの必要はありません。Fargate 起動タイプを使用する Amazon ECS タスクの場合、これにより、タスクにパブリック IP アドレスを割り当てることなく、Amazon ECR からプライベートイメージをプルしできます。

PrivateLink および VPC エンドポイントの詳細については、「PrivateLink を介した AWS サービスへのアクセス」を参照してください。

Amazon ECR VPC エンドポイントに関する考慮事項

Amazon ECR の VPC エンドポイントを設定する前に、以下の考慮事項に注意してください。

  • EC2 起動タイプを使用する Amazon ECS タスクで Amazon ECR からプライベートイメージをプルするには、Amazon ECS のインターフェイス VPC エンドポイントも作成してください。​詳細については、Amazon Elastic Container Service Developer Guideの「インターフェイス VPC エンドポイント (AWS PrivateLink)」を参照してください。

    重要

    Fargate 起動タイプを使用する Amazon ECS タスクでは、Amazon ECS インターフェイス VPC エンドポイントは不要です。​

  • Fargate 起動タイプを使用するタスクでは、この機能を活用するために必要なのは com.amazonaws.region.ecr.dkr Amazon ECR VPC エンドポイントおよび Amazon S3 ゲートウェイエンドポイントのみです。

  • 現在、VPC エンドポイントはクロスリージョンリクエストをサポートしていません。Amazon ECR に対して API コールを発行するリージョンと同じリージョンにエンドポイントを作成してください。​

  • VPC エンドポイントは、Amazon Route 53 を介した Amazon 提供の DNS のみをサポートします。独自の DNS を使用する場合には、条件付き DNS 転送を使用できます。詳細については、Amazon VPC ユーザーガイドの「DHCP オプションセット」を参照してください。

  • VPC エンドポイントにアタッチされたセキュリティグループでは、VPC のプライベートサブネットから、ポート 443 で着信接続を許可する必要があります。

  • Amazon S3 ゲートウェイエンドポイントを作成する際、コンテナに既に Amazon S3 に対する接続がある場合は、ゲートウェイが追加される間にその接続が一時的に中断される可能性があります。この中断を回避するには、Amazon S3 ​ゲートウェイエンドポイントを使用する新しい VPC を作成してから、Amazon ECS クラスターとそのコンテナを新しい VPC に移行します。

Amazon ECR 用の VPC エンドポイントの作成

Amazon ECR サービス用の VPC エンドポイントを作成するには、Amazon VPC ユーザーガイドの「 インターフェイスエンドポイントの作成」の手順を使用して、以下に説明するエンドポイントを作成します。

Amazon ECS タスクが EC2 起動タイプを使用している場合、​両方のエンドポイントが必要です。作成順序は問いません。タスクが Fargate 起動タイプを使用している場合は、com.amazonaws.region.ecr.dkr エンドポイントのみが必要です。

com.amazonaws.region.ecr.api

注記

リージョンは、Amazon ECR によってサポートされている AWS リージョンのリージョン ID (例: 米国東部 (オハイオ) リージョン の場合は us-east-2) を表します。

com.amazonaws.region.ecr.api エンドポイントが作成されたら、プライベート DNS ホスト名を有効にするかどうかは任意です。​プライベート DNS ホスト名を有効にするには、VPC エンドポイントの作成時に VPC コンソールで [プライベート DNS 名を有効にする] オプションが選択されていることを確認します。VPC エンドポイントでプライベート DNS ホスト名を有効にする場合は、SDK または AWS CLI を使用する際にエンドポイント URL を指定しなくてもいいように、SDK または AWS CLI を最新バージョンに更新します。

プライベート DNS ホスト名が有効で SDK または AWS CLI の 2019 年 1 月 24 日以前のバージョンを使用している場合は、--endpoint-url パラメータを使用してインターフェイスのエンドポイントを指定する必要があります。​次の CLI コマンドの例は、エンドポイント URL の形式を示しています。

aws ecr create-repository --repository-name name --endpoint-url https://api.ecr.region.amazonaws.com

VPC エンドポイントでプライベート DNS ホスト名を有効にしない場合は、インターフェイスエンドポイントで VPC エンドポイント ID を指定する --endpoint-url パラメータを​使用する必要があります。形式を次に示します。

aws ecr create-repository --repository-name name --endpoint-url https://VPC_endpoint_ID.api.ecr.region.vpce.amazonaws.com
com.amazonaws.region.ecr.dkr

com.amazonaws.region.ecr.dkr エンドポイントを作成する際に、プライベート DNS ホスト名を有効にする必要があります。​これを行うには、VPC エンドポイントを作成するときに、VPC コンソールで [プライベート DNS 名を有効にする] オプションが選択されていることを確認します。

Amazon S3 ゲートウェイエンドポイントの作成

Amazon S3 のゲートウェイエンドポイントは、すべての Amazon ECS タスクが​ Amazon ECR からプライベートイメージをプルするために必要です。​Amazon ECR は Amazon S3 を使用して Docker イメージレイヤーを保存するためです。​コンテナが Amazon ECR から Docker イメージをダウンロードするときに、Amazon ECR にアクセスしてイメージマニフェストを取得し、Amazon S3 にアクセスして実際のイメージレイヤーをダウンロードする必要があります。​以下に示しているのは、各 Docker イメージのレイヤーを含む Amazon S3 バケットの Amazon リソースネーム (ARN)​ です。

arn:aws:s3:::prod-region-starport-layer-bucket/*

Amazon ECR サービス用の Amazon S3 ゲートウェイエンドポイントを作成するには、Amazon VPC ユーザーガイドの「ゲートウェイエンドポイントの作成」の手順を使用して、以下のエンドポイントを作成します。エンドポイントを作成するときは、VPC のルートテーブルを選択してください。

com.amazonaws.region.s3

Amazon S3 ゲートウェイエンドポイントは IAM ポリシードキュメントを使用してサービスへのアクセスを制限します。​フルアクセスポリシーを選択することもできます。タスクの IAM ロールまたはその他の IAM ユーザーポリシーに設定された制限はこのポリシーに優越して適用されるためです。Amazon S3 バケットへのアクセスを Amazon ECR で必要な最小限のアクセス許可に制限する場合は、「Amazon ECR の最小 Amazon S3 バケットアクセス許可」を参照してください。