あるセキュリティ審査で、AWS Organizations配下の複数のAWSアカウントにおいてEC2インスタンスがIMDSv1(Instance Metadata Service version 1)を使用していることが判明しました。IMDSv1はSSRF(Server-Side Request Forgery:サーバーサイドリクエストフォージェリ、Webアプリケーションの脆弱性を悪用してサーバーから内部リソースへリクエストを発生させる攻撃手法)攻撃に対して脆弱であり、攻撃者がEC2に付与されたIAMロールの一時的な認証情報を窃取できる危険があります。組織内のすべての新規EC2インスタンス起動時にIMDSv2の使用を予防的に強制する最も効果的な方法はどれですか?
SCPで ec2:RunInstances アクションに `StringNotEquals: {ec2:MetadataHttpTokens: required}` という条件を付けて拒否することで、IMDSv2が強制されていないインスタンスの起動をOrganizations配下のすべてのアカウントで予防的にブロックできます。一度ルートまたはOUにアタッチすれば全子アカウントに自動適用されます。 選択肢AのAWS Systems Manager State Managerは既存インスタンスへの事後的な設定変更には有効ですが、新規インスタンス起動自体を予防するコントロールではなく、要件(新規インスタンスの強制)を直接的に満たしません。 選択肢BのEC2起動テンプレートの設定はテンプレートを使用して起動された場合にのみ有効であり、テンプレートを使わずに起動されるインスタンスには適用されません。また各アカウントのテンプレートを個別に更新する必要があり組織全体への適用に限界があります。 選択肢DのAWS Configルールは非準拠インスタンスの「検出」と「事後修復」を担当しますが、起動自体を防ぐ予防的コントロールではなく、検出から修復完了までの間に脆弱なインスタンスが存在し続けるギャップが生じます。