Klaim token Confidential VM

Dokumen ini menjelaskan item yang ada dalam token pengesahan Confidential VM, sebagaimana ditentukan dalam endpoint well-known untuk Confidential VM. Token adalah token web JSON (JWT).

Contoh token

Berikut adalah contoh token pengesahan yang dienkode. Anda dapat menggunakan https://jwt.io/ untuk mendekodenya:

eyJhbGciOiJSUzI1NiIsImtpZCI6IjFjNjdmYWVhYjRhYzE1ZDJmNmZmODMwY2E2ZmM1N2YyYmVhM2Y0YmIiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJcdTAwM2NZT1VSQVVESUVOQ0VcdTAwM2UiLCJleHAiOjE3MTU5NzE2OTcsImlhdCI6MTcxNTk2ODA5NywiaXNzIjoiaHR0cHM6Ly9jb25maWRlbnRpYWxjb21wdXRpbmcuZ29vZ2xlYXBpcy5jb20iLCJuYmYiOjE3MTU5NjgwOTcsInN1YiI6Imh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2NvbXB1dGUvdjEvcHJvamVjdHMvcnVpZGV6aGFuZy0yL3pvbmVzL3VzLWNlbnRyYWwxLWMvaW5zdGFuY2VzL2N2bS10b2tlbi1jbGFpbXMiLCJlYXRfbm9uY2UiOlsidGhpc0lzQWN1c3RvbU5vbmNlIiwidGhpc0lzQU11Y2hMb25nZXJDdXN0b21Ob25jZVdpdGhQYWRkaW5nRm9yNzRCeXRlczAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiXSwic2VjYm9vdCI6ZmFsc2UsIm9lbWlkIjoxMTEyOSwiaHdtb2RlbCI6IkdDUF9BTURfU0VWIiwic3duYW1lIjoiR0NFIiwiZGJnc3RhdCI6ImVuYWJsZWQiLCJzdWJtb2RzIjp7ImdjZSI6eyJ6b25lIjoidXMtY2VudHJhbDEtYyIsInByb2plY3RfaWQiOiJydWlkZXpoYW5nLTIiLCJwcm9qZWN0X251bWJlciI6IjQ3MDY1MjQyNjMwNSIsImluc3RhbmNlX25hbWUiOiJjdm0tdG9rZW4tY2xhaW1zIiwiaW5zdGFuY2VfaWQiOiI3MzMzMjUxNTQ2ODE2NDQ2MDY5In19LCJnb29nbGVfc2VydmljZV9hY2NvdW50cyI6WyI0NzA2NTI0MjYzMDUtY29tcHV0ZUBkZXZlbG9wZXIuZ3NlcnZpY2VhY2NvdW50LmNvbSJdfQ.Z8CIreuWj8vQKe9L5f5Ol80LcWBI_pFWwfT8qsky8hjtH3OMmqfUCJJRx-dX5Rqm5n4qe4dHacLgSWQlT9MDYyrtWDuocA2WtfPZLvM0DNc4HuoNPZtVrgMMcZ93Xyl5-tJuI5PbPshiDBT06_QaRm5l37RRL2CsxXZGCkKsxV1vs0gF5xZgSNmhDqg3q1fONhA3VglZ-H0SHAvMNr1qwXDKrQxdYxyFfEMLkcsRxSXlR5mLCbMIFptGTPXt-k83xJzCipuKSiKJrwaRdZTmlapn7UtaTRLvG3YCmXPg6oOvNKtE8T4KeBY36EdzR0Fdmz_pXSbWL-q8-y90VxDxwQ

Berikut adalah contoh token yang didekode:

{
  "alg": "RS256",
  "kid": "6e66f1aededf736581df2599ee20387718978dcd",
  "typ": "JWT"
}.
{
  "aud": "<YOURAUDIENCE>",
  "exp": 1715359550,
  "iat": 1715355950,
  "iss": "https://confidentialcomputing.googleapis.com",
  "nbf": 1698861565,
  "sub": "https://www.googleapis.com/compute/v1/projects/<YOURPROJECT>/zones/us-central1-c/instances/cvm-token-claims",
  "eat_nonce": [
    "thisIsAcustomNonce",
    "thisIsAMuchLongerCustomNonceWithPaddingFor74Bytes0000000000000000000000000"
  ],
  "secboot": true,
  "oemid": 11129,
  "hwmodel": "GCP_AMD_SEV",
  "swname": "Compute Engine",
  "dbgstat": "disabled-since-boot",
  "submods": {
    "gce": {
      "zone": "us-central1-c",
      "project_id": "<YOURPROJECT>",
      "project_number": "470652426305",
      "instance_name": "cvm-token-claims",
      "instance_id": "7333251546816446069"
    }
  },
  "google_service_accounts": [
    "470652426305-compute@"
  ]
}

Item dalam token dijelaskan lebih lanjut di bagian berikut.

Item token

Tabel berikut menjelaskan item tingkat tinggi dalam token pengesahan. Item ini mematuhi spesifikasi OpenID Connect 1.0.

Nilai endpoint well-known Deskripsi
claims_supported Lihat Klaim tingkat teratas.
id_token_signing_alg_values_supported Algoritma penandatanganan (nilai alg) yang didukung oleh token. Confidential VM mendukung algoritma RS256.
issuer

Skema HTTPS yang digunakan Confidential VM sebagai ID penerbitnya.

Nilainya adalah https://confidentialcomputing.googleapis.com.

jwks_uri

Jalur ke kunci publik yang digunakan untuk memverifikasi tanda tangan token. Anda dapat memublikasikan kunci ini di bucket Cloud Storage.

Anda dapat menemukan kunci jwks_uri di https://www.googleapis.com/service_accounts/v1/metadata/jwk/signer@confidentialspace-sign..

Contoh nilai adalah https://example.storage.googleapis.com/jwks.json.

response_types_supported Daftar jenis respons Confidential VM yang didukung. Confidential VM mendukung id_token.
scopes_supported Nilai cakupan OAuth 2.0 yang didukung instance Confidential VM. Confidential Space hanya mendukung openid.
subject_types_supported Jenis ID subjek yang didukung Confidential VM. Confidential VM mendukung public.

Klaim tingkat teratas

Tabel berikut menjelaskan klaim tingkat teratas yang didukung dalam token pengesahan.

Klaim Jenis Deskripsi
aud String

Audiens. Untuk token default yang digunakan dengan workload identity pool, audiensnya adalah https://sts.googleapis.com. Token ini diambil setiap jam oleh peluncur di instance Confidential VM.

Untuk token dengan audiens kustom, audiens dikembalikan dari audiens dalam permintaan token. Panjang maksimum adalah 512 byte.

dbgstat String Status debug untuk hardware. Dalam gambar produksi, nilainya adalah disabled-since-boot. Dalam gambar debug, nilainya adalah enabled.
eat_nonce String atau array string Satu atau beberapa nonce untuk token pengesahan. Nilai dikembalikan dari opsi token yang dikirim dalam permintaan token kustom. Setiap nonce harus berada di antara 10 hingga 74 byte inklusif. Maksimum enam nonce yang diizinkan.
exp Int, stempel waktu Unix Waktu habis masa berlaku pada atau setelah token tidak boleh diterima untuk pemrosesan. Nilainya adalah angka JSON yang merepresentasikan jumlah detik dari 1970-01-01T0:0:0Z yang diukur dalam UTC hingga waktu habis masa berlaku.
google_service_accounts Array string Akun layanan yang divalidasi yang menjalankan workload Confidential VM.
hwmodel String

ID unik untuk token hardware. ID harus berupa salah satu nilai berikut:

  • GCP_AMD_SEV
  • GCP_AMD_SEV_ES
  • GCP_SHIELDED_VM
  • GCP_INTEL_TDX
iat Int, stempel waktu Unix Waktu saat JWT diterbitkan. Nilainya adalah angka JSON yang mewakili jumlah detik dari 1970-01-01T0:0:0Z yang diukur dalam UTC hingga waktu masalah.
iss String Penerbit token, yang ditetapkan ke https://confidentialcomputing.googleapis.com.
nbf Int, stempel waktu Unix Waktu setelah JWT diizinkan untuk diproses. Nilainya adalah angka JSON yang merepresentasikan jumlah detik dari 1970-01-01T0:0:0Z yang diukur dalam UTC.
oemid Uint64 Google Private Enterprise Number (PEN), yaitu 11129.
secboot Boolean Apakah Booting Aman diaktifkan, yang memastikan bahwa firmware dan sistem operasi diautentikasi selama proses booting VM. Nilai ini selalu true.
sub String Subjek, yang merupakan ID virtual machine yang sepenuhnya memenuhi syarat untuk Confidential VM. Contoh: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_ID Format ini dikenal sebagai selfLink instance.
submods Array Array berbagai klaim. Lihat Klaim submod.
swname String

Nama sistem operasi yang disetujui untuk VM.

Nilainya selalu GCE.

Klaim submod

Tabel berikut menjelaskan klaim submods dalam token pengesahan.

Klaim Jenis Deskripsi
gce Objek Lihat klaim Compute Engine.

Klaim Compute Engine

Tabel berikut menjelaskan klaim gce dalam token pengesahan.

Klaim Jenis Deskripsi
instance_id String ID instance VM.
instance_name String Nama instance VM.
project_id String project ID untuk project tempat VM berjalan.
project_number String Nomor project untuk project tempat VM berjalan.
zone String Zona Compute Engine tempat instance Confidential VM berjalan.

Langkah berikutnya