

高岡智則
年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)
imdsv2とは何か?初心者にもわかる言葉で解説
imdsv2 は Amazon(関連記事:アマゾンの激安セール情報まとめ) Web Services の EC2 が自分の情報を外部へ知らせる仕組みで使われる Instance Metadata Service の新しいバージョンです。インスタンスが自分の情報を取得するために 169.254.169.254 という特別な住所にアクセスしますが、imdsv2 はこのやり取りをトークンと呼ばれる安全な仕組みで保護します。
IMDSv2 の仕組み
従来の IMDSv1 ではトークンは不要で直接メタデータを取得する形でした。IMDSv2 では最初にサーバーから一時的なトークンを取得し、以降のすべてのリクエストにこのトークンを付けてデータを取得します。トークンには有効期限があり、期限が切れると再度新しいトークンを取得します。この仕組みにより外部からの悪意あるリクエストに対する耐性が向上します。
使い方の流れ
実務での基本的な流れは次の3つです。1 トークンを取得する (PUT メソッドを使います)。2 取得したトークンをヘッダに含めてメタデータを取得する。3 トークンには TTL があるので定期的に新しいトークンを取得する。
| ステップ | 説明 |
|---|---|
| トークン取得 | PUT リクエストでトークンを取得する |
| メタデータ取得 | ヘッダ X-aws-ec2-metadata-token を付けてデータを取得 |
| 更新/期限管理 | TTL が切れる前に新しいトークンを取得する |
具体的なコマンド例
実行環境により権限が必要です。以下は一般的な例です。
トークン取得の例
curl -sS http://169.254.169.254/latest/api/token -X PUT -H 'X-aws-ec2-metadata-token-ttl-seconds: 21600'
トークンを使ってメタデータを取得する例
curl -H 'X-aws-ec2-metadata-token: TOKEN' http://169.254.169.254/latest/meta-data/ami-id
IMDSv1 との違いと運用のポイント
主な違いは tokens を使うかどうかです。IMDSv1 は直接データを取得しますがセキュリティ上のリスクが高くなります。実務では Http Tokens を必須に設定 し IMDSv1 の利用を抑制する運用が推奨されます。
設定のヒントとしては次の点があります。Http Endpoint を有効にしたまま、Http Tokens を required に設定することで、トークンなしのリクエストを拒否できます。必要に応じて Http Put の利用を見直してください。
実務での注意点
IMDSv2 を利用する場合の注意点として、レガシーなスクリプトやツールがトークン対応になっていないケースがあります。その場合はツールのアップデートかデータ取得箇所の見直しが必要です。またセキュリティ監査の際にはメタデータへのアクセス制御と監査ログの整備を忘れずに行いましょう。
まとめ
imdsv2 はインスタンスの情報取得を、安全に行うための仕組みです。トークンを使った認証によりセキュリティが大きく向上します。新規に EC2 を使う場合は IMDSv2 の利用を前提に設定 を行い、可能なら IMDSv1 を無効化する運用をおすすめします。
imdsv2の同意語
- IMDS
- インスタンスメタデータサービスの略称。仮想マシン内から自身のメタデータ(例: インスタンスID、AMI情報、資格情報など)を取得するための仕組みの総称です。
- IMDSv2
- インスタンスメタデータサービスのバージョン2。強化されたセキュリティと、セッションベースの認証を特徴とする第2版のIMDSです。
- Instance Metadata Service Version 2
- IMDSv2の正式英語表記。クラウド環境の仮想マシンが自分のメタデータへアクセスする機能の第2版。
- Instance Metadata Service v2
- IMDSv2の別表記。表記ゆれとして使われることが多い名称。
- インスタンスメタデータサービス バージョン2
- 日本語表現の正式名称。IMDSv2と同義です。
- インスタンスメタデータサービス v2
- 日本語表記と英語表記の混在形。IMDSv2を指します。
- IMDS-2
- IMDSのハイフン付き表記。意味はIMDSの第2版を指します。
- IMDS2
- IMDSの短縮形表記。IMDSv2と同義で用いられることがあります。
- AWS IMDSv2
- AWS(Amazon Web Services)のインスタンスメタデータサービス バージョン2。EC2などで使われる表現。
- Azure IMDSv2
- Azure(Microsoft)」のインスタンスメタデータサービス バージョン2。仮想マシン内からメタデータへアクセスする第2版の機能。
- Instance Metadata Service Version 2 (IMDSv2)
- IMDSv2の英語表現を括弧付きで表した表記。
imdsv2の対義語・反対語
- IMDSv1
- AWSのインスタンスメタデータサービスの旧バージョン。IMDSv2の対義語的存在として挙げられることが多く、トークン認証を必須とせず接続がやや古い仕様。
- IMDSなし
- インスタンスメタデータサービスを使用しない、または無効化している状態。メタデータへのアクセスが不可・制限されている状態を指すことが多い。
- IMDS無効
- インスタンスメタデータサービス機能を機能させない設定。外部からのメタデータ取得を遮断している状態。
- 旧IMDS
- 過去の呼称・実装であるIMDSのこと。現在はIMDSv2が主流だが、古い仕様を指して使われることがある。
- IMDS未使用
- インスタンスメタデータサービスを利用していない状態。設定上オフにしている場合などを指す表現。
imdsv2の共起語
- IMDSv2
- AWSのEC2インスタンスメタデータサービスの第2世代。認証トークンを使いメタデータへのアクセスを保護します。
- IMDS
- EC2インスタンス内で利用できるメタデータサービスの総称。
- インスタンスメタデータサービス
- EC2インスタンスからAMI情報や資格情報を取得する仕組み。
- EC2
- Amazon EC2(Elastic Compute Cloud)、AWSの仮想サーバーサービス。
- AWS
- Amazon Web Services、クラウドサービスの総称。
- IAMロール
- EC2に割り当ててメタデータ経由で資格情報を取得できる権限の集合。
- 資格情報
- アクセスキーID、シークレットアクセスキー、セッショントークンなどの認証情報。
- トークン
- IMDSv2でメタデータ取得時に必要な認証トークン。
- api-token
- IMDSv2の認証トークンの別称として使われることがある用語。
- /latest/api-token
- トークンを取得するためのIMDSv2のエンドポイント。
- /latest/meta-data
- メタデータを取得するためのエンドポイントの基盤パス。
- 169.254.169.254
- IMDSのデフォルトのローカルIPアドレス。
- X-aws-ec2-metadata-token-ttl-seconds
- トークンの有効期限を秒単位で指定するHTTPヘッダ。
- PUT
- IMDSv2のトークン取得リクエストで使用されるHTTPメソッド(PUT)。
- IMDS1
- IMDSv1、トークン不要でアクセス可能な世代。セキュリティ上のリスクがあるとされることが多い。
- セキュリティ
- メタデータアクセスの保護やベストプラクティスに関連する話題。
- SSRF
- サーバサイドリクエストフォージェリ、IMDSへの不正リクエストのリスク要因として挙げられる脆弱性。
- curl
- コマンドラインツール。IMDSv2の操作例で使われることが多い。
- HTTPヘッダ
- X-aws-ec2-metadata-token-ttl-secondsのようなヘッダ情報。
- メタデータ
- EC2インスタンスに関する情報を提供するデータ群。
- アクセスキーID
- IAMロールや資格情報の中の公開ID。
- セッショントークン
- IAMロールの一時認証情報として発行されるトークン。
- ロール名
- IAMロールの名称。メタデータ経由で取得可能になる場合がある。
imdsv2の関連用語
- IMDSv2(Instance Metadata Service Version 2)
- AWSのEC2で提供される最新のインスタンスメタデータ取得方式。トークンを使って認証を行い、以降のメタデータ取得はそのトークンをヘッダに付けて行います。セキュリティが大幅に向上します。
- IMDSv1(Instance Metadata Service Version 1)
- 旧来のメタデータ取得方式。トークンを使わず直接データを取得するため、SSRFなどの脆弱性が拡大しやすいとされています。
- インスタンスメタデータサービス(IMDS)
- EC2インスタンスが自分自身の情報を取得できるサービス。IPアドレスは169.254.169.254。/latest/meta-data/ 配下に情報が格納されています。
- メタデータトークン
- IMDSv2で用いられる一時トークン。トークンの取得とともにセキュリティが高まります。
- トークン取得エンドポイント
- PUT http://169.254.169.254/latest/api/token へTTLを指定してトークンを取得します。TTLはX-aws-ec2-metadata-token-ttl-secondsで設定します。
- トークン使い方ヘッダ
- 以降のメタデータリクエストには X-aws-ec2-metadata-token ヘッダに取得したトークンを含めます。
- 静的メタデータ(/latest/meta-data/)
- インスタンスID、AMI、ネットワーク情報などの静的な情報を取得します。
- 動的メタデータ(/latest/dynamic/)
- インスタンスの動的情報や一時的なデータを取得します。
- ユーザーデータ(/latest/user-data)
- 起動時に渡したスクリプトや設定データ。 bootstrap などの初期設定に利用されます。
- IAMロール認証情報
- EC2に付与したIAMロールの一時的な認証情報を取得して、AWS APIの認証に利用します。
- インスタンスアイデンティティドキュメント
- http://169.254.169.254/latest/dynamic/instance-identity/document に格納された、インスタンスの識別情報を含むJSONドキュメントです。
- IAMロール名とクレデンシャルの取得場所
- IAMロール名ごとに /latest/meta-data/iam/security-credentials/ROLENAME を参照すると、AccessKeyId/SecretAccessKey/Tokenが取得できます。
- 接続先IPアドレス(169.254.169.254)
- IMDSの専用リンクローカルIP。データ取得のためのアクセス先です。
- IMDS設定のセキュリティベストプラクティス
- IMDSv2の利用を推奨し、必要に応じてIMDSv1を無効化。利便性とセキュリティのバランスを取りましょう。
- IMDS Hop Limit
- IMDSへのアクセスを許可するネットワークホップ数を設定します。デフォルトは1ですが、必要に応じて変更します。
- SSRF対策としてのIMDSv2
- サーバーサイドリクエストフォージェリ(SSRF)攻撃に対する防御として、トークン認証を要求するIMDSv2の運用が有効です。



















