【Security Hub修復手順】[ECS.21] ECS タスク定義では、Windowsコンテナ定義で管理者以外のユーザーを設定する必要があります
- URL: https://dev.classmethod.jp/articles/2026-06-21-securityhub-fsbp-remediation-ecs-21
- 日付: 2026-06-22
- Tier: Tier 2
- 要旨: AWS Security Hub コントロール [ECS.21]:Windows コンテナは ContainerAdministrator(デフォルト・root 相当)で動作するのを避け、ContainerUser(制限付きアカウント)で実行。タスク定義の user パラメータが未設定・containeradministrator・0 のいずれかの場合 FAILED。修復値 “user”: “containeruser” を設定。AWS 公式「Windows では user パラメータ非サポート」の記述に反し、実装上は user がコンテナ実行ユーザーコンテキストに反映・ContainerUser として正しく機能することを whoami /all で確認(Mandatory Label Medium・BUILTIN\Administrators なし・管理者特権なし)。JSON エディタで修復。
詳細
AWS Security Hub コントロール [ECS.21] ─ ECS タスク定義で Windows コンテナが管理者以外のユーザーで実行されるか確認。背景:Windows コンテナデフォルトは ContainerAdministrator(root 相当・強権限)で動作。Microsoft 標準は ContainerUser(制限付きアカウント)を推奨。管理者権限コンテナ内脆弱性の攻撃がホスト侵害につながる懸念。評価ロジック:operatingSystemFamily が WINDOWS_SERVER_* のタスク定義のみ評価対象。コンテナ定義の user が以下で FAILED:未設定(デフォルト ContainerAdministrator)・containeradministrator または 0 を明示指定。修復方法:JSON エディタで新リビジョン作成時に “user”: “containeruser” 追加。AWS 公式 ContainerDefinition API Reference では「Windows では user パラメータ非サポート」と明記だが、実装上は user がコンテナ実行ユーザーコンテキストに反映。実機検証(ECS Fargate で whoami /all 実行)で確認可能な evidence:(1) Mandatory Label は Medium Mandatory Level(管理者でなし)・High でなし、(2) 所属グループ BUILTIN\Users あり・BUILTIN\Administrators なし、(3) 特権リスト SeChangeNotifyPrivilege(全ユーザー標準)+ SeIncreaseWorkingSetPrivilege のみ・SeBackupPrivilege / SeDebugPrivilege / SeRestorePrivilege 等管理者特権なし。つまり AWS 公式記述に反し実装上は “user”: “containeruser” がコンテナ実行ユーザーコンテキストに反映・ContainerUser として正しく機能。ECS コンソール JSON エディタで containeruser を設定。コンソール GUI では小文字英数字・アンダースコア・ハイフンのみバリデーション(ContainerUser は大文字バリデーションエラー)なので containeruser(全小文字)で指定。Windows ユーザー名は大文字小文字区別なし。修復確認:タスク定義登録時点で評価・新リビジョン作成で PASSED に切替(サービス更新は稼働タスクのリビジョン切替・Compliance 判定はサービス更新待たず反映・最大 12 時間遅延あり)。