Google Cloud Attestation 토큰 클레임

이 문서에서는 Google Cloud Attestation 토큰의 클레임을 설명합니다. 토큰은 JSON 웹 토큰 (JWT)으로 인코딩된 엔티티 증명 토큰(EAT)입니다. JWT는 https://jwt.io/와 같은 도구를 사용하여 디코딩할 수 있습니다.

클레임은 Google Cloud Attestation well-known 엔드포인트에서 정의됩니다.

디코딩된 토큰 예시

Google Cloud Attestation 토큰의 클레임은 컨피덴셜 VM 인스턴스에서 사용되는 컨피덴셜 컴퓨팅 기술에 따라 다릅니다.

AMD SEV

다음은 디코딩된 AMD SEV 증명 토큰의 예시입니다.

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

다음은 디코딩된 Intel TDX 증명 토큰의 예시입니다.

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

토큰 클레임

다음 표에서는 Google Cloud Attestation 토큰의 상위 수준 클레임을 설명합니다. 이러한 클레임은 OpenID Connect 1.0 사양을 준수합니다.

well-known 엔드포인트 값 설명
claims_supported 최상위 클레임을 참고하세요.
id_token_signing_alg_values_supported 토큰에서 지원하는 서명 알고리즘 (alg 값)입니다. 컨피덴셜 VM은 RS256 알고리즘을 지원합니다.
issuer

컨피덴셜 VM이 발급자 식별자로 사용하는 HTTPS 스키마입니다.

값은 https://confidentialcomputing.googleapis.com입니다.

jwks_uri

토큰 서명을 확인하는 데 사용되는 공개 키의 경로입니다. 이러한 키를 Cloud Storage 버킷에 게시할 수 있습니다.

jwks_uri 키는 https://www.googleapis.com/service_accounts/v1/metadata/jwk/signer@confidentialspace-sign.iam.gserviceaccount.com에서 확인할 수 있습니다.

예시 값은 https://example.storage.googleapis.com/jwks.json입니다.

response_types_supported 지원되는 컨피덴셜 VM 응답 유형 목록입니다. 컨피덴셜 VM은 id_token을 지원합니다.
scopes_supported 컨피덴셜 VM 인스턴스에서 지원하는 OAuth 2.0 범위 값입니다. 컨피덴셜 VM은 openid만 지원합니다.
subject_types_supported 컨피덴셜 VM에서 지원하는 주체 식별자 유형입니다. 컨피덴셜 VM은 public을 지원합니다.

최상위 클레임

다음 표에서는 Google Cloud Attestation 토큰에서 지원되는 최상위 클레임을 설명합니다.

주장 유형 설명
aud 문자열

잠재고객 워크로드 아이덴티티 풀과 함께 사용되는 기본 토큰의 대상은 https://sts.googleapis.com입니다. 이 토큰은 컨피덴셜 VM 인스턴스의 런처에 의해 매시간 가져옵니다.

맞춤 잠재고객이 있는 토큰의 경우 잠재고객은 토큰 요청의 잠재고객에서 에코됩니다. 최대 길이는 512바이트입니다.

dbgstat 문자열 하드웨어의 디버그 상태입니다. AMD SEV에는 사용할 수 없습니다.
eat_nonce 문자열 또는 문자열 배열 증명 토큰의 하나 이상의 nonce입니다. 값은 맞춤 토큰 요청에서 전송된 토큰 옵션에서 에코됩니다. 각 nonce는 10~74바이트여야 합니다. 최대 6개의 nonce가 허용됩니다.
eat_profile 문자열 토큰 스키마를 정의하는 엔티티 증명 토큰 (EAT) 프로필의 URI입니다. 값은 https://cloud.google.com/confidential-computing/confidential-vm/docs/token-claims입니다.
exp 정수, Unix 타임스탬프 토큰이 처리용으로 허용되지 않아야 하는 만료 시간입니다. 이 값은 1970-01-01T0:0:0Z부터 만료 시간까지 UTC로 측정된 시간(초)을 나타내는 JSON 숫자입니다.
google_service_accounts 문자열 배열 컨피덴셜 VM 워크로드를 실행하는 검증된 서비스 계정입니다.
hwmodel 문자열

하드웨어 토큰의 고유 식별자입니다. 식별자는 다음 값 중 하나여야 합니다.

  • GCP_AMD_SEV
  • GCP_AMD_SEV_ES
  • GCP_SHIELDED_VM
  • GCP_INTEL_TDX
iat 정수, Unix 타임스탬프 JWT가 발급된 시간입니다. 이 값은 1970-01-01T0:0:0Z부터 문제 시간까지 UTC로 측정된 시간(초)을 나타내는 JSON 숫자입니다.
iss 문자열 토큰의 발급자로, https://confidentialcomputing.googleapis.com로 설정됩니다.
nbf 정수, Unix 타임스탬프 JWT가 처리될 수 있는 시간입니다. 이 값은 UTC로 측정된 1970-01-01T0:0:0Z부터의 초 수를 나타내는 JSON 숫자입니다.
oemid Uint64 Google 비공개 기업 번호(PEN)(11129)
secboot 불리언 보안 부트가 사용 설정되어 있는지 여부입니다. 보안 부트가 사용 설정되면 VM 부팅 프로세스 중에 펌웨어와 운영체제가 인증됩니다.
sub 문자열

가상 머신 인스턴스를 식별하는 주체입니다.

  • AMD SEV 인스턴스의 경우 인스턴스의 selfLink URL인 https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME입니다.
  • Intel TDX 인스턴스의 경우 변경 불가능한 숫자 ID(//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/INSTANCE_ID)가 포함된 Compute Engine 리소스 이름입니다.
submods 배열 다양한 클레임의 배열입니다. 하위 모듈 클레임을 참고하세요.
swname 문자열

VM에 대해 승인된 운영체제의 이름입니다.

이 값은 항상 GCE입니다.

tdx 객체 Intel TDX 인스턴스의 클레임을 포함하는 객체입니다. Intel TDX 클레임을 참고하세요.

Intel TDX 주장

다음 표에서는 Intel TDX 인스턴스용 Google Cloud Attestation 토큰의 tdx 클레임을 설명합니다.

주장 유형 설명
tcb_evaluation_data_number Uint32 Intel TCB 정보에서 플랫폼의 FMSPC와 연결된 단조 증가 Intel TCB 평가 데이터 번호
gcp_attester_tcb_date 문자열 Intel TCB 평가 기준의 타임스탬프 (UTC)입니다.
mrtd1 문자열 (16진수) 초기 신뢰 도메인 콘텐츠와 가상 펌웨어(OVMF) 측정
rtmr01 문자열 (16진수) 런타임 측정 레지스터 0 (가상 펌웨어 구성 및 시스템 매개변수)
rtmr1 문자열 (16진수) 런타임 측정 레지스터 1 (게스트 OS 부트로더 및 커널 측정값)
rtmr2 문자열 (16진수) 런타임 측정 레지스터 2 (초기 RAM 디스크 (initramfs) 및 커널 명령줄)
rtmr3 문자열 (16진수) 런타임 측정 등록 3 (고객 런타임 확장 프로그램 및 애플리케이션)
fmspc 문자열 (16진수) Intel 프로비저닝 인증 서비스 (PCS) 조회를 위한 6바이트 가족-모델-스테핑 SKU입니다.
tee_tcb_svn 문자열 (16진수) 신뢰 도메인이 실행된 경우 TDX TCB 구성요소 보안 버전 번호의 16바이트 배열입니다.
pcesvn Uint16 프로비저닝 인증 인클레이브 (PCE)의 SVN입니다.
sgx_tcb_comp_svn 문자열 (16진수) Intel SGX TCB 구성요소 보안 버전 번호의 16바이트 배열입니다.
xfam 문자열 (16진수) 사용 설정된 CPU 확장 기능의 8바이트 마스크입니다.
tdattributes 문자열 (16진수) TD 실행 속성의 8바이트 비트맵입니다.
1 액세스 정책에서 이러한 측정값을 사용하지 마세요. 언제든지 발생할 수 있는 펌웨어 업데이트와 같은 기본 인프라의 변경사항에 영향을 받습니다. 이러한 측정은 주로 투명성 목적으로 제공됩니다.

하위 모드 신고

다음 표에서는 Google Cloud Attestation 토큰의 submods 클레임을 설명합니다.

주장 유형 설명
gce 객체 Compute Engine 클레임을 참고하세요.

Compute Engine 클레임

다음 표에서는 Google Cloud Attestation 토큰의 gce 클레임을 설명합니다.

주장 유형 설명
instance_id 문자열 VM 인스턴스 ID입니다.
instance_name 문자열 VM 인스턴스 이름입니다.
project_id 문자열 VM이 실행되는 프로젝트의 프로젝트 ID입니다.
project_number 문자열 VM이 실행되는 프로젝트의 프로젝트 번호입니다.
zone 문자열 컨피덴셜 VM 인스턴스가 실행 중인 Compute Engine 영역입니다.

다음 단계