[ホーム][AWS まぎわらしい用語一覧] > [IMDS v1 v2 違い | InstanceMetaData バージョン1と2の比較]

IMDS v1 v2 違い | InstanceMetaData バージョン1と2の比較

作成日:2020/01/29

このページでは AWS インスタンスに提供される機能の一つである IMDS(Instance MetaData Service)のバージョン1とバージョン2の違いに関して説明します。
IMDSとはインスタンスに関する情報を取得する機能です。
Windows や Redhat などのインスタンスはAWS基盤上で動作するOSですが、そのままでは自分自身がAWS上で動作していることが分からないのでAWSの情報も取得できません。

そこで Instance MetaData Service の出番です。この機能により自分自身のインスタンスID、Role情報、パブリックIPアドレス、リージョン、AZなどを取得することが可能となります。

この中にはIAM Role のクレデンシャル情報 なども含まれます。もしIMDS情報が漏洩したらかなり危険な情報となります。

2022年1月現在ではこのIMDS は v1 と v2 の2種類が使用可能です。ただしv1はセキュリティ上の面で弱点があるためv2を使用することが強く推奨されています。v1はネットワーク機器のアクセス権設定不備によりデータが漏洩する可能性があります。


比較は以下の表の通りとなります。

比較表IMDS v1IMDS v2
概要セッショントークンなしでデータの取得が可能。期限付きのセッショントークンの取得が必須。HTTP PUT で取得する。このトークンをヘッダに挿入して取得する。

PUTは通常Firewall などでアクセス禁止されている。そのためよっぽどの不備がない限りPUTによる漏洩の危険性は低い。


Windows PowershellでのアクセスサンプルInvoke-RestMethod -uri http://169.254.169.254/latest/meta-data/$token = Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} -Method PUT -Uri http://169.254.169.254/latest/api/token

Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = $token} -Method GET -Uri http://169.254.169.254/latest/meta-data/
Redhat でのアクセスサンプルcurl http://169.254.169.254/latest/meta-data/TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"`

curl -H ”X-aws-ec2-metadata-token: $TOKEN” -v http://169.254.169.254/latest/meta-data/
危険性メタデータの攻撃の可能性が高い。ネットワーク機器が適切に設定されている場合、攻撃の可能性は低い。





AWS まぎわらしい用語一覧へ戻る


本ページの内容は個人的に調査した結果がであり内容が正しいことは保証されません。
またAWSサービスは常に改良、アップデートされており本ページの内容が古く誤った内容になる可能性もあります。変更になっても本ページが正しく更新されるとは限りません。
あくまでも参考程度でご覧ください。内容により発生したいかなる時間的損害、金銭的損害、その他の損害に関しても何人も保証しません。