ヤマムギ

growing hard days.

*

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デプロイの要領でデプロイ完了しました。


最後までお読みいただきましてありがとうございました!

【PR】 「AWS認定試験対策 AWS クラウドプラクティショナー」という本を書きました。

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

【PR】 「ポケットスタディ AWS認定 デベロッパーアソシエイト」という本を書きました。

 - AWS ,

ad

ad

  関連記事

Elastic BeanstalkでflaskアプリケーションデプロイのチュートリアルをCloud9で

Elastic Beanstalk への flask アプリケーションのデプロイ …

EC2スケジュールリザーブドインスタンスって終わりましたん?

ユーザーガイドのScheduled Reserved Instancesを見ると …

AWS Transit GatewayのVPCアタッチメント

構成 これぐらいの構成なら、VPCピアリングでいいのですが、Transit Ga …

東京リージョンの1つのAZ(apne1-az2)でt3.nanoスポットインスタンスが拒否されちゃいました

拒否されちゃいました ちょっとした検証をしようとしてて、t3.nanoのスポット …

EC2 Windows インスタンス PowerShellでメタデータを見る

Linuxインスタンスならcurlコマンドで確認すればいいのですが、Window …

EC2インスタンスプロファイルによってAssumeRoleされた認証情報の有効期限は短くできるのでしょうか

「EC2インスタンスプロファイルによってAssumeRoleされた認証情報の有効 …

AWS KMSマルチリージョンキーを確認しました

2021年6月にKMS マルチリージョンキーがリリースされました。 マルチリージ …

CloudFormation StackSetsでOrganizations組織のアカウントに一気にIAMロールを作成した

Organizationsで管理している各アカウントにIAMロールを作成したい場 …

EC2 Linux ユーザーデータ実行ユーザーとカレントディレクトリの確認

きっと、rootなんだろうなあと認識してたのですが、自分の目で確認したことはなか …

2017年、このブログ(WordPress(Amazon EC2 + RDS))で対応してきたこと

Amazon Web Services Advent Calendar 2017 …