이 문서에서는 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 스키마입니다.
값은 |
jwks_uri |
토큰 서명을 확인하는 데 사용되는 공개 키의 경로입니다. 이러한 키를 Cloud Storage 버킷에 게시할 수 있습니다.
예시 값은 |
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 |
문자열 |
잠재고객 워크로드 아이덴티티 풀과 함께 사용되는 기본 토큰의 대상은 맞춤 잠재고객이 있는 토큰의 경우 잠재고객은 토큰 요청의 잠재고객에서 에코됩니다. 최대 길이는 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 |
문자열 |
하드웨어 토큰의 고유 식별자입니다. 식별자는 다음 값 중 하나여야 합니다.
|
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 |
문자열 |
가상 머신 인스턴스를 식별하는 주체입니다.
|
submods |
배열 | 다양한 클레임의 배열입니다. 하위 모듈 클레임을 참고하세요. |
swname |
문자열 |
VM에 대해 승인된 운영체제의 이름입니다. 이 값은 항상 |
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바이트 비트맵입니다. |
하위 모드 신고
다음 표에서는 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 영역입니다. |
다음 단계
증명 클레임에 관한 자세한 내용은 엔티티 증명 토큰 (EAT)에 관한 IETF 초안을 참고하세요.
OpenID 토큰 클레임에 대한 자세한 내용은 OpenID Connect Core 1.0을 참고하세요.
토큰 및 토큰 검색에 관한 자세한 내용은 vTPM 증명 Codelab을 참고하세요.