In diesem Dokument werden die Claims in Google Cloud-Attestierungstokens beschrieben. Die Tokens sind Entity Attestation Tokens (EATs), die als JSON-Webtokens (JWTs) codiert sind. JWTs können mit Tools wie https://jwt.io/ decodiert werden.
Die Ansprüche werden am well-known-Endpunkt für die Google Cloud-Attestierung definiert.
Beispiele für decodierte Tokens
Die Ansprüche in einem Google Cloud-Attestierungstoken variieren je nach der in Ihrer Confidential VM-Instanz verwendeten Confidential Computing-Technologie.
AMD SEV
Hier sehen Sie ein Beispiel für ein decodiertes AMD SEV-Bestätigungstoken:
{
"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
Im Folgenden finden Sie ein Beispiel für ein decodiertes Intel TDX-Attestierungstoken:
{
"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"
]
}
Token-Ansprüche
In der folgenden Tabelle werden die allgemeinen Behauptungen in einem Google Cloud-Attestierungstoken beschrieben. Diese Ansprüche entsprechen der OpenID Connect 1.0-Spezifikation.
well-known-Endpunktwerte |
Beschreibung |
|---|---|
claims_supported |
Weitere Informationen finden Sie unter Ansprüche auf höchster Ebene. |
id_token_signing_alg_values_supported |
Die vom Token unterstützten Signaturalgorithmen (alg-Werte).
Confidential VM unterstützt den RS256-Algorithmus.
|
issuer |
Das HTTPS-Schema, das von Confidential VM als Aussteller-ID verwendet wird.
Der Wert ist |
jwks_uri |
Der Pfad zu den öffentlichen Schlüsseln, die zum Überprüfen der Tokensignatur verwendet werden. Sie können diese Schlüssel in einem Cloud Storage-Bucket veröffentlichen.
Die
Ein Beispielwert ist |
response_types_supported |
Die Liste der unterstützten Confidential VM-Antworttypen. Confidential VM unterstützt id_token.
|
scopes_supported |
Die
OAuth 2.0-Bereichswerte, die von der Confidential VM-Instanz unterstützt werden. Confidential VM unterstützt nur openid.
|
subject_types_supported |
Die von Confidential VM unterstützten Subjekt-ID-Typen. Confidential VM unterstützt public.
|
Behauptungen der obersten Ebene
In der folgenden Tabelle werden die unterstützten Claims der obersten Ebene in einem Google Cloud-Attestierungstoken beschrieben.
| Anforderung | Typ | Beschreibung |
|---|---|---|
aud |
String |
Die Zielgruppe. Für das Standardtoken, das mit einem Workload Identity-Pool verwendet wird, ist die Zielgruppe Bei Tokens mit benutzerdefinierten Zielgruppen wird die Zielgruppe aus der Zielgruppe in der Tokenanfrage übernommen. Die maximale Länge beträgt 512 Bytes. |
dbgstat |
String | Der Debugging-Status der Hardware. Nicht für AMD SEV verfügbar. |
eat_nonce |
String oder String-Array | Einen oder mehrere Nounces für das Attestierungstoken. Die Werte werden aus den Tokenoptionen übernommen, die in der benutzerdefinierten Tokenanfrage gesendet wurden. Jeder Nonce muss zwischen 10 und 74 Byte (einschließlich) lang sein. Es sind maximal sechs Nounces zulässig. |
eat_profile |
String |
Der URI des EAT-Profils (Entity Attestation Token), das das Tokenschema definiert. Der Wert ist https://cloud.google.com/confidential-computing/confidential-vm/docs/token-claims.
|
exp |
Ganzzahl, Unix-Zeitstempel |
Die Ablaufzeit, nach der das Token nicht mehr für die Verarbeitung akzeptiert werden darf. Der Wert ist eine JSON-Zahl, die die Anzahl der Sekunden ab 1970-01-01T0:0:0Z in UTC bis zum Ablaufdatum darstellt.
|
google_service_accounts |
String-Array | Die validierten Dienstkonten, mit denen die Confidential VM-Arbeitslast ausgeführt wird. |
hwmodel |
String |
Die eindeutige Kennung für das Hardware-Token. Die Kennzeichnung muss einer der folgenden Werte sein:
|
iat |
Ganzzahl, Unix-Zeitstempel |
Der Zeitpunkt, zu dem das JWT ausgestellt wurde. Der Wert ist eine JSON-Zahl, die die Anzahl der Sekunden von 1970-01-01T0:0:0Z bis zum Zeitpunkt des Problems in UTC darstellt.
|
iss |
String |
Der Aussteller des Tokens, der auf https://confidentialcomputing.googleapis.com gesetzt ist.
|
nbf |
Ganzzahl, Unix-Zeitstempel |
Die Zeit, nach der das JWT verarbeitet werden darf. Der Wert ist eine JSON-Zahl, die die Anzahl der Sekunden seit 1970-01-01T0:0:0Z in UTC angibt.
|
oemid |
Uint64 |
Die
Private Enterprise Number (PEN) von Google ist 11129.
|
secboot |
Boolesch | Ob Secure Boot aktiviert ist. Dadurch wird sichergestellt, dass die Firmware und das Betriebssystem während des VM-Bootvorgangs authentifiziert werden. |
sub |
String |
Das Subjekt, das die VM-Instanz identifiziert:
|
submods |
Array | Ein Array verschiedener Behauptungen. Weitere Informationen finden Sie unter Submod-Ansprüche. |
swname |
String |
Der Name des genehmigten Betriebssystems für die VM. Der Wert ist immer |
tdx |
Objekt | Ein Objekt mit Ansprüchen für Intel TDX-Instanzen. Weitere Informationen finden Sie unter Intel TDX-Ansprüche. |
Aussagen zu Intel TDX
In der folgenden Tabelle werden die tdx-Claims in einem Google Cloud-Attestierungstoken für Intel TDX-Instanzen beschrieben.
| Anforderung | Typ | Beschreibung |
|---|---|---|
tcb_evaluation_data_number |
Uint32 | Monoton steigende TCB Evaluation Data Number (TCB-Bewertungsdatennummer) von Intel, die mit dem FMSPC der Plattform aus den Intel TCB-Informationen verknüpft ist. |
gcp_attester_tcb_date |
String | Zeitstempel (UTC) der Intel TCB-Bewertungs-Baseline. |
mrtd1
|
String (hexadezimal) | Messung der Inhalte der ersten Vertrauensdomäne und der virtuellen Firmware (OVMF). |
rtmr01
|
String (hexadezimal) | Laufzeitmessungsregister 0 (virtuelle Firmwarekonfiguration und Systemparameter). |
rtmr1 |
String (hexadezimal) | Laufzeitmessungsregister 1 (Messungen des Bootloaders und des Kernels des Gastbetriebssystems). |
rtmr2 |
String (hexadezimal) | Laufzeitmessungsregister 2 (erste RAM-Disk (initramfs) und Kernel-Befehlszeile). |
rtmr3 |
String (hexadezimal) | Laufzeitmessung 3 (Laufzeiterweiterungen und Anwendungen für Kunden). |
fmspc |
String (hexadezimal) | 6‑Byte-SKU für Familie, Modell und Stepping für die Suche im Intel Provisioning Certification Service (PCS). |
tee_tcb_svn |
String (hexadezimal) | 16‑Byte-Array mit den Sicherheitsversionsnummern der TDX‑TCB-Komponenten beim Start der Trust Domain. |
pcesvn |
Uint16 | SVN der Provisioning Certification Enclave (PCE). |
sgx_tcb_comp_svn |
String (hexadezimal) | 16‑Byte-Array mit den Sicherheitsversionsnummern der Intel SGX TCB-Komponenten. |
xfam |
String (hexadezimal) | 8‑Byte-Maske der aktivierten erweiterten CPU-Funktionen. |
tdattributes |
String (hexadezimal) | 8‑Byte-Bitmap der Attribute für die Ausführung von Gerätebäumen. |
Ansprüche von Unter-Mods
In der folgenden Tabelle werden die submods-Claims in einem Google Cloud-Attestierungstoken beschrieben.
| Anforderung | Typ | Beschreibung |
|---|---|---|
gce |
Objekt | Weitere Informationen finden Sie unter Compute Engine-Ansprüche. |
Compute Engine-Ansprüche
In der folgenden Tabelle werden die gce-Claims in einem Google Cloud-Attestierungstoken beschrieben.
| Anforderung | Typ | Beschreibung |
|---|---|---|
instance_id |
String | Die VM-Instanz-ID. |
instance_name |
String | Der Name der VM-Instanz. |
project_id |
String | Die Projekt-ID des Projekts, in dem die VM ausgeführt wird. |
project_number |
String | Die Projektnummer des Projekts, in dem die VM ausgeführt wird. |
zone |
String | Die Compute Engine-Zone, in der die Confidential VM-Instanz ausgeführt wird. |
Nächste Schritte
Weitere Informationen zu Attestansprüchen finden Sie im IETF-Entwurf für The Entity Attestation Token (EAT).
Weitere Informationen zu OpenID-Token-Claims finden Sie in der OpenID Connect Core 1.0-Spezifikation.
Weitere Informationen zu Tokens und zum Abrufen von Tokens finden Sie im Codelab zur vTPM-Attestierung.