Amazon EC2 インスタンスメタデータサービス(IMDS) v2のみにしました
2021/08/18
今さらながらですが、EC2 インスタンスメタデータサービス(IMDS) v2を確認しました。
目次
実行確認
デフォルトで使えるのでひとまず実行確認してみました。
ユーザーガイドインスタンスメタデータサービスの設定記載のとおりに実行しました。
トークンをPUTリクエストを発行して、
実行する。
トークンは期限切れになったら再利用できないし、EC2インスタンスごとに個別発行ですと。
パブリックIPアドレスももちろん取得できました。
IMDSv2のメリット
Add defense in depth against open firewalls, reverse proxies, and SSRF vulnerabilities with enhancements to the EC2 Instance Metadata Serviceを日本語翻訳すると、こんなことが書いてありました。
- オープンなサードパーティWAFからの保護
設定次第では、脆弱性のあるサードパーティWAFでは、IMDSv1のようなGETリクエストが実行されてしまう可能性があるそうです。
なので、サードパーティWAFのほとんどがサポートしないPUTリクエストでトークンを取得することで保護できると。 -
オープンリバースプロキシからの保護
Apache httpdやSquidなどのオープンリバースプロキシも誤った設定によってIMDSv1のようなGETリクエストが実行される可能性があるとのことです。
オープンリバースプロキシが通常送信するX-Forwarded-ForHTTPヘッダーを含んでいた場合、IMDSv2はトークン発行しないとのことです。 -
SSRF脆弱性からの保護
PUTリクエストでトークンを発行して、そのトークンを使ってリクエストを実行するという方法が、SSRF脆弱性の大部分から保護することができるとのことです。 -
オープンレイヤー3ファイアウォールおよびNATからの保護
EC2インスタンスがオープンルーター、レイヤー3ファイアウォール、VPN、トンネル、またはNATデバイスとして誤って構成されている場合に、インスタンス外にパケットが転送される場合があります。
IMDSv2の応答はTTL0なので、インスタンスを離れる前に応答が破棄されるとのことです。
IMDSv1の実行状況確認
CLIやSDKはIAMロールの認証情報はv2で取得がデフォルトになっているとのことです。
該当のEC2インスタンスでは、Systems Managerエージェント、CloudWatch LogsやS3へのアップロードとかが実行されているので、IMDSv1を無効化して問題が発生しては困ります。
IMDSv2のリリースに伴って、IMDSv1の使用状況がメトリクスに追加されていました。
さすが、気が効いてますね。
過去1週間で7/31に9回実行されてますが、それ以外はないです。
きっと問題ないです。
IMDSv1の無効化設定
既存の起動中インスタンスは、コンソールには変更メニューがなく、CLIからのみ実行可能なようです。
設定後、curlコマンドで確認したらエラーも何もなく、何もレスポンスがありませんでした。
起動テンプレートも変更して、WordPress、プラグインのアップデートしてBlue/Greenデプロイの要領でデプロイ完了しました。
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。


開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
SendGridのイベントをAPI Gateway -> Lambda(Python) -> DynamoDBに格納する
SendGridのメールイベントログはコンソールで確認出来るのは直近7日分で一括 …
-
-
AWSアカウントのルートユーザーのセキュリティ認証情報
アカウント作成時にはMFA設定するためにIAMダッシュボードからアクセスするので …
-
-
AWS CLIからIAM Identity CenterへサインインしてCodeCommitのリポジトリを使用する
Macで操作しました。 AWS CLIバージョンアップ [crayon-685a …
-
-
AWS Transfer Family S3向けのSFTP対応サーバー
S3バケットは作成済です。 IAMロールの作成 [crayon-685afe56 …
-
-
Amazon SES(Simple Email Service)でメール受信時のアクションでLambdaを実行して渡されるデータを見てみる
Amazon SESで受信したメールをS3に保存して、S3のトリガーでLambd …
-
-
AWS LambdaでS3 Select
RDSスナップショットをS3にエクスポートした、Parquetフォーマットのデー …
-
-
AWS CodeStarで静的webサイトのテンプレートプロジェクトを作成する
執筆環境の検討中です。 CodeCommitは使うつもりで、コミットしたときにE …
-
-
Systems Manager セッションマネージャアクセスのCloud9(SSHなし)
作成画面 いつからできるようになっていたのか気づいてなかったのですが、Cloud …
-
-
AWS Backupで取得したAMIとスナップショットの削除
個人で使っているAWSリソースの断捨離をしてました。 Cloud9も複数アカウン …
-
-
AWS BatchでPandocコンテナイメージを実行する
「ECR(Amazon Elastic Container Registry)に …