MENU
      Metadata v2 を使用する

        Metadata v2 を使用する


        記事の要約

        VPC環境で利用できます。

        概要

        Metadata v1の SSRF脆弱性を補うために、Metadata v2方式の呼び出し方式を使用できます。

        • Metadata v1 - リクエスト/レスポンス方式
        • Metadata v2 - セッション指向方式

        サーバインスタンスの設定によって v1、v2方式をすべて使用するか、v2方式のみを使用するように変更できます。

        Metadata v1 のセキュリティ脆弱性

        Metada v1方式を使用可能なサーバインスタンスでサービスを運用したり、ソフトウェアを駆動する場合、
        meta data(serverorrole data)の露出を防ぐための追加措置や注意が必要になることがあります。
        もし運用中のサービスに SSRF脆弱性が存在し、これを認知していない場合、外部からサーバインスタンスの Metadata APIを呼び出して
        meta dataを取得できます。
        このようなセキュリティ脆弱性をブロックするためには、サーバインスタンスの Metadataバージョン設定を v2のみ使用できるように変更する必要があります。
        Metadata v2方式は PUTメソッドを通じてトークンを発行し、Metadata API呼び出しに対してトークン認証を行い、
        SSRF脆弱性による meta dataの露出を保護できます。

        サーバインスタンスの Metadataバージョン設定

        サーバインスタンス作成後、コンソールによる設定変更のみ可能です。

        1. サーバコンソールへアクセス [Services > Compute > Server]
        2. [サーバ管理および設定変更 > Metadata API管理] メニューを通じてバージョンを選択
        • v1および v2
          • v1、v2バージョンすべて使用可能
          • Metadata API呼び出し時、トークンヘッダ伝達有無によって v1、v2方式を区分
          • トークンヘッダを入力しない場合、認証手続きなしでリクエストを実行
          • トークンヘッダ入力時に伝達されたヘッダ値の認証を含めてリクエストを実行
        • v2(トークン必須)
          • v2バージョンのみ使用可能
          • Metadata API呼び出し時にトークンヘッダ値を必ず入力

        • Header
          • X-NCP-METADATA-TOKEN-TTL-SECONDS: トークン発行時のセッション期間(秒)を設定するためのヘッダ(1~21600秒)
          • X-NCP-METADATA-TOKEN: Metadata API呼び出し時に発行されたトークンを伝達するためのヘッダ

        別途コマンド

        [roor@test-server ~]# TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-NCP-METADATA-TOKEN-TTL-SECONDS: 21600"`
        Shell
        [root@test-server ~]# curl -H "X-NCP-METADATA-TOKEN: $TOKEN" http://169.254.169.254/latest/meta-data
        Shell

        結合コマンド

        [root@test-server ~]# TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-NCP-METADATA-TOKEN-TTL-SECONDS: 21600"` \
        && curl -H "X-NCP-METADATA-TOKEN: $TOKEN" http://169.254.169.254/latest/meta-data
        Shell


        参考
        トークンが正常に発行されていない場合、エラーメッセージが変数に保存されることがあります。
        この場合、Metadata API呼び出しが正常に動作しません。

        認証のエラーレスポンス

        [root@test-server ~]# curl -H "X-NCP-METADATA-TOKEN: wrong-token" -i http://169.254.169.254/latest/meta-data
        HTTP/1.1 401 401
        Date: Tue, 11 Apr 2023 02:42:02 GMT
        Server: Apache
        Referrer-Policy: unsafe-url
        Connection: close
        Transfer-Encoding: chunked
        Content-Type: text/plain;charset=UTF-8
        
        Unauthorized.
        [root@test-server ~]#
        Shell

        この記事は役に立ちましたか?

        Changing your password will log you out immediately. Use the new password to log back in.
        First name must have atleast 2 characters. Numbers and special characters are not allowed.
        Last name must have atleast 1 characters. Numbers and special characters are not allowed.
        Enter a valid email
        Enter a valid password
        Your profile has been successfully updated.