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が必要になる場合があります。

    • Amazon ECR からプライベートイメージをプルできるようにするには、Amazon ECR 用のインターフェイス VPC エンドポイントを 作成する必要があります。詳細については、Amazon Elastic Container Registry ユーザーガイドの「インターフェイス VPC エンドポイント (AWS PrivateLink)」を参照してください。

      重要

      インターフェイス VPC エンドポイントを使用するよう Amazon ECR を設定する場合、特定の VPC または VPC エンドポイントへのアクセスを制限する条件キーを含むタスク実行ロールを作成できます。詳細については、「インターネットエンドポイントを介して Amazon ECR イメージをプルする Fargate タスク用の IAM アクセス許可 (オプション)」を参照してください。

    • タスクで Secrets Manager から機密データをプルできるようにするには、Secrets Manager 用のインターフェイス VPC エンドポイントを作成する必要があります。詳細については、AWS Secrets Managerユーザーガイドの「VPC エンドポイントで Secrets Manager を作成する」を参照してください。

    • VPC にインターネットゲートウェイがなく、タスクで awslogs ログドライバーを使用してログ情報を CloudWatch Logs に送信する場合は、CloudWatch Logs 用のインターフェイス VPC エンドポイントを作成する必要があります。詳細については、Amazon CloudWatch Logs ユーザーガイドの「インターフェイス VPC エンドポイントでの CloudWatch Logs の使用」を参照してください。

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

  • 現在、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 を使用する」を参照してください。

ECS Exec 機能を使用する場合は、Systems Manager Session Manager VPC エンドポイントを作成します

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 のエンドポイントポリシーの例を次に示します。このポリシーは、エンドポイントに接続すると、クラスターの作成や一覧表示が行えるようにアクセスを許可します。CreateClusterListClusters のアクションはリソースを受け入れないため、すべてのリソースでリソース定義は * に設定されます。

{ "Statement":[ { "Effect": "Allow", "Action": [ "ecs:CreateCluster", "ecs:ListClusters" ], "Resource": [ "*" ] } ] }