本文档介绍了 Google Cloud Attestation 令牌中的声明。这些令牌是实体证明令牌 (EAT),以 JSON Web 令牌 (JWT) 的形式进行编码。可以使用 https://jwt.io/ 等工具对 JWT 进行解码。
声明是在 Google Cloud Attestation well-known 端点上定义的。
解码后的令牌示例
Google Cloud Attestation 令牌中的声明因机密虚拟机实例中使用的机密计算技术而异。
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 值)。
机密虚拟机支持 RS256 算法。
|
issuer |
机密虚拟机用作其签发者标识符的 HTTPS 方案。
值为 |
jwks_uri |
用于验证令牌签名的公钥的路径。 您可以将这些密钥发布到 Cloud Storage 存储桶中。
您可以在以下网址中找到
示例值为 |
response_types_supported |
支持的机密虚拟机响应类型列表。机密虚拟机支持 id_token。
|
scopes_supported |
机密虚拟机实例支持的
OAuth 2.0 范围值。机密虚拟机仅支持 openid。
|
subject_types_supported |
机密虚拟机支持的主体标识符类型。机密虚拟机支持 public。
|
顶级声明
下表介绍了 Google Cloud Attestation 证明令牌中受支持的顶级声明。
| 声明 | 类型 | 说明 |
|---|---|---|
aud |
字符串 |
受众群体。对于与工作负载身份池搭配使用的默认令牌,受众群体为 对于具有自定义受众群体的令牌,受众群体会从令牌请求中的受众群体进行回显。长度上限为 512 字节。 |
dbgstat |
字符串 | 硬件的调试状态。不适用于 AMD SEV。 |
eat_nonce |
字符串或字符串数组 | 证明令牌的一个或多个随机数。这些值会从自定义令牌请求中发送的令牌选项回显。每个随机数必须介于 10 到 74 字节之间(含 10 和 74 字节)。最多允许使用 6 个随机数。 |
eat_profile |
字符串 |
定义令牌架构的实体证明令牌 (EAT) 配置文件的 URI。值为 https://cloud.google.com/confidential-computing/confidential-vm/docs/token-claims。
|
exp |
整数,Unix 时间戳 |
令牌不得用于处理的过期时间(在此时间或之后)。该值是一个 JSON 数字,表示从 1970-01-01T0:0:0Z(以世界协调时间 [UTC] 为单位)到过期时间之间的秒数。
|
google_service_accounts |
字符串数组 | 正在运行保密虚拟机工作负载的经过验证的服务账号。 |
hwmodel |
字符串 |
硬件令牌的唯一标识符。标识符必须是以下值之一:
|
iat |
整数,Unix 时间戳 |
JWT 的签发时间。该值是一个 JSON 数字,表示从 1970-01-01T0:0:0Z(以世界协调时间 [UTC] 为准)到问题发生时所经过的秒数。
|
iss |
字符串 |
令牌的颁发者,设置为 https://confidentialcomputing.googleapis.com。
|
nbf |
整数,Unix 时间戳 |
允许处理 JWT 的时间。该值是一个 JSON 数字,表示自 1970-01-01T0:0:0Z 以来经过的秒数(以世界协调时间 [UTC] 为单位)。
|
oemid |
Uint64 |
Google 的
私有企业编号 (PEN),即 11129。
|
secboot |
布尔值 | 安全启动是否已启用,这可确保在虚拟机启动过程中对固件和操作系统进行身份验证。 |
sub |
字符串 |
用于标识虚拟机实例的主体:
|
submods |
数组 | 各种声明的数组。请参阅子模块声明。 |
swname |
字符串 |
虚拟机的获批操作系统的名称。 值始终为 |
tdx |
对象 | 包含 Intel TDX 实例声明的对象。请参阅 Intel TDX 声明。 |
Intel TDX 声明
下表介绍了 Intel TDX 实例的 Google Cloud Attestation 令牌中的 tdx 声明。
| 声明 | 类型 | 说明 |
|---|---|---|
tcb_evaluation_data_number |
Uint32 | 与平台 FMSPC 关联的单调递增的 Intel TCB 评估数据编号(来自 Intel TCB 信息)。 |
gcp_attester_tcb_date |
字符串 | Intel TCB 评估基准的时间戳 (UTC)。 |
mrtd1
|
字符串(十六进制) | 初始可信网域内容和虚拟固件 (OVMF) 的衡量。 |
rtmr01
|
字符串(十六进制) | 运行时测量寄存器 0(虚拟固件配置和系统参数)。 |
rtmr1 |
字符串(十六进制) | 运行时测量寄存器 1(客户操作系统引导加载程序和内核测量结果)。 |
rtmr2 |
字符串(十六进制) | 运行时度量注册信息 2(初始 RAM 磁盘 (initramfs) 和内核命令行)。 |
rtmr3 |
字符串(十六进制) | 运行时测量寄存器 3(客户运行时扩展程序和应用)。 |
fmspc |
字符串(十六进制) | 用于 Intel Provisioning Certification Service (PCS) 查找的 6 字节 Family-Model-Stepping SKU。 |
tee_tcb_svn |
字符串(十六进制) | 启动信任网域时 TDX TCB 组件安全版本号的 16 字节数组。 |
pcesvn |
Uint16 | 配置认证 Enclave (PCE) 的 SVN。 |
sgx_tcb_comp_svn |
字符串(十六进制) | Intel SGX TCB 组件安全版本号的 16 字节数组。 |
xfam |
字符串(十六进制) | 已启用的 CPU 扩展功能的 8 字节掩码。 |
tdattributes |
字符串(十六进制) | TD 执行属性的 8 字节位图。 |
子模组声明
下表介绍了 Google Cloud Attestation 令牌中的 submods 声明。
| 声明 | 类型 | 说明 |
|---|---|---|
gce |
对象 | 请参阅 Compute Engine 声明。 |
Compute Engine 声明
下表介绍了 Google Cloud Attestation 令牌中的 gce 声明。
| 声明 | 类型 | 说明 |
|---|---|---|
instance_id |
字符串 | 虚拟机实例 ID。 |
instance_name |
字符串 | 虚拟机实例名称。 |
project_id |
字符串 | 虚拟机运行所在项目的 项目 ID。 |
project_number |
字符串 | 虚拟机所运行项目的项目编号。 |
zone |
字符串 | 机密虚拟机实例运行所在的 Compute Engine 可用区。 |
后续步骤
如需详细了解证明声明,请参阅 IETF 草稿实体证明令牌 (EAT)。
如需详细了解 OpenID 令牌声明,请参阅 OpenID Connect Core 1.0。
如需详细了解令牌以及如何检索令牌,请参阅 vTPM 证明 Codelab。