インスタンスからのメタデータへのアクセス
多くの場合、実行中のインスタンスからメタデータを収集し、それを使用して別の仮想サーバーインスタンスを起動します。 メタデータ・サービスを有効化し、インスタンス 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 を解析して、ユーザー・データを取得します。 |
インスタンスからメタデータにアクセスするためのエンドツーエンドの手順
実行中のインスタンスを見つけ、コンソールでメタデータサービスを有効にする
-
IBM Cloud コンソールで、 Navigation メニューアイコン
> Infrastructure
> Compute > Virtual server instances をクリックします。
-
実行中のインスタンスをリストで探す。 インスタンス名をクリックすると詳細が表示されます。 概要」タブで「 詳細設定」の詳細までスクロールし、トグルをクリックしてメタデータサービスを有効にする。
-
インスタンスがすでにフローティングIPアドレスを持っている場合([Networking]タブに表示)、そのアドレスを使用してサーバーへのセキュアな接続を確立します。 フローティングIPアドレスがない場合は、割り当ててください。 詳細については、仮想サーバーインスタンスの作成トピックの 次の 手順を参照してください。
実行中のインスタンスを見つけ、CLIからメタデータ・サービスを有効にする
-
IBM Cloud CLIにログインする。
-
実行中のインスタンスを見つけるには、
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 プロファイルでサポートされます。
-
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
-
メタデータ・サービスを有効にするには、
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
-
インスタンスがすでにフローティングIPアドレスを持っている場合は、そのアドレスを使用してサーバーへのセキュアな接続を確立する。 フローティングIPアドレスがない場合は、割り当ててください。 詳細については、仮想サーバーインスタンスの作成トピックの 次の 手順を参照してください。
実行中のインスタンスを見つけ、APIでメタデータサービスを有効にする
-
リージョン内で 利用可能なインスタンスをリストアップして、実行中のインスタンスを見つけます。 レスポンスからインスタンスIDを選択する。
curl -X GET "$vpc_api_endpoint/v1/instances?version=2025-05-13&generation=2" -H "Authorization: Bearer $iam_token"
-
選択したインスタンスの情報を取得 し、メタデータ・サービスが有効かどうかを確認する。
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 } . . . }
-
メタデータ・サービスを有効にするには、インスタンスに対して
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 } }`
-
インスタンスがすでにフローティングIPアドレスを持っている場合は、そのアドレスを使用してサーバーへのセキュアな接続を確立する。 フローティングIPアドレスがない場合は、割り当ててください。 詳細については、 インスタンスへのログインを 参照してください。
仮想サーバーインスタンスへのセキュアな接続の確立
次の例は、 Linux-ベースのサーバー・インスタンスに接続するために使用するコマンド構文を示している。
ssh -i <path to your private key file> <default-user-account>@<floating ip address>
サーバーがWindows OSを実行している場合は、RDPクライアントを使用する。
詳しくは、Linux インスタンスへの接続または Windows インスタンスへの接続を参照してください。
メタデータ・サービスからの情報収集
-
仮想サーバーインスタンスからメタデータトークンサービスにリクエストを行い、インスタンス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
をインストールするか、お好みの他のパーサーを使用する必要があるかもしれません。 -
これで、メタデータ・サービスに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 キーやユーザーデータなどの情報が含まれます。 パスワードを構成した場合は、その情報も返されます。
-
他のAPIメソッドを使用して、ボリュームやネットワーク・アタッチメントなどのインスタンスに関する詳細情報を取得したり、SSHキー、配置グループ、仮想ネットワーク・インターフェースに関する情報を収集したりする。 詳細については、 メタデータ・サービスAPI リファレンスおよび インスタンス・メタデータ・サービス情報の 概要を参照してください。
次のステップ
インスタンスのトラステッド・プロファイルを使用して、インスタンス識別アクセス・トークンから他の IAM 対応サービスに対する IAM トークンを生成します。 トラステッド・プロファイルを使用した IAM 対応サービスの呼び出しを参照してください。