身分操作

您可以使用元資料服務從元資料服務取得身分存取標記、產生 IAM 存取標記,以及建立身分證書。 這些憑證和授權證書可用於存取元資料服務,以呼叫啟用 IAM 的服務,並在檔案共用與虛擬伺服器執行個體之間建立加密連線。

身分存取標記

身分識別存取憑證可作為存取 IBM Cloud® 上的「元資料」及「VPC 身分識別」服務所需的安全憑證。 它是一個經過簽署的令牌,具有一組基於實體資訊和令牌請求中傳遞的資訊的主張。 使用身分存取憑證功能的最低版本日期為 2022-03-01

實例與元數據服務之間的通訊始終在主機內部進行。 您從實例內部取得代幣。 如果在您的實例上啟用了對元資料服務的安全存取,請使用「https」協定,而不是「http」協定。

若要取得身分標記,請向 Metadata 服務 API 提出 PUT /identity/v1/token 請求。

若您目前使用的是 /instance_identity/v1/token 方法,且希望採用 API 發行版本 2025-08-26 或更新版本,請參閱遷移指南中所述的變更事項:更新至 2025-08-26 版本的 VPC Identity API

curl -X PUT "https://api.metadata.cloud.ibm.com/identity/v1/token?version=2025-08-26" -H "Metadata-Flavor: ibm" -d '{}'

在請求中,您可以指定令牌的到期時間。 預設到期值為 5 分鐘,但您可以指定 5 秒至 1 小時之間的任何值。 請參閱以下已啟用安全存取的主機範例。 在下一個範例中,代用幣的到期時間指定為一小時。

curl -X PUT "https://api.metadata.cloud.ibm.com/identity/v1/token?version=2025-08-26" -H "Metadata-Flavor: ibm" -d '{"expires_in": 3600}'

API 回應包含身分存取標記。 使用此標記存取元資料服務。

以下 JSON 回應會顯示身分存取權標的字元串、建立日期和時間、過期日期和時間,以及您設定的過期時間。 此記憶體在 5 分鐘後失效。

{
  "access_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IlZTSS1DUl91cy1lYXN0X2I5...",
  "created_at": "2025-06-10T11:08:39.363Z",
  "expires_at": "2025-06-10T11:13:39.363Z",
  "expires_in": 300
}

或者,您也可以使用以下指令:

identity_token=`curl -X PUT "https://api.metadata.cloud.ibm.com/identity/v1/token?version=2025-08-26"\
  -H "Metadata-Flavor: ibm"\
  -d '{
        "expires_in": 3600
      }' | jq -r '(.access_token)'`

在下面的範例中,cURL 指令的回傳值是身分存取權標。 jq 會擷取這個 token,並放入 identity_token 環境變數中。

identity_token=`curl -X PUT "https://api.metadata.cloud.ibm.com/identity/v1/token?version=2025-08-26"\
  -H "Metadata-Flavor: ibm"\
  -d '{
        "expires_in": 3600
      }' | jq -r '(.access_token)'`

jq jq 可能不會預先安裝在您建立實體時可用的所有 VPC 映像上 您可能需要在使用前安裝 jq 或使用您選擇的其他解析器。

您可以在 GET 對元資料服務的呼叫中指定 identity_token 變數,以調用其中一個元資料方法。 如需詳細資訊,請參閱 從執行中的實體擷取元資料

您也可以從此身分令牌產生 IAM 令牌,並使用 VPC API 來呼叫啟用 IAM 的服務。 如需詳細資訊,請參閱 從身分存取令牌產生 IAM 令牌

從身分存取令牌產生 IAM 令牌

若要存取 IBM Cloud 帳戶中啟用 IAM 的服務,您可以從身分存取代碼和受信任的設定檔產生 IAM 代碼。 產生 IAM 令牌後,您可以使用它存取啟用 IAM 的服務,例如 IBM Cloud Object Storage、雲端資料庫服務和 VPC API。 您可以多次重複使用代用幣。

提出 POST /identity/v1/iam_tokens 請求,並指定受信任設定檔的 ID。 此請求使用身分存取令牌和與虛擬伺服器實體連結的可信設定檔來產生 IAM 存取令牌。 受信任的設定檔可以在您建立實體時連結,或是在請求體中提供。

用來傳遞身分存取權杖和產生 IAM 權杖的 IAM API 已被廢棄。 Beta 版使用者必須轉移到元資料服務 API,才能使用 POST /identity/v1/iam_tokens 產生 IAM 令牌。

要求範例:

iam_token=`curl -X POST "$vpc_metadata_api_endpoint/identity/v1/iam_tokens?version=2025-10-14" \
-H "Authorization: Bearer $identity_token" \
-d '{
      "trusted_profile": {
        "id": "Profile-8dd84246-7df4-4667-94e4-8cede51d5ac5"
      }
    }'| jq -r '(.access_token)'`

JSON 回應會顯示 IAM 令牌。

{
  "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0aGVfYmVzdCI6I8...",
  "created_at": "2025-06-10T14:10:15Z",
  "expires_at": "2025-06-10T15:10:15Z",
  "expires_in": 3600
}

有關可信設定檔的詳細資訊,請參閱 使用可信設定檔呼叫啟用 IAM 的服務

使用身分存取標記產生身分證書

要在虛擬伺服器實體和 IBM Cloud® File Storage for VPC 共用之間的傳輸中成功啟用和使用加密,需要身分證書。 若要為實體產生身分證書,請使用身分存取標記和證書簽章請求 (CSR) 來呼叫 POST /identity/v1/certificates

您可從開源命令列工具包中取得憑證簽署請求(CSRs)。OpenSSL

  1. 以下指令會使用 openssl 產生證書簽章請求 (CSR) 和 RSA 金鑰對。 執行指令時,請將 '/C=US' 中的國家代碼 US 替換為您的兩位數國家代碼。

    openssl req -sha256 -newkey rsa:4096 -subj '/C=US' -out ./sslcert.csr -keyout file.key -nodes
    

    如果您使用不同的軟體來建立 CSR,可能會提示您輸入位置資訊,例如國家代碼 (C)、州 (ST)、地區 (L)、您的組織名稱 (O) 和組織單位 (OU)。 可以使用任何一個命名屬性。 任何其他命名屬性,例如通用名稱,均不被接受。 指定了 Common Name 的 CSR 會被拒絕,因為當您向 Metadata API 提出請求時,系統會將實體 ID 值套用到身分證書的主題 Common Name 上。 帶有延展的 CSR 也會被拒絕。

  2. 在向元數據服務發出 API 呼叫前,請使用以下指令格式化 CSR:

    awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' sslcert.csr
    

然後,您就可以向 Metadata 服務提出 API 請求。 請參閱下列範例。 csr 欄位為必填項目。 expires_in 的值為可選項。 到期的預設值是 3600,等於 1 小時。

curl -X POST "$vpc_metadata_api_endpoint/identity/v1/certificates?version=2024-11-12" \
 -H "Authorization: Bearer $identity_token" \
 -d '{ "csr": "-----BEGIN CERTIFICATE REQUEST-----\nMIICnTCCAYUCAQAwWDELMAkGA1UEBhMCVVMxEjAQBgNVBAgMCU1pbm5lc290YTES\nMBAGA1UEBwwJUm9jaGVzdGVyMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0\neSBMdGQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYBvW12cKEkRUu\nyPScs7Xjwu/m+W8pZSQf9wrBa7DBVLFCdh440xOuSnIbsm+BNgYz4wL6/8la+N/K\nff06CdEwy9HLhPYc2z62tECxOBhI1G9gnsRUwb6WHNY71VulZs+37/9Mgd/eQy2n\nKHULNEU7sjNpLYoguKX8GRV3etKDp3tlFQmB6cNGOAgB3aQDmhdAh7K6oftesm0R\n8C7nmFA4SSjaI+855JxoxadlB2cCA5boaQ2gNO6YhYbtuTrMicQb0MTlZmacqzqP\nAxXWD3yFmAuUCpa2tBFBsavSW/kc52m4ldcO60U6hARvOxcXDqrbwu8r1ieY+tcZ\ncqjjBi99AgMBAAGgADANBgkqhkiG9w0BAQsFAAOCAQEAgAqWjtH3yAsX8QfTa9Pv\n3kktYFQKFsBzntmFDdIrOkeGayWRCuSG06f3sHWH0RuGkpq1x/4bedjcyyNVSna7\nxYX6kPOQX5iqf9pISD7A0XIkfS6XAos7gOh/jadjtxSwPCkuztSqIPKObH9OClAE\nU1fYDEtZCaZxsUdLwWJwOzbsivT97g1UVnbJAEzAJrqyaV4cUbv/w/slytHF+GAg\nNoUvPD8NGOQ+VzuI2oQuK515cyHO1SXrJyvkEVwRVVr3SoasqqWIQRrIv6zgzgik\nLN+uQxpzL1EeTB8qKy7xjymo2y1PbmaZzVNQNaBnxJfLE522pfW69evBRJ1qhrby\nTQ==\n-----END CERTIFICATE REQUEST-----\n"}'

或者,您也可以使用以下指令:

curl -X POST "$vpc_metadata_api_endpoint/identity/v1/certificates?version=2025-08-26" \
 -H "Authorization: Bearer $identity_token" \
 -d '{ "csr": "-----BEGIN CERTIFICATE REQUEST-----\nMIICnTCCAYUCAQAwWDELMAkGA1UEBhMCVVMxEjAQBgNVBAgMCU1pbm5lc290YTES\nMBAGA1UEBwwJUm9jaGVzdGVyMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0\neSBMdGQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYBvW12cKEkRUu\nyPScs7Xjwu/m+W8pZSQf9wrBa7DBVLFCdh440xOuSnIbsm+BNgYz4wL6/8la+N/K\nff06CdEwy9HLhPYc2z62tECxOBhI1G9gnsRUwb6WHNY71VulZs+37/9Mgd/eQy2n\nKHULNEU7sjNpLYoguKX8GRV3etKDp3tlFQmB6cNGOAgB3aQDmhdAh7K6oftesm0R\n8C7nmFA4SSjaI+855JxoxadlB2cCA5boaQ2gNO6YhYbtuTrMicQb0MTlZmacqzqP\nAxXWD3yFmAuUCpa2tBFBsavSW/kc52m4ldcO60U6hARvOxcXDqrbwu8r1ieY+tcZ\ncqjjBi99AgMBAAGgADANBgkqhkiG9w0BAQsFAAOCAQEAgAqWjtH3yAsX8QfTa9Pv\n3kktYFQKFsBzntmFDdIrOkeGayWRCuSG06f3sHWH0RuGkpq1x/4bedjcyyNVSna7\nxYX6kPOQX5iqf9pISD7A0XIkfS6XAos7gOh/jadjtxSwPCkuztSqIPKObH9OClAE\nU1fYDEtZCaZxsUdLwWJwOzbsivT97g1UVnbJAEzAJrqyaV4cUbv/w/slytHF+GAg\nNoUvPD8NGOQ+VzuI2oQuK515cyHO1SXrJyvkEVwRVVr3SoasqqWIQRrIv6zgzgik\nLN+uQxpzL1EeTB8qKy7xjymo2y1PbmaZzVNQNaBnxJfLE522pfW69evBRJ1qhrby\nTQ==\n-----END CERTIFICATE REQUEST-----\n"}'

成功的回應會傳回新的憑證及其 ID、建立時間和到期時間等資訊。

{
  "certificates": [
    "-----BEGIN CERTIFICATE-----\nMIIDmTCCAoECFDGlhn2VlwNEQymsNpyt9rOiiiWDMA0GCSqGSIb3DQEBCwUAMIGJ\nMQswCQYDVQQGEwJVUzESMBAGA1UECAwJTWlubmVzb3RhMRIwEAYDVQQHDAlSb2No\nZXN0ZXIxDDAKBgNVBAoMA0lCTTEeMBwGA1UECwwVVmlydHVhbCBQcml2YXRlIENs\nb3VkMSQwIgYDVQQDDBtWUEMgRXhhbXBsZSBJbnRlcm1lZGlhdGUgQ0EwHhcNMjIx\nMTAxMTM1MDE0WhcNMjIxMTAxMTQyMDE0WjCBhzELMAkGA1UEBhMCVVMxEjAQBgNV\nBAgMCU1pbm5lc290YTESMBAGA1UEBwwJUm9jaGVzdGVyMQwwCgYDVQQKDANJQk0x\nHjAcBgNVBAsMFVZpcnR1YWwgUHJpdmF0ZSBDbG91ZDEiMCAGA1UEAwwZRXhhbXBs\nZSBTaGFyZSBDZXJ0aWZpY2F0ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\nggEBAM6JytY3R4zWo3zzw/dM9ldUw8TIDQ9dNt+0sm3bFHHlAXaSKvmI+Ls/uQoh\n9VPpRLTx+WyljnKNnkXC6BQOzlugjAfi8hE2f5CC0A0m58XcBiZqH5BwTeLI4vVZ\nO9pLySckkEtHcmFE4h70KS5+1jDApeOTTS6EJsQcal/AAVYg7PDyXr1jE2HTKxnt\nlXopB/+bvWmBQ2k50Km0h0D1n0Ipoqqwb1wwWCrzQ2ds2XNKCUGkCgN6buFiF2nN\nLYS1tsIaw6OsTx+VheNGlYdlOhMUVypCok9JQ85P4NU47O6YgITX1V63ewZBnn5p\napywqdg8K2X2YgU/tLdpl5Jz2ysCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEABuOX\npxGbBQPdG3VGkNCYScZUcxocqmx4mCegBFfv4PjWU2+eG+3JikB3YWwqD11hixQm\n5Qwge/zMXzuKPs5D4yyblpDJlq5Iz/0VMjEl2paCHg9nm5Z3QaSydFH3SCGwfvld\nRn9ib6DSw4a58hmqON+CiWUSSibQy46gUsqVvYhq2lJimejTAN2DlePY2su1xvNV\nAdmDjmvO7j7YV/eWk6r7OgcqtVaAovN3okaybwxf8sLAFxLzp/aUaqXL10qJ/ISz\nVL+UHN7t5WzjHdh2OjDXwz0BOyhdbjyNX8ptKd+E0O21PsFFe8ErfShDh00g/ERP\nzXuEUsCxzTyWRTm8GA==\n-----END CERTIFICATE-----\n",
    "-----BEGIN CERTIFICATE-----\nMIIEADCCAuigAwIBAgIUDzQruKqvBY7+CS6DL0u93Na6cLMwDQYJKoZIhvcNAQEL\nBQAwgYExCzAJBgNVBAYTAlVTMRIwEAYDVQQIDAlNaW5uZXNvdGExEjAQBgNVBAcM\nCVJvY2hlc3RlcjEMMAoGA1UECgwDSUJNMR4wHAYDVQQLDBVWaXJ0dWFsIFByaXZh\ndGUgQ2xvdWQxHDAaBgNVBAMME1ZQQyBFeGFtcGxlIFJvb3QgQ0EwHhcNMjIxMTAx\nMDM0OTI5WhcNMjcxMDMxMDM0OTI5WjCBiTELMAkGA1UEBhMCVVMxEjAQBgNVBAgM\nCU1pbm5lc290YTESMBAGA1UEBwwJUm9jaGVzdGVyMQwwCgYDVQQKDANJQk0xHjAc\nBgNVBAsMFVZpcnR1YWwgUHJpdmF0ZSBDbG91ZDEkMCIGA1UEAwwbVlBDIEV4YW1w\nbGUgSW50ZXJtZWRpYXRlIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC\nAQEAxjvxOtSFKsJKl4teBLgkX4+myxhClz2Qmg5MnNQ+oyhyNrpYvjG3+O+DrSUK\nKTXzmWSkKU/6BKmHQPNdpd4ymbb0cG7wmpcU3YjjrSNFgd/o3CEK9M7+ofIuQtTX\nXNUQWX5rb3wBqEA1TWazVTZpphhhcGQ8u03VTKvoF4S2DI6L3brDJJ0w1DM9Isaa\nB2mS64VYMIj3jLry39ryGEoYq1a0tC4C9fET3V5NmUnIRNqVDnGGkYBy/57VRACU\nXxXcQuW6eoPYGk6Ho3eKly34eilF2n9xD/bB41R4NzaxO/0lHq+caI5r1WlnTXtF\nE8wLpFoYMkuC0qiKBesyuyef2QIDAQABo2YwZDAdBgNVHQ4EFgQU2MIYc9g4Z7Kj\n79u2HPGYyTk5QHwwHwYDVR0jBBgwFoAUVnTLKJHyjHUcRp22jx+d3uGqnrwwEgYD\nVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQAD\nggEBADhOBfnBEaWVWCsZo3UR7UlP5/8i3mRgyFt4YkICPMacy2IcnDw8aoyjTO5b\n4BLO4J1m4AmcJnDJcFIEKLBSNbzsiDdP2rWIAAJKO4gKxdTArIuLgq7zrR74j46L\nn6IFwumKQRw0diGYD6wWIo/f9kGy1NQ46igmRYrEfzA5HWitEpF0mu6lz8mZ8m9s\na6CTEqwLFhP+qOcWtpGjNTa+OHENAmmAR4mR4Os4MsBBnb4RA//S/4suW419Cz8N\n1/Ul7KduYRKpRMSiS9YWbCvC5WiEvOvfp8Z4ecXlC+ohU5MLuCRPfP+blBvxNx2O\nsLotlbzDpim/gYiJCHgW3POlsLE=\n-----END CERTIFICATE-----\n"
  ],
  "created_at": "2024-11-12T13:50:14Z",
  "expires_at": "2024-11-12T14:50:14Z",
  "expires_in": 3600,
  "id": "9fd84246-7df4-4667-94e4-8ecde51d5ac5"
}

如需詳細資訊,請參閱 傳輸中加密 - 保護檔案共用與主機之間的掛載連線

解碼身分存取憑證

IBM Cloud® Virtual Private Cloud 身分識別元資料存取憑證是標準的 JSON Web Tokens(JWT)。 您可以使用命令列工具、線上解碼器或程式庫來解碼這些資料,以檢視諸如有效期限 (exp)、伺服器資訊 (iaas) 及非重複碼 (nonce) 等聲明。

要在終端機中解碼 IBM Cloud VPC 身分識別代碼的最快方法,是使用標準的 Unix 工具或專用的 CLI 實用程式。

身分識別憑證由三個部分(標頭、有效載荷、簽名)組成,各部分之間以句點 . 分隔。

  1. 編碼後的標頭物件由鍵值對組成。
  2. 由聲明組成的編碼有效載荷物件,這些聲明本質上是鍵值對。 以下是身分識別代幣中 IBM Cloud VPC 聲明的一些範例。
    • iaas
    • vpc
    • 自訂 IP 位址
    • subnets
  3. 發行者的簽名,用於判斷 JWT 碼在發行後是否遭到洩露或篡改。 簽名是由簽發者透過使用伺服器金鑰或私鑰對已編碼的標頭和有效載荷物件進行簽署而產生的。 發行者由 iss 聲明所標示。
  • 若要使用 base64 和 jq 解碼身分識別憑證,您可以透過以下指令解碼有效載荷(第二部分)。

    # Replace <TOKEN> with your actual token string
    echo "<TOKEN>" | cut -d '.' -f 2 | base64 --decode | jq .
    

    對於使用 URL-safe Base64 的代幣,在解碼前,您可能需要將 - 替換為 +,並將 _ 替換為 /

  • 若要使用 jwt-cli 解碼身分識別憑證,請依照以下步驟操作。 使用此流程時應謹慎行事。

    1. 安裝專用工具,以獲得更乾淨的輸出結果。

      npm install -g jwt-cli
      
    2. 發出下列指令。

      jwt decode <TOKEN>
      
    3. 請檢視「有效載荷」部分中的資訊。 請參閱下列範例。

      {
        "aud": [
          "VSI-CR_us-south",
          "247cd7d3-ff6b-11ef-8b70-ca73f727becf_63791398320466773051136262737897537855791952320"
        ],
        "exp": 1741802544,
        "iaas": {
          "crn": "crn:v1:staging:public:is:us-south-3:a/af6443f619a949c9919c1eb1625d6cc5::instance:7389_bca3d8e4-b8b4-42e0-881e-761a01a89f20",
          "accountID": "af6443f619a949c9919c1eb1625d6cc5",
          "instanceID": "7389_bca3d8e4-b8b4-42e0-881e-761a01a89f20",
          "zone": "us-south-3",
          "region": "us-south",
          "profile_name": "bx2-2x8",
          "resource_group_id": "6d42cce33e604a86b95485c5735be52d"
        },
        "iat": 1741802244,
        "ip_addresses": [
          {
            "address": "52.118.123.193"
          },
          {
            "address": "10.240.128.4"
          }
        ],
        "iss": "VSI-CR_us-south",
        "nonce": "2026-03-12T12:34:56.789Z",
        "subnets": [
          {
            "crn": "crn:v1:staging:public:is:us-south-3:a/af6443f619a949c9919c1eb1625d6cc5::subnet:7389-9b1a8341-5863-40da-a29f-9a9d6eef2a51",
            "name": "fode-sn3",
            "id": "7389-9b1a8341-5863-40da-a29f-9a9d6eef2a51"
          }
        ],
        "vpc": {
          "crn": "crn:v1:staging:public:is:us-south:a/af6443f619a949c9919c1eb1625d6cc5::vpc:r134-199db3c7-928c-41af-95fd-d4e166648773",
          "name": "fode",
          "id": "r134-199db3c7-928c-41af-95fd-d4e166648773"
        }
      }
      
    4. 要驗證 JWT,請檢查 iss 簽名,並確認 JWT 簽發後,編碼後的標頭物件與編碼後的有效載荷物件均未遭篡改。

您也可以使用第三方工具(例如 python-jwtgolang-jwt )來解碼 JWT。

為實例建立受信任的設定檔

計算資源身分的受信任設定檔可協助您將 IBM Cloud® IAM 身分指定給 IBM Cloud® 資源,例如虛擬伺服器實例。 您可以從實體呼叫任何啟用 IAM 的服務,而無需管理和分發 IAM 秘密到實體。 當您從身分存取令牌產生 IAM 令牌並將其連結至實體時,就可以建立受信任的設定檔。 如需詳細資訊,請參閱 使用受信任的設定檔來呼叫啟用 IAM 的服務

下一步

建立身分存取標記並啟用對元資料服務的存取後,您就可以擷取實體、SSH 金鑰和安置群組的元資料。 如需詳細資訊,請參閱 從實體擷取元資料