Amazon ECS とインターフェイス VPC エンドポイント ( AWS PrivateLink ) - Amazon Elastic Container Service

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

インターフェイス VPC エンドポイントを使用するように Amazon ECS を設定することで、VPC のセキュリティ体制を強化できます。インターフェイスエンドポイントは、プライベート IP アドレスを使用して Amazon ECS APIs にプライベートにアクセスできるようにするテクノロジである AWS PrivateLink を使用します。 AWS PrivateLink は、VPC とAmazon ECS 間のすべてのネットワークトラフィックを Amazon ネットワークに制限します。インターネットゲートウェイ、NAT デバイス、または仮想プライベートゲートウェイは必要ありません。

AWS PrivateLink および VPC エンドポイントの詳細については、Amazon VPC ユーザーガイドの「VPC エンドポイント」を参照してください。

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

Amazon ECS 用のインターフェイス VPC エンドポイントを設定する前に、以下の考慮事項に注意してください:

  • Fargate 起動タイプを使用するタスクでは、Amazon ECS 用のインターフェイス VPC エンドポイントは必要ありませんが、以下のように Amazon ECR のインターフェース VPC エンドポイント、Secrets Manager、または Amazon CloudWatch Logsが必要になる場合があります。

  • EC2 起動タイプを使用するタスクでは、起動されたコンテナインスタンスが Amazon ECS コンテナエージェントのバージョン 1.25.1 以降を実行する必要があります。詳細については、「Amazon ECS コンテナエージェント バージョン」を参照してください。

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

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

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

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

Amazon ECS サービス用の VPC エンドポイントを作成するには、Amazon VPC ユーザーガイドの「インターフェイスエンドポイントの作成」の手順を使用して、以下のエンドポイントを作成します。VPC 内に既存のコンテナインスタンスがある場合は、一覧表示されている順にエンドポイントを作成する必要があります。VPC エンドポイントが作成された後にコンテナインスタンスを作成する場合、順序は関係ありません。

  • com.amazonaws.region.ecs-agent

  • com.amazonaws.region.ecs-telemetry

  • com.amazonaws.region.ecs

注記

region は、米国東部 (オハイオ) リージョンの us-east-2 のように、Amazon ECS でサポートされている AWS リージョンのリージョン識別子を表します。

EC2 起動タイプを使用する既存のタスクがある場合は、VPC エンドポイントを作成した後に、各コンテナインスタンスで新しい設定が選択される必要があります。そのためには、各コンテナインスタンスを再起動するか、各コンテナインスタンスで Amazon ECS コンテナエージェントを再起動する必要があります。コンテナエージェントを再起動するには、以下を実行します。

Amazon ECS コンテナエージェントを再起動するには

  1. SSH 経由でコンテナインスタンスにログインします。詳細については、「コンテナインスタンスへの接続」を参照してください。

  2. コンテナエージェントを停止します。

    sudo docker stop ecs-agent
  3. コンテナエージェントを開始します。

    sudo docker start ecs-agent

VPC エンドポイントを作成し、各コンテナインスタンスで Amazon ECS コンテナエージェントを再起動したら、新しく起動されるすべてのタスクで新しい設定が選択されます。

Secrets Manager とSystems Manager のエンドポイントを作成する

機密データをコンテナに注入するためにタスク定義で Secrets Manager シークレットまたは Systems Manager パラメータストアのパラメータを参照する場合は、タスクがこれらのサービスに到達できるように、Secrets Manager または Systems Manager のインターフェイス VPC エンドポイントを作成する必要があります。エンドポイントは、機密データがホストされている特定のサービスからのみ作成する必要があります。詳細については、「機密データの指定」を参照してください。

Secrets Manager VPC エンドポイントの詳細については、AWS Secrets Managerユーザーガイドの「Using Secrets Manager with VPC エンドポイントで Secrets Manager を使用する」を参照してください。

Systems Manager VPC エンドポイントの詳細については、AWS Systems Managerユーザーガイドの「Using Systems Manager with VPC エンドポイントで Systems Manager を使用する」を参照してください。

Systems Manager のエンドポイントを作成する

ECS Exec 機能を使用する場合は、Systems Manager セッションマネージャーのインターフェイス VPC エンドポイントを作成する必要があります。詳細については、「デバッグ用にAmazon ECS Exec を使用」を参照してください。

Systems Manager Session Manager VPC エンドポイントの詳細については、AWS Systems Manager ユーザーガイドSession Manager に VPC エンドポイントを設定するために AWS PrivateLink を使用するを参照してください。

Amazon ECS 用の VPC エンドポイントポリシーの作成

VPC エンドポイントに Amazon ECS へのアクセスをコントロールするエンドポイントポリシーをアタッチできます。このポリシーでは、以下の情報を指定します。

  • アクションを実行できるプリンシパル。

  • 実行可能なアクション。

  • このアクションを実行できるリソース。

詳細については、Amazon VPC ユーザーガイドの「VPC エンドポイントによるサービスのアクセスコントロール」を参照してください。

例: Amazon ECS アクションの VPC エンドポイントポリシー

Amazon ECS のエンドポイントポリシーの例を次に示します。このポリシーは、エンドポイントにアタッチされると、すべてのリソースのすべてのプリンシパルに対して、登録されている Amazon ECS アクションへのアクセスを許可します。

{ "Statement":[ { "Principal":"*", "Effect":"Allow", "Action":[ "ecs:action-1", "ecs:action-2", "ecs:action-2" ], "Resource":"*" } ] }