この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
困っていた内容
Security Hub で IMDSv2 の利用に関する内容が検知されました。
EC2 インスタンスに設定されている IMDS のバージョンを確認したいのですが、どこから確認できるのでしょうか。確認方法を教えてください。
AWS Foundational Security Best Practices コントロール - AWS Security Hub
[EC2.8] EC2 インスタンスは IMDSv2 を使用する必要があります
このコントロールは、EC2 インスタンスメタデータバージョンが、インスタンスメタデータサービスバージョン 2 (IMDSv2) で設定されているかどうかをチェックします。
どう対応すればいいの?
AWS CLI のdescribe-instancesを実行してください。
IMDS に関する設定は、describe-instancesの実行結果に含まれるMetadataOptions
から確認ができます。
HttpTokens
がoptional
の場合、IMDSv1 と IMDSv2 が使用可能HttpTokens
がrequired
の場合、IMDSv2 が使用可能
なお、describe-instancesの実行結果には、EC2 インスタンスに関わるさまざまな設定が含まるため、IMDS に関する情報だけを確認したい場合は、query
によるフィルタをご活用ください。
IMDSのバージョン1とバージョン2が使用可能
$ aws ec2 describe-instances --instance-id 【インスタンス ID】 --query "Reservations[*].Instances[*].MetadataOptions"
[
[
{
"State": "applied",
"HttpTokens": "optional",
"HttpPutResponseHopLimit": 1,
"HttpEndpoint": "enabled",
"HttpProtocolIpv6": "disabled",
"InstanceMetadataTags": "disabled"
}
]
]
IMDSのバージョン2が使用可能
$ aws ec2 describe-instances --instance-id 【インスタンス ID】 --query "Reservations[*].Instances[*].MetadataOptions"
[
[
{
"State": "applied",
"HttpTokens": "required",
"HttpPutResponseHopLimit": 1,
"HttpEndpoint": "enabled",
"HttpProtocolIpv6": "disabled",
"InstanceMetadataTags": "disabled"
}
]
]
マネジメントコンソールからは確認できないの?
2022年8月時点の挙動として、マネジメントコンソールからは確認ができないようです。
IMDS(インスタンスメタデータ)に関する設定変更も、EC2 インスタンス作成時を除き、マネジメントコンソール(EC2 コンソール)からはできないため、この機会に AWS CLI の利用もご検討ください。
インスタンスメタデータオプションの設定 - Amazon Elastic Compute Cloud
現在、既存のインスタンスでのインスタンスメタデータオプションの変更は、AWS SDK もしくは AWS CLI のみでサポートされます。Amazon EC2 コンソールを使用して、インスタンスメタデータオプションを変更することはできません。
なお、AWS ではマネジメントコンソールから AWS CLI などのコマンドが実行できるブラウザーベースのシェル環境が用意されています。
- AWS CloudShell とは? - AWS CloudShell
- 東京リージョンでAWS CloudShellを使ってみた | DevelopersIO
- AWSのCLI作業はどこで行う? 安全に管理するパターンとメリデメ集 | DevelopersIO
参考資料
- IMDSv2 の使用 - Amazon Elastic Compute Cloud
- インスタンスメタデータオプションの設定 - Amazon Elastic Compute Cloud
- AWS Foundational Security Best Practices コントロール - AWS Security Hub
- EC2 インスタンスメタデータサービスの拡張により、オープンなファイアウォール、リバースプロキシ、SSRFの脆弱性に対する防御を強化しました | Amazon Web Services ブログ
- [待望のアプデ]EC2インスタンスメタデータサービスv2がリリースされてSSRF脆弱性等への攻撃に対するセキュリティが強化されました! | DevelopersIO
- [UPDATE] IMDSv2を強制するIAMポリシーを検証してみた #reinvent | DevelopersIO