Amazon ECS マネージドインスタンスのセキュリティ上の考慮事項 - Amazon Elastic Container Service

Amazon ECS マネージドインスタンスのセキュリティ上の考慮事項

Amazon ECS マネージドインスタンスは、完全マネージド型のコンテナコンピューティング体験を提供します。これにより、セキュリティ上の責任を AWS で負荷軽減しながら、特定の Amazon EC2 インスタンスタイプでワークロードを実行できます。このトピックでは、Amazon ECS マネージドインスタンスを使用する際のセキュリティモデル、機能、考慮事項について説明します。

セキュリティモデル

Amazon ECS マネージドインスタンスは、柔軟性と保護のバランスをとる包括的なセキュリティモデルを実装しています。

  • AWS マネージドインフラストラクチャ – AWS はマネージドインスタンスのライフサイクルを制御し、セキュリティパッチ適用を処理することで、人為的ミスや改ざんの可能性を排除します。

  • 管理アクセスの禁止 – セキュリティモデルは隔離されて、マネージドインスタンスへの管理アクセスが禁止されます。

  • マルチタスク配置 – デフォルトでは、Amazon ECS マネージドインスタンスはコストと使用率を最適化するために 1 つのインスタンスに複数のタスクを配置するため、Fargate と比較してワークロード分離の制約が緩和されます。

  • データ分離 – AWS はインスタンスのライフサイクルとタスクの配置を制御しますが、AWS はマネージドインスタンスにログインしたり、顧客データにアクセスしたりすることはできません。

セキュリティ機能

Amazon ECS マネージドインスタンスには、ワークロードを保護し、強力なセキュリティ体制を維持するように設計されたいくつかの組み込みセキュリティ機能が含まれています。これらの機能は、自動セキュリティパッチ適用から、必要に応じた特権 Linux 機能への対応まで多岐にわたります。

セキュリティのベストプラクティス

マネージドインスタンスは、AWS セキュリティのベストプラクティスに従って設定され、それには次の項目を含みます。

  • SSH アクセス禁止 – 不正アクセスを防ぐために、リモートシェルアクセスは無効化されています。

  • 変更不可能なルートファイルシステム – ルートファイルシステムは変更できず、システムの整合性が確保されます。

  • カーネルレベルの必須アクセスコントロール – SELinux は、カーネルレベルで追加のセキュリティ施行を提供します。

自動セキュリティパッチ適用

Amazon ECS マネージドインスタンスは、自動パッチ適用を通じてワークロードのセキュリティ体制の改善を支援します。

  • 定期的なセキュリティ更新 – インスタンスは、AWS によって、設定したメンテナンスウィンドウに従い、最新のセキュリティパッチを用いて定期的に更新されます。

  • インスタンスの有効期間の制限 – 実行中のインスタンスの最大存続期間は 14 日間に制限され、最新のセキュリティパッチで適切に設定されたインスタンスでアプリケーションが実行されることを確実にします。

  • メンテナンスウィンドウの制御 – Amazon EC2 イベントウィンドウ機能を使用して、Amazon ECS がインスタンスをパッチ適用済みのインスタンスにいつ置き換えるかを指定できます。

特権 Linux 機能

Amazon ECS マネージドインスタンスは、高いレベルの Linux 権限を必要とするソフトウェアに対応することで、高度なモニタリングとセキュリティソリューションを可能にします。

  • サポート対象の機能CAP_NET_ADMINCAP_SYS_ADMINCAP_BPF など、すべての特権 Linux 機能に対して使用承諾できます。

  • 一般的に普及しているソリューション – これにより、Wireshark や Datadog などの一般的に普及しているネットワークモニタリングおよびオブザーバビリティソリューションを実行できます。

  • 明示的な設定が必要 – アプリケーションに追加のセキュリティリスクが生じる可能性があるため、特権 Linux 機能を有効にするように Amazon ECS マネージドインスタンスのキャパシティプロバイダを明示的に設定する必要があります。

重要

特権 Linux 機能を有効にすると、タスクが追加のセキュリティリスクにさらされる可能性があります。これらの機能は、アプリケーションが必要とする場合にのみ有効にし、セキュリティへの影響に対する理解を確実にしてください。

コンプライアンスと規制への対応

Amazon ECS マネージドインスタンスは、Amazon ECS と同じコンプライアンス体制を維持します。

  • コンプライアンスプログラム – Amazon ECS マネージドインスタンスは、PCI-DSS、HIPAA、FedRAMP など、Amazon ECS と同じ AWS 保証プログラムの対象です。

  • FIPS エンドポイント – Amazon ECS マネージドインスタンスは、AWS リージョンで FIPS エンドポイントを使用して FedRAMP コンプライアンスを実現するためのアカウントレベル設定を尊重します。

  • カスタマーマネージドキー – 暗号化用のカスタマーマネージドキーなど、コンプライアンスの達成に必要なセキュリティ機能に対応します。

Amazon ECS マネージドインスタンスにおける FIPS-140 関連の考慮事項

Amazon ECS マネージドインスタンスで FIPS-140 コンプライアンスを使用する場合は、次の点を考慮してください。

  • FIPS-140 準拠のマネージドインスタンス AMI を利用できるのは AWS GovCloud (US) リージョンのみです。

  • Amazon ECS マネージドインスタンスは FIPS-140-3 をサポートします。

  • AWS GovCloud (US) リージョンでは、FIPS-140 コンプライアンスがデフォルトで有効になっています。FIPS コンプライアンスなしでワークロードを実行する必要がある場合は、マネージドインスタンスキャパシティプロバイダーの設定で FIPS コンプライアンスを無効にします。

  • FIPS-140 コンプライアンスのため、タスクの cpuArchitectureX86_64 にする必要があります。

Amazon ECS マネージドインスタンスで FIPS を無効にする

デフォルトで、AWS GovCloud (US) リージョン内の Amazon ECS マネージドインスタンスキャパシティプロバイダーは FIPS 準拠の AMI を起動します。FIPS-140 コンプライアンスの無効化は、新しい Amazon ECS マネージドインスタンスキャパシティプロバイダーを作成するときに選択します。FIPS コンプライアンスなしで新しいキャパシティプロバイダーを作成するには、次の手順を実行します。

  1. キャパシティプロバイダーの FIPS-140 コンプライアンスを無効にします。

    aws ecs create-capacity-provider \ --cluster cluster-name \ --name capacity-provider-name \ --managed-instances-provider '{ "infrastructureRoleArn": "infrastructure-role-arn", "instanceLaunchTemplate": { "ec2InstanceProfileArn": "instance-profile-arn", "fipsEnabled": false, "networkConfiguration": { "subnets": ["subnet-id"], "securityGroups": ["security-group-id"] } } }'
  2. オプションで、ECS Exec を使用して次のコマンドを実行し、キャパシティプロバイダーの FIPS-140 コンプライアンスステータスを検証できます。

    cluster-name をクラスターの名前に、task-id をタスクの ID または ARN に、container-name をコマンドを実行するタスク内のコンテナ名に置き換えます。

    戻り値「1」は、FIPS が使用されていることを示します。

    aws ecs execute-command \ --cluster cluster-name \ --task task-id \ --container container-name \ --interactive \ --command "cat /proc/sys/crypto/fips_enabled"

セキュリティに関する考慮事項

Amazon ECS マネージドインスタンスを使用する場合は、いくつかの重要なセキュリティ上の考慮事項を理解して計画する必要があります。これらの考慮事項は、ワークロードアーキテクチャとセキュリティ要件について情報に基づいた意思決定を行うのに役立ちます。

マルチタスクセキュリティモデル

Amazon ECS マネージドインスタンスでのデフォルトのマルチタスク配置モデルは、Fargate の単一タスク分離とは異なります。

  • 共有インスタンスリソース – 複数のタスクが同じインスタンス上で実行され、同じインスタンスまたは同じ ECS クラスターで実行されている他のタスクの脆弱性にタスクが晒される可能性があります。

  • シングルタスクオプション – VM レベルのセキュリティ分離境界を持つデフォルトの Fargate セキュリティモデルを必要とする顧客のために、シングルタスクモードを使用するように Amazon ECS マネージドインスタンスを設定することができます。

  • コストとセキュリティのトレードオフ – マルチタスクモードはコストの最適化とタスクスタートアップ時間の短縮化を実現し、一方で、シングルタスクモードはより強力な分離を提供します。

インスタンスの中断処理

Amazon ECS マネージドインスタンスを使用する際は、中断を許容するようにアプリケーションを設計することが重要です。

  • 中断耐性 – 基盤となるサービスまたはタスクの中断を許容するアプリケーションで Amazon ECS マネージドインスタンスを使用します。

  • サービスベースのワークロード – タスクの自動置き換えに Amazon ECS サービスを使用するか、独立型タスクで 14 日以内の制御および制限された期間でワークロードを実行します。

  • 段階的なシャットダウン – タスクシャットダウンの猶予期間を設定して、中断の影響を制御します。

データアクセスとプライバシー

Amazon ECS マネージドインスタンスは、厳格なデータアクセスコントロールを維持します。

  • 顧客データアクセス禁止 – AWS はマネージドインスタンスのライフサイクルとインスタンス上のタスクの配置を制御しますが、AWS はマネージドインスタンスにログインしたり、顧客データにアクセスしたりすることはできません。

  • メトリックとログに限定 – AWS は、Amazon ECS マネージドインスタンス機能の提供に必要なメトリックと関連ログのみをキャプチャします。

  • 隔離されたセキュリティモデル – セキュリティモデルでは管理アクセスを禁止することで、人為的ミスや改ざんの可能性を排除します。

セキュリティのベストプラクティス

Amazon ECS マネージドインスタンスを使用する場合は、次に挙げるベストプラクティスに従います。

  • セキュリティモデルを評価する – セキュリティ要件、特にマルチタスク配置モデルに基づいて、Amazon ECS マネージドインスタンスの採用を意識的に決定します。

  • 必要に応じてシングルタスクモードを使用する – ワークロードでより強力な分離が必要な場合は、Amazon ECS マネージドインスタンスがシングルタスクモードを使用するように設定します。

  • 特権機能を最小限に抑える – 絶対に必要な場合にのみ特権的 Linux 機能を有効にし、関連するセキュリティリスクを理解します。

  • 中断を計画する – 特に 14 日間のインスタンス最大存続期間を考慮して、インスタンスの置き換えを段階的に処理するようにアプリケーションを設計します。

  • メンテナンスウィンドウを設定する – EC2 イベントウィンドウを使用して、インスタンスの置き換えが発生するタイミングを制御することで、ワークロードへの影響を最小限に抑えます。

  • モニタリングと監査 – Amazon ECS マネージドインスタンスの設定を定期的に確認し、セキュリティ関連のイベントや変更がないかモニタリングします。