翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon ECR Interface VPC エンドポイント (AWS PrivateLink)
インターフェイス VPC エンドポイントを使用するように Amazon ECR を設定することで、VPC のセキュリティ体制を改善できます。VPC エンドポイントは、プライベート IP アドレスAPIsを介して Amazon ECR にプライベートにアクセスできるテクノロジーである AWS PrivateLink を利用しています。 AWS PrivateLink は、VPC と Amazon ECR 間のすべてのネットワークトラフィックを Amazon ネットワークに制限します。インターネットゲートウェイ、NAT デバイス、仮想プライベートゲートウェイは必要ありません。
AWS PrivateLink および VPC エンドポイントの詳細については、Amazon VPC ユーザーガイドの「Word エンドポイント」を参照してください。 VPC
Amazon ECR VPC エンドポイントに関する考慮事項
Amazon VPC の ECR エンドポイントを設定する前に、次の考慮事項に注意してください。
-
Amazon ECS インスタンスでホストされている Amazon EC2 タスクが Amazon ECR からプライベートイメージをプルできるようにするには、Amazon VPC のインターフェイス ECS エンドポイントを作成します。詳細については、「Amazon Elastic Container Service デベロッパーガイド」の「インターフェイスVPCエンドポイント (AWS PrivateLink)」を参照してください。
-
Amazon ECS からコンテナイメージをプルする Fargate でホストされている Amazon ECR タスクは、タスクのタスク実行 VPC ロールに条件キーを追加することで、タスクが使用する特定の VPC とサービスが使用する IAM エンドポイントへのアクセスを制限できます。詳細については、「Amazon Elastic Container Service デベロッパーガイド」の「インターフェイスエンドポイント経由で Amazon IAM イメージをプルする Fargate タスクのオプションの ECR アクセス許可」を参照してください。
-
VPC エンドポイントにアタッチされたセキュリティグループは、VPC のプライベートサブネットからのポート 443 での受信接続を許可する必要があります。
-
現在、VPCエンドポイントはクロスリージョンリクエストをサポートしていません。VPC エンドポイントは、Amazon ECR への API 呼び出しを発行する予定のリージョンと同じリージョンに作成してください。
-
現在、VPC エンドポイントは Amazon ECR Public リポジトリをサポートしていません。プルスルーキャッシュルールを使用して、VPC エンドポイントと同じリージョンのプライベートリポジトリにパブリックイメージをホストすることを検討してください。詳細については、「アップストリームレジストリと Amazon ECR プライベートレジストリの同期」を参照してください。
-
VPC エンドポイントは、Amazon Route 53 を通じて AWS 提供された DNS のみをサポートします。独自の DNS を使用する場合は、条件付き DNS 転送を使用できます。詳細については、「Amazon DHCP ユーザーガイド」の「単語オプションセット」を参照してください。 VPC
-
コンテナに Amazon S3 への既存の接続がある場合、Amazon S3 ゲートウェイエンドポイントを追加すると接続が一時的に中断される場合があります。この中断を回避するには、Amazon S3 ゲートウェイエンドポイントを使用する新しい VPC を作成し、Amazon ECS クラスターとそのコンテナを新しい VPC に移行します。
-
プルスルーキャッシュルールを使用してイメージを初めてプルする場合、 を使用して AWS PrivateLink インターフェイス VPC エンドポイントを使用するように Amazon ECR を設定した場合は、NAT ゲートウェイを使用して同じ VPC にパブリックサブネットを作成し、プルが機能するように、プライベートサブネットから NAT ゲートウェイにすべてのアウトバウンドトラフィックをインターネットにルーティングする必要があります。その後のイメージプルでは、これは必要ありません。詳細については、Amazon Virtual Private Cloud ユーザーガイドの「シナリオ: プライベートサブネットからインターネットにアクセスする」を参照してください。
Windows イメージに関する考慮事項
Windows オペレーティングシステムに基づくイメージには、ライセンスによって配布が制限されているアーティファクトが含まれます。デフォルトでは、Windows イメージを Amazon ECR リポジトリにプッシュすると、これらのアーティファクトを含むレイヤーは外部レイヤーと見なされるため、プッシュされません。アーティファクトが Microsoft によって提供されている場合、外部レイヤーは Microsoft Azure インフラストラクチャから取得されます。このため、コンテナが Azure からこれらの外部レイヤーをプルできるようにするには、VPC エンドポイントを作成するだけでなく、追加のステップが必要です。
Docker デーモンの --allow-nondistributable-artifacts
フラグを使用して、Windows イメージを Amazon ECR にプッシュするときに、この動作を上書きできます。有効にすると、このフラグはライセンスされたレイヤーを Amazon ECR にプッシュします。これにより、Azure への追加のアクセスを必要とせずに、Word エンドポイントECRを介してこれらのイメージを Amazon VPC からプルできます。
重要
この --allow-nondistributable-artifacts
フラグを使用しても、Windows コンテナベースイメージライセンスの条項に従う義務が排除されるわけではありません。したがって、パブリックまたはサードパーティーによる再配布のために Windows コンテンツを投稿することはできません。お客様自身の環境内での使用は許可されています。
Docker インストールでこのフラグを使用できるようにするには、Docker デーモン設定ファイルを変更する必要があります。通常は Docker インストールに応じて、[Docker エンジン] セクションの設定または環境設定メニューで設定するか、直接 C:\ProgramData\docker\config\daemon.json
ファイルを編集できます。
以下に示しているのは、必要な設定の例です。値を、イメージをプッシュするリポジトリ URI に置き換えます。
{ "allow-nondistributable-artifacts": [ "
111122223333
.dkr.ecr.us-west-2
.amazonaws.com" ] }
Docker デーモン設定ファイルを変更したら、イメージをプッシュする前に Docker デーモンを再起動する必要があります。ベースレイヤーがリポジトリにプッシュされたことを確認して、プッシュが成功したことを確認します。
注記
Windows イメージのベースレイヤーは大きくなります。レイヤーサイズを指定すると、プッシュ時間が長くなり、これらのイメージの Amazon ECR のストレージコストが増加します。これらの理由から、このオプションは、構築時間と継続的なストレージコストを削減することが厳密に要求される場合にのみ使用することをお勧めします。例えば、Amazon ECR で圧縮した場合、mcr.microsoft.com/windows/servercore
イメージのサイズは約 1.7 GiB です。
Amazon VPC の ECR エンドポイントを作成する
Amazon VPC サービスの ECR エンドポイントを作成するには、「Amazon VPC ユーザーガイド」の「インターフェイスエンドポイントの作成」の手順を使用します。
Amazon ECS インスタンスでホストされる Amazon EC2 タスクには、Amazon ECR エンドポイントと Amazon S3 ゲートウェイエンドポイントの両方が必要です。
プラットフォームバージョン 1.4.0
以降を使用して Fargate でホストされる Amazon ECS タスクには、Amazon ECR VPCエンドポイントと Amazon S3 ゲートウェイエンドポイントの両方が必要です。
プラットフォームバージョン 1.3.0
以前を使用する Fargate でホストされている Amazon ECS タスクは、com.amazonaws のみを必要とします。region
.ecr.dkr Amazon ECR VPC エンドポイントと Amazon S3 ゲートウェイエンドポイント。
注記
エンドポイントが作成される順序は重要ではありません。
- com.amazonaws。
region
.ecr.dkr -
このエンドポイントは Docker レジストリAPIsに使用されます。
push
やpull
などの Docker クライアントコマンドでは、このエンドポイントが使用されます。このエンドポイントを作成するときは、プライベート DNS ホスト名を有効にする必要があります。これを行うには、DNS エンドポイントの作成時に Amazon Word コンソールでプライベートワード名を有効にするオプションが選択されていることを確認します。 VPC VPC
- com.amazonaws。
region
.ecr.api -
注記
指定された
region
は、米国東部 (オハイオ) リージョンの など、Amazon ECR でサポートされている AWS リージョンus-east-2
のリージョン識別子を表します。このエンドポイントは、Amazon ECR API への呼び出しに使用されます。
DescribeImages
や などのAPIアクションは、このエンドポイントCreateRepository
に移動します。このエンドポイントが作成されると、プライベート DNS ホスト名を有効にするオプションがあります。Word VPCエンドポイントの作成時に VPC コンソールでプライベートDNS名を有効にするを選択して、この設定を有効にします。VPC エンドポイントのプライベート DNS ホスト名を有効にする場合は、SDK または を最新バージョン AWS CLI に更新して、SDK または AWS CLI を使用するときにエンドポイント URL を指定する必要がないようにします。
プライベート DNS ホスト名を有効にし、2019 年 1 月 24 日より前にリリースされた SDK または AWS CLI バージョンを使用している場合は、
--endpoint-url
パラメータを使用してインターフェイスエンドポイントを指定する必要があります。次の例は、エンドポイント URL の形式を示しています。aws ecr create-repository --repository-name
name
--endpoint-url https://api.ecr.region
.amazonaws.comDNS エンドポイントのプライベート VPC ホスト名を有効にしない場合は、インターフェイスエンドポイントの VPC エンドポイント ID を指定する
--endpoint-url
パラメータを使用する必要があります。次の例は、エンドポイント URL の形式を示しています。aws ecr create-repository --repository-name
name
--endpoint-url https://VPC_endpoint_ID
.api.ecr.region
.vpce.amazonaws.com
Amazon S3ゲートウェイエンドポイントを作成する
Amazon ECS タスクが Amazon ECR からプライベートイメージをプルするには、Amazon S3 のゲートウェイエンドポイントを作成する必要があります。Amazon ECR は Amazon S3 を使用してイメージレイヤーを保存するため、ゲートウェイエンドポイントが必要です。コンテナが Amazon ECR からイメージをダウンロードする場合、Amazon ECR にアクセスしてイメージマニフェストを取得し、Amazon S3 にアクセスして実際のイメージレイヤーをダウンロードする必要があります。以下は、各 Docker イメージのレイヤーを含む Amazon S3 バケットの Amazon リソースネーム (ARN) です。
arn:aws:s3:::prod-
region
-starport-layer-bucket/*
「Amazon Word ユーザーガイド」の「ゲートウェイエンドポイントの作成」の手順を使用して、Amazon ECR 用の次の Amazon S3 ゲートウェイエンドポイントを作成します。 VPC エンドポイントを作成するときは、必ず VPC のルートテーブルを選択してください。
- com.amazonaws。
region
.s3 -
Amazon S3 ゲートウェイエンドポイントは、IAM ポリシードキュメントを使用してサービスへのアクセスを制限します。フルアクセスポリシーは、タスク IAM ロールまたは他の IAM ユーザーポリシーに設定した制限がこのポリシーの上に引き続き適用されるため、使用できます。Amazon S3 バケットへのアクセスを Amazon ECR を使用するために必要な最小限のアクセス許可に制限する場合は、「」を参照してくださいAmazon ECR の最小 Amazon S3 バケットアクセス許可。
Amazon ECR の最小 Amazon S3 バケットアクセス許可
Amazon S3 ゲートウェイエンドポイントは、IAM ポリシードキュメントを使用してサービスへのアクセスを制限します。Amazon ECR の最小 Amazon S3 バケットアクセス許可のみを許可するには、エンドポイントの IAM ポリシードキュメントを作成するときに Amazon ECR が使用する Amazon S3 バケットへのアクセスを制限します。
次の表に、Amazon Word に必要な Amazon S3 バケットポリシーのアクセス許可を示します。 ECR
アクセス許可 | 説明 |
---|---|
|
各 Docker イメージのレイヤーを含む Amazon S3 バケットへのアクセスを提供します。米国東部 (オハイオ) リージョンの AWS など、Amazon ECR でサポートされているリージョン |
例
次の例は、Amazon Word オペレーションに必要な Amazon S3 バケットへのアクセスを提供する方法を示しています。 ECR
{ "Statement": [ { "Sid": "Access-to-specific-bucket-only", "Principal": "*", "Action": [ "s3:GetObject" ], "Effect": "Allow", "Resource": ["arn:aws:s3:::prod-
region
-starport-layer-bucket/*"] } ] }
CloudWatch Logs エンドポイントを作成する
awslogs
ログドライバーを使用してログ情報を ECS Logs に送信するインターネットゲートウェイのない VPC を使用する Fargate 起動タイプを使用する Amazon CloudWatch タスクでは、com.amazonaws を作成する必要があります。region
VPC Logs の .logs インターフェイス CloudWatch エンドポイント。詳細については、「Amazon CloudWatch Logs ユーザーガイド」の「インターフェイス VPC エンドポイントでの Word Logs の使用」を参照してください。 CloudWatch
Amazon ECR VPC エンドポイントのエンドポイントポリシーを作成する
VPC エンドポイントポリシーは、エンドポイントを作成または変更するときにエンドポイントにアタッチする IAM リソースポリシーです。エンドポイントの作成時にポリシーをアタッチしない場合、 はサービスへのフルアクセスを許可するデフォルトのポリシーをア AWS タッチします。エンドポイントポリシーは、 ユーザーポリシーやサービス固有のポリシーを上書き、または置き換えません。これは、評価項目から指定されたサービスへのアクセスを制御するための別のポリシーです。エンドポイントポリシーは JSON 形式で記述する必要があります。詳細については、「Amazon VPC ユーザーガイド」の「Word エンドポイントによるサービスへのアクセスの制御」を参照してください。 VPC
単一の IAM リソースポリシーを作成し、両方の Amazon ECR VPCエンドポイントにアタッチすることをお勧めします。
Amazon ECR のエンドポイントポリシーの例を次に示します。このポリシーにより、特定の IAM ロールが Amazon ECR からイメージをプルできるようになります。
{ "Statement": [{ "Sid": "AllowPull", "Principal": { "AWS": "arn:aws:iam::
1234567890
:role/role_name
" }, "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer", "ecr:GetAuthorizationToken" ], "Effect": "Allow", "Resource": "*" }] }
次のエンドポイントポリシーの例では、指定されたリポジトリが削除されないようにしています。
{ "Statement": [{ "Sid": "AllowAll", "Principal": "*", "Action": "*", "Effect": "Allow", "Resource": "*" }, { "Sid": "PreventDelete", "Principal": "*", "Action": "ecr:DeleteRepository", "Effect": "Deny", "Resource": "arn:aws:ecr:
region
:1234567890
:repository/repository_name
" } ] }
次のエンドポイントポリシーの例では、前述の 2 つの例を 1 つのポリシーにまとめています。
{ "Statement": [{ "Sid": "AllowAll", "Effect": "Allow", "Principal": "*", "Action": "*", "Resource": "*" }, { "Sid": "PreventDelete", "Effect": "Deny", "Principal": "*", "Action": "ecr:DeleteRepository", "Resource": "arn:aws:ecr:
region
:1234567890
:repository/repository_name
" }, { "Sid": "AllowPull", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::1234567890
:role/role_name
" }, "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer", "ecr:GetAuthorizationToken" ], "Resource": "*" } ] }
Amazon VPC の ECR エンドポイントポリシーを変更するには
VPC で Amazon https://console.aws.amazon.com/vpc/
コンソールを開きます。 -
ナビゲーションペインで、[エンドポイント] を選択します。
-
Amazon VPC の ECR エンドポイントをまだ作成していない場合は、「」を参照してくださいAmazon VPC の ECR エンドポイントを作成する。
-
ポリシーを追加する Amazon ECR VPCを選択し、画面の下半分にあるポリシータブを選択します。
-
[ポリシーの編集] を選択してポリシーを変更します。
-
[保存] を選択してポリシーを保存します。
共有サブネット
自分と共有されているサブネットで VPC エンドポイントを作成、説明、変更、または削除することはできません。ただし、自分と共有されているサブネットでは VPC エンドポイントを使用できます。