Amazon ECS の Fargate のセキュリティに関する考慮事項 - Amazon Elastic Container Service

Amazon ECS の Fargate のセキュリティに関する考慮事項

Fargate は各ワークロードを独立した仮想環境で実行するため、各タスクには専用のインフラストラクチャ容量があります。Fargate で実行されるワークロードは、ネットワークインターフェイス、エフェメラルストレージ、CPU、またはメモリを他のタスクと共有しません。アプリケーションコンテナやサイドカーコンテナを含む複数のコンテナをタスク内で実行することも、単にサイドカーを実行することもできます。サイドカーは Amazon ECS タスク内のアプリケーションコンテナと一緒に実行されるコンテナです。アプリケーションコンテナはコアアプリケーションコードを実行しますが、サイドカーで実行されるプロセスはアプリケーションを拡張できます。サイドカーはアプリケーションの機能を専用のコンテナに分離するのに役立ち、アプリケーションの一部を簡単に更新することができます。

同じタスクに属するコンテナは、常に同じホスト上で実行され、コンピュートリソースを共有するため、Fargate 起動タイプのリソースを共有します。これらのコンテナは、Fargate が提供するエフェメラルストレージも共有しています。タスク内の Linux コンテナは、IP アドレスやネットワークポートを含むネットワーク名前空間を共有します。タスク内では、タスクに属するコンテナが localhost を介して相互通信できます。

Fargate のランタイム環境では、EC2 インスタンスでサポートされている特定のコントローラー機能を使用できません。Fargate で実行されるワークロードを設計するときは、次の点を考慮してください。

  • 特権コンテナまたはアクセスなし - 特権コンテナやアクセスなどの機能は現在、Fargate では利用できません。これは Docker 内で Docker を実行するなどのユースケースに影響します。

  • Linux 機能への制限付きアクセス - Fargate 上でコンテナが動作する環境はロックダウンされています。CAP_SYS_ADMIN や CAP_NET_ADMIN などのそのほかの Linux 機能は、権限昇格を防ぐために制限されています。Fargateは、タスクに CAP_SYS_PTRACE Linux機能を追加することをサポートしています。これにより、タスク内にデプロイされたオブザーバビリティツールとセキュリティツールがコンテナ化されたアプリケーションを監視できるようになります。

  • 基盤となるホストにはアクセスできない - お客様も AWS オペレーターも、お客様のワークロードを実行しているホストには接続できません。ECS Exec を使用して、Fargate で実行されているコンテナでコマンドを実行したり、シェルを取得したりできます。ECS Exec を使用すると、デバッグ用の診断情報を収集できます。また、Fargate は、コンテナがファイルシステム、デバイス、ネットワーク、コンテナランタイムなどの基盤となるホストのリソースにアクセスするのを防ぎます。

  • ネットワーク - セキュリティグループとネットワーク ACL を使用して、インバウンドトラフィックとアウトバウンドトラフィックをコントロールできます。Fargate のタスクは VPC 内の設定済みサブネットから IP アドレスを受け取ります。