Klaim token Confidential VM

Dokumen ini menjelaskan item yang ada dalam token pengesahan VM Confidential, seperti yang ditentukan dalam endpoint well-known untuk VM Confidential. Token tersebut 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@developer.gserviceaccount.com"
  ]
}

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 yang didukung.
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.iam.gserviceaccount.com.

Contoh nilainya 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 VM Rahasia. Confidential VM mendukung public.

Klaim yang didukung

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

Klaim Jenis Deskripsi
aud String Audiens. Untuk token default (yang diambil setiap jam oleh peluncur dalam Confidential VM), audiensnya adalah https://sts.googleapis.com. Untuk token kustom, audiens akan ditampilkan dari audiens dalam permintaan token. Panjang maksimumnya adalah 512 byte.
dbgstat String Status debug untuk hardware. Dalam image 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 tersebut ditampilkan dari opsi token yang dikirim dalam permintaan token kustom. Setiap nonce harus antara 10 hingga 74 byte inklusif. Maksimum enam nonce diizinkan.
exp Int, stempel waktu Unix Waktu habis masa berlaku pada atau setelah token tidak boleh diterima untuk diproses. Nilainya adalah angka JSON yang mewakili jumlah detik dari 1970-01-01T0:0:0Z seperti yang diukur dalam UTC hingga waktu habis masa berlaku.
google_service_accounts Array string Akun layanan tervalidasi yang menjalankan workload VM Rahasia.
hwmodel String

ID unik untuk token hardware.

Nilai saat ini adalah GCP_AMD_SEV, GCP_AMD_SEV_ES, dan GCP_SHIELDED_VM.

iat Int, stempel waktu Unix Waktu saat JWT diterbitkan. Nilainya adalah angka JSON yang mewakili jumlah detik dari 1970-01-01T0:0:0Z seperti yang diukur dalam UTC hingga waktu masalah.
iss String Penerbit token, yang ditetapkan ke https://confidentialcomputing.googleapis.com.
nbf Int, stempel waktu Unix Waktu sebelum JWT tidak dapat digunakan untuk pemrosesan.
oemid Uint64 Private Enterprise Number (PEN) Google, yaitu 11129.
secboot Boolean Apakah Booting Aman diaktifkan, yang memastikan bahwa firmware dan sistem operasi diautentikasi selama proses booting VM.
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 adalah GCE.

Klaim sub-mod

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 VM Rahasia berjalan.

Langkah selanjutnya