Declaraciones del token de Google Cloud Attestation

En este documento, se describen las declaraciones en los tokens de certificación de Google Cloud. Los tokens son tokens de certificación de entidades (EAT), que se codifican como tokens web JSON (JWT). Los JWT se pueden decodificar con herramientas como https://jwt.io/.

Las declaraciones se definen en el extremo well-known de la certificación de Google Cloud.

Ejemplos de tokens decodificados

Las declaraciones de un token de certificación de Google Cloud varían según la tecnología de Confidential Computing que se use en tu instancia de Confidential VM.

AMD SEV

A continuación, se muestra un ejemplo de un token de certificación de SEV de AMD decodificado:

{
  "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

A continuación, se muestra un ejemplo de un token de certificación de Intel TDX decodificado:

{
  "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"
  ]
}

Reclamaciones de tokens

En la siguiente tabla, se describen las declaraciones de alto nivel en un token de atestación de Google Cloud. Estos reclamos cumplen con la especificación de OpenID Connect 1.0.

Valores del extremo well-known Descripción
claims_supported Consulta Reclamos de nivel superior.
id_token_signing_alg_values_supported Son los algoritmos de firma (valores de alg) admitidos por el token. Confidential VM admite el algoritmo RS256.
issuer

Es el esquema HTTPS que usa Confidential VM como identificador de emisor.

El valor es https://confidentialcomputing.googleapis.com.

jwks_uri

Es la ruta de acceso a las claves públicas que se usan para verificar la firma del token. Puedes publicar estas claves en un bucket de Cloud Storage.

Puedes encontrar las claves de jwks_uri en https://www.googleapis.com/service_accounts/v1/metadata/jwk/signer@confidentialspace-sign.iam.gserviceaccount.com.

Un valor de ejemplo es https://example.storage.googleapis.com/jwks.json.

response_types_supported Es la lista de tipos de respuesta de Confidential VM admitidos. Confidential VM admite id_token.
scopes_supported Valores de alcance de OAuth 2.0 que admite la instancia de VM confidencial. Confidential VM solo admite openid.
subject_types_supported Son los tipos de identificadores de sujeto que admite Confidential VM. Confidential VM admite public.

Afirmaciones de nivel superior

En la siguiente tabla, se describen los principales reclamos admitidos en un token de certificación de Google Cloud.

Solicitar Tipo Descripción
aud String

El público Para el token predeterminado que se usa con un grupo de identidades para cargas de trabajo, el público es https://sts.googleapis.com. El iniciador de la instancia de Confidential VM recupera este token cada hora.

En el caso de los tokens con públicos personalizados, el público se repite desde el público en la solicitud del token. La longitud máxima es de 512 bytes.

dbgstat String Es el estado de depuración del hardware. No está disponible para la SEV de AMD.
eat_nonce Cadena o array de cadenas Es uno o más nonces para el token de certificación. Los valores se repiten a partir de las opciones del token enviadas en la solicitud del token personalizado. Cada nonce debe tener entre 10 y 74 bytes inclusive. Se permite un máximo de seis nonces.
eat_profile String Es el URI del perfil del token de certificación de entidad (EAT) que define el esquema del token. El valor es https://cloud.google.com/confidential-computing/confidential-vm/docs/token-claims.
exp Número entero, marca de tiempo de Unix Es la fecha y hora de vencimiento a partir de las cuales no se debe aceptar el token para su procesamiento. El valor es un número JSON que representa la cantidad de segundos desde 1970-01-01T0:0:0Z, medidos en UTC, hasta el hora de vencimiento.
google_service_accounts Array de cadenas Son las cuentas de servicio validadas que ejecutan la carga de trabajo de la VM confidencial.
hwmodel String

Es el identificador único del token de hardware. El identificador debe ser uno de los siguientes valores:

  • GCP_AMD_SEV
  • GCP_AMD_SEV_ES
  • GCP_SHIELDED_VM
  • GCP_INTEL_TDX
iat Número entero, marca de tiempo de Unix Es la fecha y hora en que se emitió el JWT. El valor es un número JSON que representa la cantidad de segundos desde 1970-01-01T0:0:0Z, medidos en UTC hasta la hora del problema.
iss String El emisor del token, que se establece en https://confidentialcomputing.googleapis.com.
nbf Número entero, marca de tiempo de Unix Es la fecha y hora después de la cual se permite procesar el JWT. El valor es un número JSON que representa la cantidad de segundos desde 1970-01-01T0:0:0Z, medidos en UTC.
oemid Uint64 El Número de empresa privada (PEN) de Google, que es 11129.
secboot Booleano Indica si el inicio seguro está habilitado, lo que garantiza que el firmware y el sistema operativo se autentiquen durante el proceso de inicio de la VM.
sub String

Es el asunto que identifica la instancia de máquina virtual:

  • En el caso de las instancias de SEV de AMD, esta es la URL de selfLink de la instancia: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME.
  • Para las instancias de Intel TDX, este es el nombre del recurso de Compute Engine que contiene IDs numéricos inmutables: //compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/INSTANCE_ID.
submods Arreglo Es un array de varios reclamos. Consulta Reclamos de submods.
swname String

Es el nombre del sistema operativo aprobado para la VM.

El valor siempre es GCE.

tdx Objeto Es un objeto que contiene reclamos para instancias de Intel TDX. Consulta las afirmaciones de Intel TDX.

Afirmaciones sobre Intel TDX

En la siguiente tabla, se describen las declaraciones tdx en un token de certificación de Google Cloud para instancias de TDX de Intel.

Solicitar Tipo Descripción
tcb_evaluation_data_number Uint32 Número de datos de evaluación del TCB de Intel aumentado de forma monotónica asociado con el FMSPC de la plataforma de la información del TCB de Intel.
gcp_attester_tcb_date String Es la marca de tiempo (UTC) del modelo de referencia de evaluación del TCB de Intel.
mrtd1 Cadena (hexadecimal) Medición del contenido inicial del dominio de confianza y del firmware virtual (OVMF).
rtmr01 Cadena (hexadecimal) Registro de medición del tiempo de ejecución 0 (parámetros del sistema y configuración del firmware virtual).
rtmr1 Cadena (hexadecimal) Registro de medición de tiempo de ejecución 1 (mediciones del bootloader y el kernel del SO invitado).
rtmr2 Cadena (hexadecimal) Registro de medición del tiempo de ejecución 2 (línea de comandos del kernel y del disco RAM inicial [initramfs]).
rtmr3 Cadena (hexadecimal) Registro de medición del tiempo de ejecución 3 (extensiones y aplicaciones del tiempo de ejecución del cliente).
fmspc Cadena (hexadecimal) SKU de 6 bytes de familia-modelo-revisión para la búsqueda del Servicio de certificación de aprovisionamiento (PCS) de Intel.
tee_tcb_svn Cadena (hexadecimal) Es un array de 16 bytes con los números de versión de seguridad de los componentes del TCB de TDX cuando se inició el dominio de confianza.
pcesvn Uint16 Es la versión de SVN del enclave de certificación de aprovisionamiento (PCE).
sgx_tcb_comp_svn Cadena (hexadecimal) Es un array de 16 bytes que contiene los números de versión de seguridad de los componentes del TCB de Intel SGX.
xfam Cadena (hexadecimal) Máscara de 8 bytes de las funciones extendidas de CPU habilitadas.
tdattributes Cadena (hexadecimal) Mapa de bits de 8 bytes de los atributos de ejecución de TD.
1 No uses estas medidas en las políticas de acceso. Se ven afectados por los cambios en la infraestructura subyacente, como las actualizaciones de firmware, que pueden ocurrir en cualquier momento. Estas mediciones se proporcionan principalmente con fines de transparencia.

Reclamos de submods

En la siguiente tabla, se describen las declaraciones submods en un token de atestación de Google Cloud.

Solicitar Tipo Descripción
gce Objeto Consulta las reclamaciones de Compute Engine.

Reclamos de Compute Engine

En la siguiente tabla, se describen los reclamos de gce en un token de certificación de Google Cloud.

Solicitar Tipo Descripción
instance_id String Es el ID de la instancia de VM.
instance_name String Es el nombre de la instancia de VM.
project_id String El ID del proyecto en el que se ejecuta la VM.
project_number String Es el número del proyecto en el que se ejecuta la VM.
zone String Es la zona de Compute Engine en la que se ejecuta la instancia de VM confidencial.

¿Qué sigue?