Questo documento descrive le attestazioni nei token di Google Cloud Attestation. I token sono token di attestazione dell'entità (EAT), codificati come token web JSON (JWT). I JWT possono essere decodificati utilizzando strumenti come https://jwt.io/.
Le attestazioni sono definite nell'endpoint
well-known di Google Cloud Attestation.
Esempi di token decodificati
Le rivendicazioni in un token di attestazione Google Cloud variano a seconda della tecnologia Confidential Computing utilizzata nell'istanza Confidential VM.
AMD SEV
Di seguito è riportato un esempio di token di attestazione AMD SEV decodificato:
{
"alg": "RS256",
"kid": "6e66f1aededf736581df2599ee20387718978dcd",
"typ": "JWT"
}.
{
"aud": "AUDIENCE",
"exp": 1715359550,
"iat": 1715355950,
"iss": "https://confidentialcomputing.googleapis.com",
"nbf": 1698861565,
"sub": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME",
"eat_nonce": [
"thisIsAcustomNonce",
"thisIsAMuchLongerCustomNonceWithPaddingFor74Bytes0000000000000000000000000"
],
"secboot": true,
"oemid": 11129,
"hwmodel": "GCP_AMD_SEV",
"swname": "GCE",
"eat_profile": "https://cloud.google.com/confidential-computing/confidential-vm/docs/token-claims",
"submods": {
"gce": {
"zone": "ZONE",
"project_id": "PROJECT_ID",
"project_number": "PROJECT_NUMBER",
"instance_name": "INSTANCE_NAME",
"instance_id": "INSTANCE_ID"
}
},
"google_service_accounts": [
"470652426305-compute@developer.gserviceaccount.com"
]
}
Intel TDX
Di seguito è riportato un esempio di token di attestazione Intel TDX decodificato:
{
"alg": "RS256",
"kid": "6e66f1aededf736581df2599ee20387718978dcd",
"typ": "JWT"
}.
{
"aud": "AUDIENCE",
"exp": 1715359550,
"iat": 1715355950,
"iss": "https://confidentialcomputing.googleapis.com",
"nbf": 1698861565,
"sub": "//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/INSTANCE_ID",
"eat_nonce": "thisIsAcustomNonce",
"secboot": true,
"oemid": 11129,
"hwmodel": "GCP_INTEL_TDX",
"swname": "GCE",
"dbgstat": "disabled-since-boot",
"eat_profile": "https://cloud.google.com/confidential-computing/confidential-vm/docs/token-claims",
"submods": {
"gce": {
"zone": "ZONE",
"project_number": "PROJECT_NUMBER",
"instance_id": "INSTANCE_ID"
}
},
"tdx": {
"gcp_attester_tcb_date": "2026-06-01T00:00:00Z",
"tcb_evaluation_data_number": 17,
"fmspc": "00806F000000",
"tee_tcb_svn": "06010300000000000000000000000000",
"pcesvn": 11,
"sgx_tcb_comp_svn": "08080202040100060000000000000000",
"xfam": "e702060000000000",
"tdattributes": "0000000000000000",
"mrtd": "c68518a0ebb42136c12b2275164f8c72f25fa9a343922286a41b52bc7e4c2787e35b7782b132454191a27e366bc33e8a",
"rtmr0": "a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1",
"rtmr1": "b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2",
"rtmr2": "c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3",
"rtmr3": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
},
"google_service_accounts": [
"470652426305-compute@developer.gserviceaccount.com"
]
}
Rivendicazioni di token
La tabella seguente descrive le attestazioni di alto livello in un token di attestazione Google Cloud. Queste attestazioni sono conformi alla specifica OpenID Connect 1.0.
Valori dell'endpoint well-known |
Descrizione |
|---|---|
claims_supported |
Vedi Rivendicazioni di primo livello. |
id_token_signing_alg_values_supported |
Gli algoritmi di firma (valori alg) supportati dal token.
Confidential VM supporta l'algoritmo RS256.
|
issuer |
Lo schema HTTPS che Confidential VM utilizza come identificatore dell'emittente.
Il valore è
|
jwks_uri |
Il percorso delle chiavi pubbliche utilizzate per verificare la firma del token. Puoi pubblicare queste chiavi in un bucket Cloud Storage.
Puoi trovare le chiavi
Un valore di esempio è
|
response_types_supported |
L'elenco dei tipi di risposta Confidential VM supportati. Confidential VM supporta
id_token.
|
scopes_supported |
I valori dell'ambito
OAuth 2.0 supportati dall'istanza VM Confidential. Confidential VM supporta solo openid.
|
subject_types_supported |
I tipi di identificatori del soggetto supportati da Confidential VM. Confidential VM
supporta public.
|
Rivendicazioni di primo livello
La tabella seguente descrive le attestazioni di primo livello supportate in un token di attestazione Google Cloud.
| Attestazione | Tipo | Descrizione |
|---|---|---|
aud |
Stringa |
Il pubblico. Per il token predefinito utilizzato con un pool di identità del carico di lavoro, il pubblico è Per i token con segmenti di pubblico personalizzati, il segmento di pubblico viene ripreso dalla richiesta di token. La lunghezza massima è di 512 byte. |
dbgstat |
Stringa | Lo stato di debug dell'hardware. Non disponibile per AMD SEV. |
eat_nonce |
Stringa o array di stringhe | Uno o più nonce per il token di attestazione. I valori vengono ripresi dalle opzioni del token inviate nella richiesta di token personalizzato. Ogni nonce deve essere compreso tra 10 e 74 byte inclusi. Sono consentiti massimo sei nonce. |
eat_profile |
Stringa |
L'URI del profilo del token di attestazione dell'entità (EAT) che definisce lo schema del token. Il valore è
https://cloud.google.com/confidential-computing/confidential-vm/docs/token-claims.
|
exp |
Int, timestamp Unix |
L'ora di scadenza a partire dalla quale il token non deve essere accettato per l'elaborazione. Il valore è un numero JSON che rappresenta il numero di
secondi da
1970-01-01T0:0:0Z misurati
in UTC fino all'ora di scadenza.
|
google_service_accounts |
Array di stringhe | I service account convalidati che eseguono il workload della VM confidenziale. |
hwmodel |
Stringa |
L'identificatore univoco del token hardware. L'identificatore deve essere uno dei seguenti valori:
|
iat |
Int, timestamp Unix |
L'ora in cui è stato emesso il JWT. Il valore è un numero JSON che
rappresenta il numero di secondi da
1970-01-01T0:0:0Z misurato
in UTC fino all'ora del problema.
|
iss |
Stringa |
L'emittente del token, impostata su
https://confidentialcomputing.googleapis.com.
|
nbf |
Int, timestamp Unix |
Il momento dopo il quale è consentito elaborare il JWT. Il valore è un numero JSON che rappresenta il numero di secondi trascorsi da 1970-01-01T0:0:0Z, misurato in UTC.
|
oemid |
Uint64 |
Il numero
aziendale privato (PEN) di Google, che è 11129.
|
secboot |
Booleano | Se l'avvio protetto è abilitato, il che garantisce che il firmware e il sistema operativo vengano autenticati durante il processo di avvio della VM. |
sub |
Stringa |
L'oggetto che identifica l'istanza di macchina virtuale:
|
submods |
Array | Una serie di varie rivendicazioni. Consulta Richieste di rivendicazione dei submoduli. |
swname |
Stringa |
Il nome del sistema operativo approvato per la VM. Il valore è sempre |
tdx |
Oggetto | Un oggetto contenente attestazioni per le istanze Intel TDX. Consulta le affermazioni relative a Intel TDX. |
Affermazioni relative a Intel TDX
La tabella seguente descrive le rivendicazioni tdx in un token di attestazione Google Cloud
per le istanze Intel TDX.
| Attestazione | Tipo | Descrizione |
|---|---|---|
tcb_evaluation_data_number |
Uint32 | Numero di dati di valutazione TCB di Intel associato all'FMSPC della piattaforma da Intel TCB Info. |
gcp_attester_tcb_date |
Stringa | Timestamp (UTC) del benchmark di valutazione di Intel TCB. |
mrtd1
|
Stringa (esadecimale) | Misurazione dei contenuti iniziali del dominio attendibile e del firmware virtuale (OVMF). |
rtmr01
|
Stringa (esadecimale) | Registro di misurazione del runtime 0 (configurazione del firmware virtuale e parametri di sistema). |
rtmr1 |
Stringa (esadecimale) | Registro di misurazione del runtime 1 (misurazioni del bootloader e del kernel del sistema operativo guest). |
rtmr2 |
Stringa (esadecimale) | Registro di misurazione del runtime 2 (riga di comando del kernel e del disco RAM iniziale (initramfs)). |
rtmr3 |
Stringa (esadecimale) | Il registro di misurazione del runtime 3 (estensioni e applicazioni runtime del cliente). |
fmspc |
Stringa (esadecimale) | SKU Family-Model-Stepping di 6 byte per la ricerca del servizio di certificazione del provisioning (PCS) di Intel. |
tee_tcb_svn |
Stringa (esadecimale) | Array di 16 byte dei numeri di versione di sicurezza dei componenti TCB di TDX al momento dell'avvio del Trust Domain. |
pcesvn |
Uint16 | SVN dell'enclave di certificazione del provisioning (PCE). |
sgx_tcb_comp_svn |
Stringa (esadecimale) | Array di 16 byte dei numeri di versione di sicurezza dei componenti TCB di Intel SGX. |
xfam |
Stringa (esadecimale) | Maschera di 8 byte delle funzionalità estese della CPU abilitate. |
tdattributes |
Stringa (esadecimale) | Bitmap di 8 byte degli attributi di esecuzione TD. |
Rivendicazioni relative alle submod
La tabella seguente descrive le rivendicazioni submods in un token di attestazione Google Cloud.
| Attestazione | Tipo | Descrizione |
|---|---|---|
gce |
Oggetto | Consulta Richieste di Compute Engine. |
Richieste di Compute Engine
La tabella seguente descrive le rivendicazioni gce in un token di attestazione Google Cloud.
| Attestazione | Tipo | Descrizione |
|---|---|---|
instance_id |
Stringa | L'ID istanza VM. |
instance_name |
Stringa | Il nome dell'istanza VM. |
project_id |
Stringa | L' ID progetto del progetto in cui è in esecuzione la VM. |
project_number |
Stringa | Il numero di progetto del progetto in cui è in esecuzione la VM. |
zone |
Stringa | La zona Compute Engine in cui è in esecuzione l'istanza VM confidenziale. |
Passaggi successivi
Per saperne di più sulle attestazioni, consulta la bozza IETF relativa al token di attestazione dell'entità (EAT).
Per saperne di più sulle rivendicazioni dei token OpenID, consulta la specifica OpenID Connect Core 1.0.
Per saperne di più sui token e sul loro recupero, consulta vTPM Attestation Codelab.