翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon ECS の Security Hub CSPM コントロール
これらの Security Hub CSPM コントロールは、Amazon Elastic Container Service (Amazon ECS) サービスとリソースを評価します。コントロールは一部の で使用できない場合があります AWS リージョン。詳細については、「リージョン別のコントロールの可用性」を参照してください。
[ECS.1] Amazon ECS タスク定義には、セキュアなネットワークモードとユーザー定義が必要です。
関連する要件: NIST.800-53.r5 AC-2(1)、NIST.800-53.r5 AC-3、NIST.800-53.r5 AC-3(15)、NIST.800-53.r5 AC-3(7)、NIST.800-53.r5 AC-5、NIST.800-53.r5 AC-6
カテゴリ: 保護 > セキュアなアクセス管理
重要度: 高
リソースタイプ : AWS::ECS::TaskDefinition
AWS Config ルール : ecs-task-definition-user-for-host-mode-check
スケジュールタイプ : 変更がトリガーされた場合
パラメータ :
-
SkipInactiveTaskDefinitions:true(カスタマイズ不可)
このコントロールは、ホストネットワークモードを使用するアクティブな Amazon ECS タスク定義に privileged または user コンテナの定義もあるかどうかをチェックします。ホストネットワークモードとコンテナ定義が privileged=false、空で、user=root、または空のタスク定義では、制御に失敗します。
このコントロールは、Amazon ECS タスク定義の最新のアクティブなリビジョンのみを評価します。
この制御の目的は、ホストネットワークモードを使用するタスクを実行するときに、アクセスが意図的に定義されるようにすることです。タスク定義に昇格されたアクセス権限がある場合は、その構成を選択したことによるものです。このコントロールは、タスク定義でホストネットワークが有効になっていても、お客様が昇格されたアクセス権限を選択していない場合に、予期しない権限の昇格の有無をチェックします。
注記
このコントロールは 2026 年 2 月 16 日以降に廃止され、適用されるすべての Security Hub CSPM 標準から削除されます。特権設定、ネットワークモード設定、およびユーザー設定の評価については、次のコントロールを参照してください。
修正
タスク定義を更新する方法については、「Amazon Elastic Container Service デベロッパーガイド」の「タスク定義の更新」を参照してください。
タスク定義を更新しても、以前のタスク定義から起動された実行中のタスクは更新されません。実行中のタスクを更新するには、新しいタスク定義を使用してタスクを再デプロイする必要があります。
[ECS.2] ECS サービスには、パブリック IP アドレスを自動で割り当てないでください
関連する要件: NIST.800-53.r5 AC-21、NIST.800-53.r5 AC-3、NIST.800-53.r5 AC-3(7)、NIST.800-53.r5 AC-4、NIST.800-53.r5 AC-4(21)、NIST.800-53.r5 AC-6、NIST.800-53.r5 SC-7、NIST.800-53.r5 SC-7(11)、NIST.800-53.r5 SC-7(16)、NIST.800-53.r5 SC-7(20)、NIST.800-53.r5 SC-7(21)、NIST.800-53.r5 SC-7(3)、NIST.800-53.r5 SC-7(4)、NIST.800-53.r5 SC-7(9)、PCI DSS v4.0.1/1.4.4
カテゴリ: 保護 > セキュアなネットワーク設定 > パブリックアクセス不可のリソース
重要度: 高
リソースタイプ : AWS::ECS::Service
AWS Config rule: ecs-service-assign-public-ip-disabled (カスタム Security Hub CSPM ルール)
スケジュールタイプ : 変更がトリガーされた場合
パラメータ : なし
このコントロールは、Amazon ECS サービスがパブリック IP アドレスの自動割り当てが設定されているかどうかをチェックします。AssignPublicIP が ENABLED の場合、このコントロールは失敗します。AssignPublicIP が DISABLED の場合、このコントロールは成功です。
パブリック IP アドレスは、インターネットから到達可能な IP アドレスです。パブリック IP アドレスを使用して Amazon ECS インスタンスを起動すると、Amazon ECS インスタンスにインターネットから到達することができます。Amazon ECS サービスは、コンテナアプリケーションサーバーへの意図しないアクセスを許可する可能性があるため、パブリックにアクセスができないようにする必要があります。
修正
まず、awsvpc ネットワークモードを使用し、requiresCompatibilities の FARGATE を指定するクラスターのタスク定義を作成する必要があります。次に、[コンピューティング設定]で、[起動タイプ] と [FARGATE] を選択します。最後に、[ネットワーキング] フィールドで [パブリック IP] をオフにして、サービスの自動パブリック IP 割り当てを無効にします。
[ECS.3] ECS タスクの定義では、ホストのプロセス名前空間を共有しないでください
関連する要件: NIST.800-53.r5 CA-9(1)、NIST.800-53.r5 CM-2
カテゴリ: 識別 > リソース設定
重要度: 高
リソースタイプ : AWS::ECS::TaskDefinition
AWS Config ルール : ecs-task-definition-pid-mode-check
スケジュールタイプ: 変更がトリガーされた場合
パラメータ : なし
このコントロールは、Amazon ECS のタスク定義が、ホストのプロセス名前空間をそのコンテナと共有するように設定されているかどうかをチェックします。タスク定義が、ホストのプロセス名前空間を、そこで実行されているコンテナと共有している場合、このコントロールは失敗します。このコントロールは、Amazon ECS タスク定義の最新のアクティブなリビジョンのみを評価します。
プロセス ID (PID) 名前空間は、プロセス間を分離します。これにより、システムプロセスが可視化されることを防ぎ、PID 1 を含む PID の再利用が可能になります。ホストの PID 名前空間がコンテナと共有されている場合、コンテナは、ホストシステム上のすべてのプロセスを参照できるようになります。これにより、ホストとコンテナ間をプロセスレベルで分離するメリットが減ります。このような状況は、ホストそれ自体で行われているプロセスへの、不正アクセス (プロセスの操作や終了など) につながる可能性があります。ユーザーは、ホストのプロセス名前空間を、そこで実行されているコンテナと共有すべきではありません。
修正
タスク定義上で pidMode を設定する方法については、「Amazon Elastic Container Service デベロッパーガイド」の「タスク定義パラメータ」を参照してください。
[ECS.4] ECS コンテナは、非特権として実行する必要があります
関連する要件: NIST.800-53.r5 AC-2(1)、NIST.800-53.r5 AC-3、NIST.800-53.r5 AC-3(15)、NIST.800-53.r5 AC-3(7)、NIST.800-53.r5 AC-5、NIST.800-53.r5 AC-6
カテゴリ: 保護 > セキュアなアクセス管理 > ルートユーザーのアクセス制限
重要度: 高
リソースタイプ : AWS::ECS::TaskDefinition
AWS Config ルール : ecs-containers-nonprivileged
スケジュールタイプ: 変更がトリガーされた場合
パラメータ : なし
このコントロールは、Amazon ECS のタスク定義の、コンテナ定義の privileged パラメータが true に設定されているかどうかをチェックします。このパラメータの値が true である場合、このコントロールは失敗します。このコントロールは、Amazon ECS タスク定義の最新のアクティブなリビジョンのみを評価します。
昇格された特権を、ECS タスク定義から削除することが推奨されます。この特権パラメータが true の場合、このコンテナには、ホストコンテナインスタンスに対する昇格された特権が付与されます (ルートユーザーと同様)。
修正
タスク定義上で privileged を設定する方法については、「Amazon Elastic Container Service デベロッパーガイド」の「詳細コンテナ定義パラメータ」を参照してください。
[ECS.5] ECS コンテナは、ルートファイルシステムへの読み取り専用アクセスに制限する必要があります。
関連する要件: NIST.800-53.r5 AC-2(1)、NIST.800-53.r5 AC-3、NIST.800-53.r5 AC-3(15)、NIST.800-53.r5 AC-3(7)、NIST.800-53.r5 AC-5、NIST.800-53.r5 AC-6
カテゴリ: 保護 > セキュアなアクセス管理
重要度: 高
リソースタイプ : AWS::ECS::TaskDefinition
AWS Config ルール : ecs-containers-readonly-access
スケジュールタイプ: 変更がトリガーされた場合
パラメータ : なし
このコントロールは、Amazon ECS コンテナがルートファイルシステムへの読み取り専用アクセス権を持っているかどうかをチェックします。readonlyRootFilesystem パラメータが false に設定されているか、タスク定義内のコンテナ定義にこのパラメータが存在しない場合、コントロールは失敗します。このコントロールは、Amazon ECS タスク定義の最新のアクティブなリビジョンのみを評価します。
Amazon ECS タスク定義で readonlyRootFilesystem パラメータが true に設定されている場合、ECS コンテナにはルートファイルシステムへの読み取り専用アクセス権が付与されます。これにより、ファイルシステムフォルダとディレクトリの読み取り/書き込み権限を持つ明示的なボリュームマウントがないと、コンテナインスタンスのルートファイルシステムを改ざんしたり書き込んだりできないため、セキュリティ攻撃ベクトルが減少します。このオプションを有効にすると、最小特権の原則にも準拠できます。
修正
Amazon ECS コンテナにルートファイルシステムへの読み取り専用アクセス権を付与するには、コンテナのタスク定義に readonlyRootFilesystem パラメータを追加し、このパラメータの値を true に設定します。タスク定義パラメータの詳細とそれらをタスク定義に追加する方法については、「Amazon Elastic Container Service デベロッパーガイド」の「Amazon ECS タスク定義」と「タスク定義の更新」を参照してください。
[ECS.8] シークレットは、コンテナ環境の変数として渡さないでください
関連する要件: NIST.800-53.r5 CA-9(1)、NIST.800-53.r5 CM-2、PCI DSS v4.0.1/8.6.2
カテゴリ: 保護 > セキュアな開発 > 認証情報がハードコーディングされていない
重要度: 高
リソースタイプ : AWS::ECS::TaskDefinition
AWS Config ルール : ecs-no-environment-secrets
スケジュールタイプ: 変更がトリガーされた場合
パラメータ: secretKeys: AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、ECS_ENGINE_AUTH_DATA (カスタマイズ不可)
このコントロールは、コンテナ定義の environment パラメータにある、任意の変数のキー値に、AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、ECS_ENGINE_AUTH_DATA のいずれかが含まれているかどうかをチェックします。任意のコンテナ定義内の単一の環境変数が、AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、ECS_ENGINE_AUTH_DATA のいずれかである場合、このコントロールは失敗します。このコントロールは、Amazon S3 など、他のロケーションから渡される環境変数は対象としません。このコントロールは、Amazon ECS タスク定義の最新のアクティブなリビジョンのみを評価します。
AWS Systems Manager Parameter Store は、組織のセキュリティ体制の改善に役立ちます。シークレットと認証情報は、コンテナインスタンスに直接渡したり、コードにハードコーディングしたりするのではなく、Parameter Store を使用して保存することが推奨されます。
修正
SSM を使用してパラメータを作成する方法については、「AWS Systems Manager ユーザーガイド」の「Systems Manager パラメータを作成する」を参照してください。シークレットを指定するタスク定義の作成に関する詳細は、「Amazon Elastic Container Service デベロッパーガイド」の「Secrets Manager を使用した機密データの指定」を参照してください。
[ECS.9] ECS タスク定義にはログ設定が必要です。
関連する要件: NIST.800-53.r5 AC-4(26)、NIST.800-53.r5 AU-10、NIST.800-53.r5 AU-12、NIST.800-53.r5 AU-2、NIST.800-53.r5 AU-3、NIST.800-53.r5 AU-6(3)、NIST.800-53.r5 AU-6(4)、NIST.800-53.r5 CA-7、NIST.800-53.r5 SC-7(9)、NIST.800-53.r5 SI-7(8)
カテゴリ: 識別 > ログ記録
重要度: 高
リソースタイプ : AWS::ECS::TaskDefinition
AWS Config rule: ecs-task-definition-log-configuration
スケジュールタイプ : 変更がトリガーされた場合
パラメータ : なし
このコントロールは、最新のアクティブな Amazon ECS タスク定義にロギング設定が指定されているかどうかを確認します。タスク定義に logConfiguration プロパティが定義されていない場合、または少なくとも 1 つのコンテナ定義で logDriver の値が null の場合、コントロールは失敗します。
ログ記録は Amazon ECS の信頼性、可用性、パフォーマンスの維持に有益です。タスク定義からデータを収集すると可視性が得られ、プロセスのデバッグやエラーの根本原因の特定に役立ちます。ECS タスク定義で定義する必要のないロギングソリューション (サードパーティのロギングソリューションなど) を使用している場合は、ログを無効にできますが、無効にする前に、ログが適切に取得、保存されていることを確認してください。
修正
Amazon ECS タスク定義のログ設定を定義するには、「Amazon Elastic Container Service デベロッパーガイド」の「タスク定義でログ設定を指定する」を参照してください。
[ECS.10] ECS Fargate サービスは、最新の Fargate プラットフォームバージョンで実行する必要があります。
関連する要件: NIST.800-53.r5 SI-2、NIST.800-53.r5 SI-2(2)、NIST.800-53.r5 SI-2(4)、NIST.800-53.r5 SI-2(5)、PCI DSS v4.0.1/6.3.3
カテゴリ: 特定 > 脆弱性、パッチ、バージョン管理
重要度: 中
リソースタイプ : AWS::ECS::Service
AWS Config ルール : ecs-fargate-latest-platform-version
スケジュールタイプ : 変更がトリガーされた場合
パラメータ :
latestLinuxVersion: 1.4.0(カスタマイズ不可)latestWindowsVersion: 1.0.0(カスタマイズ不可)
このコントロールは、Amazon ECS Fargate サービスが最新バージョンの Fargate プラットフォームで実行されているかどうかをチェックします。プラットフォームが最新バージョンでない場合、このコントロールは失敗します。
AWS Fargate プラットフォームバージョンは、Fargate タスクインフラストラクチャの特定のランタイム環境を指します。これは、カーネルランタイムバージョンとコンテナランタイムバージョンの組み合わせです。新しいプラットフォームのバージョンは、ランタイム環境の進化に伴ってリリースされます。例えば、新しいバージョンは、カーネルやオペレーティングシステムの更新、新機能、バグ修正、セキュリティ更新があったときなどにリリースされます。セキュリティの更新やパッチは、 Fargate のタスクに自動的にデプロイされます。プラットフォームバージョンに影響するセキュリティ問題が見つかった場合、 はプラットフォームバージョンを AWS パッチします。
修正
プラットフォームバージョンを含む既存サービスの更新方法については、「Amazon Elastic Container Service デベロッパーガイド」の「サービスの更新」を参照してください。
[ECS.12] ECS クラスターはコンテナインサイトを使用する必要があります
関連する要件: NIST.800-53.r5 AU-6(3)、NIST.800-53.r5 AU-6(4)、NIST.800-53.r5 CA-7、NIST.800-53.r5 SI-2
カテゴリ: 識別 > ログ記録
重要度: 中
リソースタイプ : AWS::ECS::Cluster
AWS Config ルール : ecs-container-insights-enabled
スケジュールタイプ: 変更がトリガーされた場合
パラメータ : なし
このコントロールは、ECS クラスターが Container Insights を使用しているかどうかをチェックします。クラスターで Container Insights がセットアップされていない場合、このコントロールは失敗します。
モニタリングは、Amazon ECS クラスターの信頼性、可用性、パフォーマンスを維持する上で欠かせない要素です。CloudWatch Container Insights を使用して、コンテナ化されたアプリケーションとマイクロサービスのメトリクスとログを収集、集計、要約します。CloudWatch は、CPU やメモリ、ディスク、ネットワークなど、多数のリソースのメトリクスを自動的に収集します。Container Insights では、問題の迅速な特定と解決に役立つ、コンテナの再起動失敗などの診断情報も提供されます。また、Container Insights が収集するメトリクスには CloudWatch アラームを設定できます。
修正
Container Insights の使用方法については、「Amazon CloudWatch ユーザーガイド」の「サービスの更新」を参照してください。
[ECS.13] ECS サービスにはタグを付ける必要があります
カテゴリ: 識別 > インベントリ > タグ付け
重要度: 低
リソースタイプ : AWS::ECS::Service
AWS Config rule: tagged-ecs-service (カスタム Security Hub CSPM ルール)
スケジュールタイプ : 変更がトリガーされた場合
パラメータ :
| パラメータ | 説明 | タイプ | 許可されているカスタム値 | Security Hub CSPM のデフォルト値 |
|---|---|---|---|---|
requiredTagKeys
|
評価されたリソースに含める必要があるシステム以外のタグキーのリスト。タグキーでは大文字と小文字が区別されます。 | StringList (最大 6 項目) | AWS 要件を満たす 1~6 個のタグキー。 | デフォルト値なし |
このコントロールは、Amazon ECS サービスにパラメータ requiredTagKeys で定義された特定のキーを持つタグがあるかどうかをチェックします。サービスにタグキーがない場合、またはパラメータ requiredTagKeys で指定されたすべてのキーがない場合、コントロールは失敗します。パラメータ requiredTagKeys が指定されていない場合、コントロールはタグキーの存在のみをチェックし、サービスがキーでタグ付けされていない場合は失敗します。自動的に適用され、aws: で始まるシステムタグは無視されます。
タグは、 AWS リソースに割り当てるラベルで、キーとオプションの値で構成されます。タグを作成して、リソースを目的、所有者、環境、またはその他の基準別に分類できます。タグは、リソースの識別、整理、検索、フィルタリングに役立ちます。タグ付けは、アクションと通知の説明責任のあるリソース所有者を追跡するのに役立ちます。タグ付けを使用する場合、タグに基づいてアクセス許可を定義する認証戦略として属性ベースのアクセス制御 (ABAC) を実装できます。タグは、IAM エンティティ (ユーザーまたはロール) および AWS リソースにアタッチできます。IAM プリンシパルに対して、単一の ABAC ポリシー、または個別のポリシーセットを作成できます。これらの ABAC ポリシーを、プリンシパルのタグがリソースタグと一致するときに操作を許可するように設計することができます。詳細については、IAM ユーザーガイドの「ABAC とは AWS」を参照してください。
注記
タグには、個人を特定できる情報 (PII) や、機密情報あるいは秘匿性の高い情報は追加しないでください。タグには AWS のサービス、 を含む多くのユーザーがアクセスできます AWS Billing。タグ付けのベストプラクティスの詳細については、『』の「 AWS リソースのタグ付け」を参照してくださいAWS 全般のリファレンス。
修正
ECS サービスにタグを追加するには、「Amazon Elastic Container Service デベロッパーガイド」の「Amazon ECS リソースにタグを付ける」を参照してください。
[ECS.14] ECS クラスターにはタグを付ける必要があります
カテゴリ: 識別 > インベントリ > タグ付け
重要度: 低
リソースタイプ : AWS::ECS::Cluster
AWS Config rule: tagged-ecs-cluster (カスタム Security Hub CSPM ルール)
スケジュールタイプ : 変更がトリガーされた場合
パラメータ :
| パラメータ | 説明 | タイプ | 許可されているカスタム値 | Security Hub CSPM のデフォルト値 |
|---|---|---|---|---|
requiredTagKeys
|
評価されたリソースに含める必要があるシステム以外のタグキーのリスト。タグキーでは大文字と小文字が区別されます。 | StringList (最大 6 項目) | AWS 要件を満たす 1~6 個のタグキー。 | デフォルト値なし |
このコントロールは、Amazon ECS クラスターにパラメータ requiredTagKeys で定義された特定のキーを持つタグがあるかどうかをチェックします。クラスターにタグキーがない場合、またはパラメータ requiredTagKeys で指定されたすべてのキーがない場合、コントロールは失敗します。パラメータ requiredTagKeys が指定されていない場合、コントロールはタグキーの存在のみをチェックし、クラスターにキーがタグ付けされていない場合は失敗します。自動的に適用され、aws: で始まるシステムタグは無視されます。
タグは、 AWS リソースに割り当てるラベルで、キーとオプションの値で構成されます。タグを作成して、リソースを目的、所有者、環境、またはその他の基準別に分類できます。タグは、リソースの識別、整理、検索、フィルタリングに役立ちます。タグ付けは、アクションと通知の説明責任のあるリソース所有者を追跡するのに役立ちます。タグ付けを使用する場合、タグに基づいてアクセス許可を定義する認証戦略として属性ベースのアクセス制御 (ABAC) を実装できます。タグは、IAM エンティティ (ユーザーまたはロール) および AWS リソースにアタッチできます。IAM プリンシパルに対して、単一の ABAC ポリシー、または個別のポリシーセットを作成できます。これらの ABAC ポリシーを、プリンシパルのタグがリソースタグと一致するときに操作を許可するように設計することができます。詳細については、IAM ユーザーガイドの「ABAC とは AWS」を参照してください。
注記
タグには、個人を特定できる情報 (PII) や、機密情報あるいは秘匿性の高い情報は追加しないでください。タグには AWS のサービス、 を含む多くのユーザーがアクセスできます AWS Billing。タグ付けのベストプラクティスの詳細については、のAWS 「リソースのタグ付け」を参照してくださいAWS 全般のリファレンス。
修正
ECS クラスターにタグを追加するには、「Amazon Elastic Container Service デベロッパーガイド」の「Amazon ECS リソースにタグを付ける」を参照してください。
[ECS.15] ECS タスク定義にはタグを付ける必要があります
カテゴリ: 識別 > インベントリ > タグ付け
重要度: 低
リソースタイプ : AWS::ECS::TaskDefinition
AWS Config rule: tagged-ecs-taskdefinition (カスタム Security Hub CSPM ルール)
スケジュールタイプ : 変更がトリガーされた場合
パラメータ :
| パラメータ | 説明 | タイプ | 許可されているカスタム値 | Security Hub CSPM のデフォルト値 |
|---|---|---|---|---|
requiredTagKeys
|
評価されたリソースに含める必要があるシステム以外のタグキーのリスト。タグキーでは大文字と小文字が区別されます。 | StringList (最大 6 項目) | AWS 要件を満たす 1~6 個のタグキー。 | デフォルト値なし |
このコントロールは、Amazon ECS タスク定義に、パラメータ requiredTagKeys で定義された特定のキーを持つタグがあるかどうかをチェックします。タスク定義にタグキーがない場合、またはパラメータ requiredTagKeys で指定されたすべてのキーがない場合、コントロールは失敗します。パラメータ requiredTagKeys が指定されていない場合、コントロールはタグキーの存在のみをチェックし、タスク定義にキーがタグ付けされていない場合は失敗します。自動的に適用され、aws: で始まるシステムタグは無視されます。
タグは、 AWS リソースに割り当てるラベルで、キーとオプションの値で構成されます。タグを作成して、リソースを目的、所有者、環境、またはその他の基準別に分類できます。タグは、リソースの識別、整理、検索、フィルタリングに役立ちます。タグ付けは、アクションと通知の説明責任のあるリソース所有者を追跡するのに役立ちます。タグ付けを使用する場合、タグに基づいてアクセス許可を定義する認証戦略として属性ベースのアクセス制御 (ABAC) を実装できます。タグは、IAM エンティティ (ユーザーまたはロール) および AWS リソースにアタッチできます。IAM プリンシパルに対して、単一の ABAC ポリシー、または個別のポリシーセットを作成できます。これらの ABAC ポリシーを、プリンシパルのタグがリソースタグと一致するときに操作を許可するように設計することができます。詳細については、IAM ユーザーガイドの「ABAC とは AWS」を参照してください。
注記
タグには、個人を特定できる情報 (PII) や、機密情報あるいは秘匿性の高い情報は追加しないでください。タグには AWS のサービス、 を含む多くのユーザーがアクセスできます AWS Billing。タグ付けのベストプラクティスの詳細については、の「 AWS リソースのタグ付け」を参照してくださいAWS 全般のリファレンス。
修正
ECS タスク定義にタグを追加するには、「Amazon Elastic Container Service デベロッパーガイド」の「Amazon ECS リソースのタグ付け」を参照してください。
[ECS.16] ECS タスクセットはパブリック IP アドレスを自動的に割り当てないでください。
関連する要件: PCI DSS v4.0.1/1.4.4
カテゴリ: 保護 > セキュアなネットワーク設定 > パブリックアクセス不可のリソース
重要度: 高
リソースタイプ : AWS::ECS::TaskSet
AWS Config rule: ecs-taskset-assign-public-ip-disabled (カスタム Security Hub CSPM ルール)
スケジュールタイプ : 変更がトリガーされた場合
パラメータ : なし
このコントロールは、Amazon ECS タスクセットがパブリック IP アドレスの自動割り当てが設定されているかどうかをチェックします。AssignPublicIP が ENABLED に設定されている場合、コントロールは失敗します。
パブリック IP アドレスは、インターネットから到達可能です。タスクセットをパブリック IP アドレスで設定すると、タスクセットに関連付けられたリソースにインターネットからアクセスできます。ECS タスクセットは、コンテナアプリケーションサーバーへの意図しないアクセスを許可する可能性があるため、パブリックにアクセスができないようにする必要があります。
修正
パブリック IP アドレスを使用しないように ECS タスクセットを更新するには、「Amazon Elastic Container Service デベロッパーガイド」の「コンソールを使用した Amazon ECS タスク定義の更新」を参照してください。
[ECS.17] ECS タスク定義ではホストネットワークモードを使用すべきではありません
関連する要件: NIST.800-53.r5 AC-2(1)、NIST.800-53.r5 AC-3、NIST.800-53.r5 AC-3(7)、NIST.800-53.r5 AC-3(15)、NIST.800-53.r5 AC-5、NIST.800-53.r5 AC-6
カテゴリ: 保護 > セキュアなネットワーク設定
重要度: 中
リソースタイプ : AWS::ECS::TaskDefinition
AWS Config ルール : ecs-task-definition-network-mode-not-host
スケジュールタイプ: 変更がトリガーされた場合
パラメータ : なし
このコントロールは、Amazon ECS タスク定義の最新のアクティブなリビジョンが host ネットワークモードを使用しているかどうかをチェックします。ECS タスク定義の最新のアクティブなリビジョンが host ネットワークモードを使用している場合、このコントロールは失敗します。
host ネットワークモードを使用すると、Amazon ECS コンテナのネットワークは、コンテナを実行している基盤となるホストに直接関連付けられます。そのため、このモードでは、コンテナはホスト上のプライベートループバックネットワークサービスに接続でき、ホストになりすますことができます。その他の重大な欠点として、host ネットワークモードを使用している場合、コンテナポートを再マッピングする方法がなく、各ホストで 1 つのタスクを複数インスタンス化することができないことが挙げられます。
修正
Amazon EC2 インスタンスでホストされている Amazon ECS タスクのネットワークモードとオプションについては、「Amazon Elastic Container Service デベロッパーガイド」の「EC2 起動タイプの Amazon ECS タスクネットワークオプション」を参照してください。タスク定義の新しいリビジョンを作成し、別のネットワークモードを指定する方法については、そのガイドの「Amazon ECS タスク定義の更新」を参照してください。
Amazon ECS タスク定義が によって作成された場合は AWS Batch、AWS Batch 「ジョブのネットワークモード」を参照して、 AWS Batch ジョブタイプのネットワークモードと一般的な使用法について学び、安全なオプションを選択します。
[ECS.18] ECS タスク定義ではEFS ボリュームの転送時の暗号化を使用する必要があります
カテゴリ: 保護 > 転送中のデータの暗号化
重要度: 中
リソースタイプ : AWS::ECS::TaskDefinition
AWS Config ルール : ecs-task-definition-efs-encryption-enabled
スケジュールタイプ: 変更がトリガーされた場合
パラメータ : なし
このコントロールは、Amazon ECS タスク定義の最新のアクティブなリビジョンが EFS ボリュームの転送中の暗号化を使用しているかどうかをチェックします。ECS タスク定義の最新のアクティブなリビジョンで EFS ボリュームの転送中の暗号化が無効になっている場合、コントロールは失敗します。
Amazon EFS ボリュームは、Amazon ECS タスクで使用できるように、シンプルでスケーラブル、永続的な共有ファイルストレージを提供します。Amazon EFS は、Transport Layer Security (TLS) による転送中のデータの暗号化をサポートしています。転送中のデータの暗号化が EFS ファイルシステムのマウントオプションとして宣言されると、Amazon EFS はファイルシステムのマウント時に EFS ファイルシステムとの安全な TLS 接続を確立します。
修正
EFS ボリュームで Amazon ECS タスク定義の転送時の暗号化を有効にする方法については、「Amazon Elastic Container Service デベロッパーガイド」の「ステップ 5: タスク定義を作成する」を参照してください。
[ECS.19] ECS キャパシティプロバイダーはマネージド終了保護を有効にする必要があります
カテゴリ: 保護 > データ保護
重要度: 中
リソースタイプ : AWS::ECS::CapacityProvider
AWS Config ルール : ecs-capacity-provider-termination-check
スケジュールタイプ: 変更がトリガーされた場合
パラメータ : なし
このコントロールは、Amazon ECS キャパシティプロバイダーでマネージド終了保護が有効になっているかどうかをチェックします。ECS キャパシティープロバイダーでマネージド終了保護が有効になっていない場合、コントロールは失敗します。
Amazon ECS キャパシティープロバイダーは、クラスター内のタスクに対するインフラストラクチャのスケーリングを管理できます。キャパシティーとして EC2 インスタンスを使用する場合は、Auto Scaling グループを使用して EC2 インスタンスを管理します。マネージド終了保護を使用すると、クラスターの自動スケーリングで、どのインスタンスを終了するかを制御できます。マネージド終了保護を使用した場合、Amazon ECS は、実行中の Amazon ECS タスクがない EC2 インスタンスのみを終了します。
注記
マネージド終了保護を使用する場合は、マネージドスケーリングも使用する必要があります。そうしなければ、マネージド終了保護は機能しません。
修正
Amazon ECS キャパシティープロバイダーのマネージド終了保護を有効にするには、「Amazon Elastic Container Service デベロッパーガイド」の「Amazon ECS キャパシティープロバイダーのマネージド終了保護の更新」を参照してください。
[ECS.20] ECS タスク定義では、Linux コンテナ定義で非ルートユーザーを設定する必要があります
カテゴリ: 保護 > セキュアなアクセス管理 > ルートユーザーのアクセス制限
重要度: 中
リソースタイプ : AWS::ECS::TaskDefinition
AWS Config ルール : ecs-task-definition-linux-user-non-root
スケジュールタイプ: 変更がトリガーされた場合
パラメータ : なし
このコントロールは、Amazon ECS タスク定義の最新のアクティブなリビジョンが、非ルートユーザーとして実行されるように Linux コンテナを設定するかどうかをチェックします。デフォルトのルートユーザーが設定されている場合、またはコンテナにユーザー設定がない場合、コントロールは失敗します。
Linux コンテナがルート権限で実行されると、いくつかの重大なセキュリティリスクが生じます。ルートユーザーは、コンテナ内で無制限にアクセスできます。この昇格されたアクセスは、攻撃者がコンテナの分離から抜け出し、基盤となるホストシステムにアクセスする可能性のある、コンテナエスケープ攻撃のリスクを高めます。ルートとして実行されているコンテナが侵害された場合、攻撃者はこれを悪用してホストシステムリソースにアクセスまたは変更し、他のコンテナまたはホスト自体に影響を与える可能性があります。さらに、ルートアクセスにより特権エスカレーション攻撃が可能になり、攻撃者はコンテナの意図した範囲を超える追加のアクセス許可を取得できます。ECS タスク定義のユーザーパラメータは、ユーザー名、ユーザー ID、 グループのユーザー名、 グループ ID の UID など、いくつかの形式でユーザーを指定できます。ルートアクセスが誤って付与されないようにタスク定義を設定するときは、これらのさまざまな形式に注意することが重要です。最小特権の原則に従って、コンテナはルート以外のユーザーを使用して最低限必要なアクセス許可で実行する必要があります。このアプローチにより、潜在的な攻撃対象領域が大幅に減少し、潜在的なセキュリティ侵害の影響が軽減されます。
注記
このコントロールは、 operatingSystemFamilyが として設定されているか、タスク定義で設定LINUXoperatingSystemFamilyされていない場合にのみ、タスク定義のコンテナ定義を評価します。タスク定義内のコンテナ定義がデフォルトのルートユーザーとして設定またはuser設定userされていない場合、コントロールは評価されたタスク定義FAILEDの結果を生成します。LINUX コンテナのデフォルトのルートユーザーは "root"および です"0"。
修正
Amazon ECS タスク定義の新しいリビジョンの作成とコンテナ定義の userパラメータの更新については、「Amazon Elastic Container Service デベロッパーガイド」の「Amazon ECS タスク定義の更新」を参照してください。
[ECS.21] ECS タスク定義では、Windows コンテナ定義で管理者以外のユーザーを設定する必要があります
カテゴリ: 保護 > セキュアなアクセス管理 > ルートユーザーのアクセス制限
重要度: 中
リソースタイプ : AWS::ECS::TaskDefinition
AWS Config ルール : ecs-task-definition-windows-user-non-admin
スケジュールタイプ: 変更がトリガーされた場合
パラメータ : なし
このコントロールは、Amazon ECS タスク定義の最新のアクティブなリビジョンが、デフォルト管理者ではないユーザーとして実行するように Windows コンテナを設定するかどうかをチェックします。デフォルトの管理者がユーザーとして設定されている場合、またはコンテナにユーザー設定がない場合、コントロールは失敗します。
Windows コンテナが管理者権限で実行されると、いくつかの重大なセキュリティリスクが生じます。管理者は、コンテナ内で無制限にアクセスできます。この昇格されたアクセスは、攻撃者がコンテナの分離から抜け出し、基盤となるホストシステムにアクセスする可能性のある、コンテナエスケープ攻撃のリスクを高めます。
注記
このコントロールは、 operatingSystemFamilyが WINDOWS_SERVERとして設定されているか、タスク定義で設定operatingSystemFamilyされていない場合にのみ、タスク定義のコンテナ定義を評価します。タスク定義内のコンテナ定義が であるコンテナのデフォルト管理者として設定またはuser設定userされていない場合、コントロールは評価WINDOWS_SERVERされたタスク定義FAILEDの結果を生成します"containeradministrator"。
修正
Amazon ECS タスク定義の新しいリビジョンの作成とコンテナ定義の userパラメータの更新については、「Amazon Elastic Container Service デベロッパーガイド」の「Amazon ECS タスク定義の更新」を参照してください。