IBM Cloud Docs
インスタンスからのメタデータへのアクセス

インスタンスからのメタデータへのアクセス

多くの場合、実行中のインスタンスからメタデータを収集し、それを使用して別の仮想サーバーインスタンスを起動します。 メタデータ・サービスを有効化し、インスタンス ID アクセストークンを作成し、メタデータにアクセスするための一般的な手順とステップバイステップの説明を確認します。

インスタンス・メタデータにアクセスするための一般的な手順

表 1 では、インスタンス・メタデータへのアクセスに関連するステップについて説明します。 この情報では、各ステップのコンテキスト、およびステップを完了するための特定の情報へのリンクを提供します。 実際の環境では、ステップ3~5はインスタンスの初期化ソフトウェアがスタートアップ時に開始するか、cloud-initを使用して開始する可能性が高い。

インスタンス・メタデータにアクセスするための一般的な手順
手順 context 呼び出されるサービス ユーザー・アクション
1 IBM Cloud VPC UI、CLI、API デフォルトでは、メタデータ・サービスは無効になっています。 コンソール、CLI、またはAPIを使用して、既存のインスタンスでメタデータサービスを有効にできます。 インスタンスの作成時に、お客様のユーザー・データが指定されます。
2 IBM Cloud
通常のスタートアップ操作を使用してインスタンスにサインオンします。
3 VPC インスタンス メタデータ・サービス curl コマンドを実行してメタデータ・トークン・サービスを呼び出し、 インスタンス ID アクセストークンを取得 します。
4 VPC インスタンス メタデータ・サービス curl コマンドを実行してメタデータ・サービスを呼び出し、 インスタンス情報を取得する。 前のステップで取得したトークンが渡され、メタデータが返されます。
5 VPC インスタンス
前のステップで返された JSON を解析して、ユーザー・データを取得します。

インスタンスからメタデータにアクセスするためのエンドツーエンドの手順

実行中のインスタンスを見つけ、コンソールでメタデータサービスを有効にする

  1. IBM Cloud コンソールでNavigation メニューアイコン メニューアイコン > Infrastructure VPC アイコン > Compute > Virtual server instances をクリックします。

  2. 実行中のインスタンスをリストで探す。 インスタンス名をクリックすると詳細が表示されます。 概要」タブで「 詳細設定」の詳細までスクロールし、トグルをクリックしてメタデータサービスを有効にする。

  3. インスタンスがすでにフローティングIPアドレスを持っている場合([Networking]タブに表示)、そのアドレスを使用してサーバーへのセキュアな接続を確立します。 フローティングIPアドレスがない場合は、割り当ててください。 詳細については、仮想サーバーインスタンスの作成トピックの 次の 手順を参照してください。

実行中のインスタンスを見つけ、CLIからメタデータ・サービスを有効にする

  1. IBM Cloud CLIにログインする。

  2. 実行中のインスタンスを見つけるには、 ibmcloud is instances コマンドを使用します。このコマンドは、リージョン内で利用可能なインスタンスを一覧表示します。

    $ ibmcloud is instances
    Listing instances in all resource groups and region us-south under account Test Account as user test.user@ibm.com...
    ID                                          Name                    Status    Reserved IP    Floating IP      Profile    Image                                VPC                         Zone         Confidential Compute Mode   Enable Secure Boot   Resource group   Reservation Name   Cluster Network ID   Cluster Network Name   Cluster Network Attachments   
    0717_9c55d9d2-0685-4300-b475-49eb1b8c1faf   my-virtual-server-1     running   10.240.0.6     -                bx2-2x8    ibm-ubuntu-24-04-2-minimal-amd64-1   my-test-vpc                 us-south-1   disabled                    false                defaults         -                  -                    -                      -   
    0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6   my-virtual-server-2     running   10.240.64.11   169.47.94.48     bx2-2x8    ibm-ubuntu-24-04-6-minimal-amd64-3   my-test-vpc                 us-south-2   disabled                    false                defaults         -                  -                    -                      -   
    0727_d7ff31ef-75ed-42c6-b0fb-a5837a63d722   my-virtual-server-3     running   10.240.64.12   52.116.204.232   bx2-2x8    ibm-redhat-9-2-minimal-amd64-5       my-test-vpc                 us-south-2   disabled                    false                defaults         -                  -                    -                      -   
    

    メタデータ・サービスは、すべてのストック・イメージ、カスタム・イメージ、および CPU プロファイルでサポートされます。

  3. ibmcloud is instance コマンドを実行して、メタデータ・サービスが有効になっているかどうかを確認する。 次の例では、値 false を示している。

    $ ibmcloud is instance 0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6
    Getting instance 0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6 under account Test Account as user test.user@ibm.com...
    
    ID                                    0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6   
    Name                                  my-virtual-server-2   
    CRN                                   crn:v1:bluemix:public:is:us-south-2:a/a1234567::instance:0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6   
    Status                                running   
    Availability policy on host failure   restart   
    Confidential Compute Mode             disabled   
    Enable Secure Boot                    false   
    Startable                             true   
    Profile                               bx2-2x8   
    Architecture                          amd64   
    vCPU Manufacturer                     intel   
    vCPUs                                 2   
    Memory(GiB)                           8   
    Bandwidth(Mbps)                       4000   
    Volume bandwidth(Mbps)                1000   
    Network bandwidth(Mbps)               3000   
    Lifecycle Reasons                     Code   Message      
                                          -      -      
    
    Lifecycle State                       stable   
    Metadata service                      Enabled   Protocol   Response hop limit      
                                          false     http       1      
    
    Image                                 ID                                          Name      
                                          r006-aa2af291-45b3-4f18-801c-8b7985e928f7   ibm-ubuntu-24-04-6-minimal-amd64-3      
    
    Numa Count                            1   
    VPC                                   ID                                          Name      
                                          r006-01030e3c-2663-4f7d-ac55-651929dafe37   my-test-vpc      
    
    Zone                                  us-south-2   
    Resource group                        ID                                 Name      
                                          6edefe513d934fdd872e78ee6a8e73ef   defaults      
    
    Created                               2025-03-06T19:24:02+00:00   
    Network Attachments                   Interface   Name   ID                                          Subnet         Subnet ID                                   Floating IP    VNI                                         Reserved IP      
                                          Primary     eth0   0727-a3ff4d3e-be95-4a52-8025-b55b3c3285ea   my-subnet-01   0727-f24237f5-bdf0-4b94-ab4c-167a44b8bcb5   169.47.94.48   0727-dda9244a-64b9-421b-87e9-70549a70b4c3   10.240.64.11      
    
    Boot volume                           ID                                          Name                                Attachment ID                               Attachment name      
                                          r006-9afd6e01-0466-4e7b-a38b-75bf39469a42   eat-client-poc-boot-1741289020000   0727-241f39a8-3573-4ebc-b512-33508eb970c9   undaunted-starved-slander-galleria      
    
    Reservation Affinity Policy           automatic   
    Reservation Affinity Pool             -   
    Reservation                           -   
    Health State                          ok   
    
  4. メタデータ・サービスを有効にするには、 ibmcloud is instance-update コマンドに --metadata-service true オプションを付けて実行します。

    $ ibmcloud is instance-update  0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6 --metadata-service true
    Updating instance 0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6 under account Test Account as user test.user@ibm.com...
    
    ID                                    0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6   
    Name                                  my-virtual-server-2   
    CRN                                   crn:v1:bluemix:public:is:us-south-2:a/a1234567::instance:0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6   
    Status                                running   
    Availability policy on host failure   restart   
    Confidential Compute Mode             disabled   
    Enable Secure Boot                    false   
    Startable                             true   
    Profile                               bx2-2x8   
    Architecture                          amd64   
    vCPU Manufacturer                     intel   
    vCPUs                                 2   
    Memory(GiB)                           8   
    Bandwidth(Mbps)                       4000   
    Volume bandwidth(Mbps)                1000   
    Network bandwidth(Mbps)               3000   
    Lifecycle Reasons                     Code   Message      
                                          -      -      
    
    Lifecycle State                       stable   
    Metadata service                      Enabled   Protocol   Response hop limit      
                                          true      http       1      
    
    Image                                 ID                                          Name      
                                          r006-aa2af291-45b3-4f18-801c-8b7985e928f7   ibm-ubuntu-24-04-6-minimal-amd64-3      
    
    Numa Count                            1   
    VPC                                   ID                                          Name      
                                          r006-01030e3c-2663-4f7d-ac55-651929dafe37   my-test-vpc      
    
    Zone                                  us-south-2   
    Resource group                        ID                                 Name      
                                          6edefe513d934fdd872e78ee6a8e73ef   defaults      
    
    Created                               2025-03-06T19:24:02+00:00   
    Network Attachments                   Interface   Name   ID                                          Subnet              Subnet ID                                   Floating IP    VNI                                         Reserved IP      
                                          Primary     eth0   0727-a3ff4d3e-be95-4a52-8025-b55b3c3285ea   my-subnet-01   0727-f24237f5-bdf0-4b94-ab4c-167a44b8bcb5   169.47.94.48   0727-dda9244a-64b9-421b-87e9-70549a70b4c3   10.240.64.11      
    
    Boot volume                           ID                                          Name                                Attachment ID                               Attachment name      
                                          r006-9afd6e01-0466-4e7b-a38b-75bf39469a42   eat-client-poc-boot-1741289020000   0727-241f39a8-3573-4ebc-b512-33508eb970c9   undaunted-starved-slander-galleria      
    
    Reservation Affinity Policy           automatic   
    Reservation Affinity Pool             -   
    Reservation                           -   
    Health State                          ok
    
  5. インスタンスがすでにフローティングIPアドレスを持っている場合は、そのアドレスを使用してサーバーへのセキュアな接続を確立する。 フローティングIPアドレスがない場合は、割り当ててください。 詳細については、仮想サーバーインスタンスの作成トピックの 次の 手順を参照してください。

実行中のインスタンスを見つけ、APIでメタデータサービスを有効にする

  1. リージョン内で 利用可能なインスタンスをリストアップして、実行中のインスタンスを見つけます。 レスポンスからインスタンスIDを選択する。

    curl -X GET "$vpc_api_endpoint/v1/instances?version=2025-05-13&generation=2" -H "Authorization: Bearer $iam_token"
    
  2. 選択したインスタンスの情報を取得 し、メタデータ・サービスが有効かどうかを確認する。

    curl -X GET "$vpc_api_endpoint/v1/instances/0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6?version=2025-05-13&generation=2" -H "Authorization: Bearer $iam_token"
    

    APIレスポンスには、 metadata_service セクションに "enabled": false と表示されている。

    {
     "availability_policy": {
         "host_failure": "restart",
         "host_maintenance": null
     },
     "bandwidth": 4000,
     "boot_volume_attachment": {
         "device": {
             "id": "0727-241f39a8-3573-4ebc-b512-33508eb970c9-mzpzd"
         },
         "href": "https://us-south.iaas.cloud.ibm.com/v1/instances/0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6/volume_attachments/0727-241f39a8-3573-4ebc-b512-33508eb970c9",
         "id": "0727-241f39a8-3573-4ebc-b512-33508eb970c9",
         "name": "undaunted-starved-slander-galleria",
         "volume": {
             "crn": "crn:v1:bluemix:public:is:us-south-2:a/a1234567::volume:r006-9afd6e01-0466-4e7b-a38b-75bf39469a42",
             "href": "https://us-south.iaas.cloud.ibm.com/v1/volumes/r006-9afd6e01-0466-4e7b-a38b-75bf39469a42",
             "id": "r006-9afd6e01-0466-4e7b-a38b-75bf39469a42",
             "name": "eat-client-poc-boot-1741289020000",
             "resource_type": "volume"
         }
     },
     "confidential_compute_mode": "disabled",
     "created_at": "2025-03-06T19:24:02.000Z",
     "crn": "crn:v1:bluemix:public:is:us-south-2:a/a1234567::instance:0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6",
     "disks": [],
     "enable_secure_boot": false,
     "health_reasons": [],
     "health_state": "ok",
     "href": "https://us-south.iaas.cloud.ibm.com/v1/instances/0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6",
     "id": "0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6",
     "image": {
         "crn": "crn:v1:bluemix:public:is:us-south:a/a1234567::image:r006-aa2af291-45b3-4f18-801c-8b7985e928f7",
         "href": "https://us-south.iaas.cloud.ibm.com/v1/images/r006-aa2af291-45b3-4f18-801c-8b7985e928f7",
         "id": "r006-aa2af291-45b3-4f18-801c-8b7985e928f7",
         "name": "ibm-ubuntu-24-04-6-minimal-amd64-3",
         "resource_type": "image"
     },
     "lifecycle_reasons": [],
     "lifecycle_state": "stable",
     "memory": 8,
     "metadata_service": {
         "enabled": false,
         "protocol": "http",
         "response_hop_limit": 1
     }
     .
     .
     .
    }
    
  3. メタデータ・サービスを有効にするには、インスタンスに対して PATCH /instances インスタンスにリクエストする。

    curl -X PATCH "$vpc_api_endpoint/v1/instances/0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6?version=2025-05-13&generation=2" \
    -H "Authorization: Bearer $iam_token" \
    -d '{
         "metadata_service": {
            "enabled": true,
            "protocol": "http",
            "response_hop_limit": 1
            }
        }`    
    
  4. インスタンスがすでにフローティングIPアドレスを持っている場合は、そのアドレスを使用してサーバーへのセキュアな接続を確立する。 フローティングIPアドレスがない場合は、割り当ててください。 詳細については、 インスタンスへのログインを 参照してください。

仮想サーバーインスタンスへのセキュアな接続の確立

次の例は、 Linux-ベースのサーバー・インスタンスに接続するために使用するコマンド構文を示している。

ssh -i <path to your private key file> <default-user-account>@<floating ip address>

サーバーがWindows OSを実行している場合は、RDPクライアントを使用する。

詳しくは、Linux インスタンスへの接続または Windows インスタンスへの接続を参照してください。

メタデータ・サービスからの情報収集

  1. 仮想サーバーインスタンスからメタデータトークンサービスにリクエストを行い、インスタンスIDアクセストークンを取得します。 トークンの有効期間を指定します。 例えば、3600秒(1時間)を指定することができる。

    export instance_identity_token=`curl -X PUT "http://api.metadata.cloud.ibm.com/instance_identity/v1/token?version=2024-11-12"\
      -H "Metadata-Flavor: ibm"\
      -H "Accept: application/json"\
      -d '{
            "expires_in": 3600
          }' | jq -r '(.access_token)'`
    

    応答はインスタンス ID アクセストークンを提供します。 パーサーはそれを .access_token ファイルに保存する。

    この例では、 jq をパーサーとして使用しています。 jq は、 MIT ライセンスの 下でライセンスされたサードパーティツールです。インスタンスの作成時に利用可能なすべての VPC イメージにプリインストールされているとは限りません。 使用する前に jq をインストールするか、お好みの他のパーサーを使用する必要があるかもしれません。

  2. これで、メタデータ・サービスにAPIリクエストを行い、初期化情報を収集することができる:

    curl -X GET "http://api.metadata.cloud.ibm.com/metadata/v1/instance/initialization?version=2024-11-12"\
       -H "Accept: application/json"\
       -H "Authorization: Bearer $instance_identity_token"\
       | jq -r
    

    API レスポンスには、仮想サーバーのプロビジョニング時に指定した SSH キーやユーザーデータなどの情報が含まれます。 パスワードを構成した場合は、その情報も返されます。

  3. 他のAPIメソッドを使用して、ボリュームやネットワーク・アタッチメントなどのインスタンスに関する詳細情報を取得したり、SSHキー、配置グループ、仮想ネットワーク・インターフェースに関する情報を収集したりする。 詳細については、 メタデータ・サービスAPI リファレンスおよび インスタンス・メタデータ・サービス情報の 概要を参照してください。

次のステップ

インスタンスのトラステッド・プロファイルを使用して、インスタンス識別アクセス・トークンから他の IAM 対応サービスに対する IAM トークンを生成します。 トラステッド・プロファイルを使用した IAM 対応サービスの呼び出しを参照してください。