证明断言
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
如需详细了解如何使用证明断言,请参阅创建证明政策。
下表详细介绍了构建证明政策的可用断言。政策可以验证 Confidential Space 映像、工作负载容器和虚拟机实例做出的断言。
图片断言
断言 |
类型 |
说明 |
assertion.dbgstat
互动对象:
|
已定义的字符串 |
验证 Confidential Space 映像是调试版本还是生产版本。
有效值包括:
-
enable :检查是否使用了调试映像。
-
disabled-since-boot :检查是否正在使用生产映像。
示例
以下代码验证是否使用了调试版本的 Confidential Space 映像:
assertion.dbgstat == "enable"
以下代码验证是否使用了生产版本的 Confidential Space 映像:
assertion.dbgstat == "disabled-since-boot"
|
assertion.submods.confidential_space.support_attributes |
字符串数组 |
验证 TEE 的安全版本是否为生产 Confidential Space 映像。调试 Confidential Space 映像没有设置支持特性。
有三种支持特性:
-
LATEST :这是最新版本的映像,受支持。LATEST 映像同时也是 STABLE 和 USABLE 。
-
STABLE :此版本的映像受支持,并且我们会监控其漏洞情况。STABLE 映像同时也是 USABLE 。
-
USABLE :仅包含此特性的映像已不再受支持,并且我们不会再监控其漏洞情况。使用时需自行承担风险。
-
EXPERIMENTAL :仅具有此属性的图片会使用预览功能。此渠道仅用于测试目的,绝不应在生产环境中使用。EXPERIMENTAL 图片永远不会具有 LATEST 、STABLE 或 USABLE 属性。
示例
以下代码验证是否使用了稳定版本的 Confidential Space 映像:
"STABLE" in assertion.submods.confidential_space.support_attributes
|
assertion.swname |
已定义的字符串 |
验证在证明实体上运行的软件。值始终为 CONFIDENTIAL_SPACE 。
示例
assertion.swname == "CONFIDENTIAL_SPACE"
|
assertion.swversion |
字符串数组 |
验证 Confidential Space 映像的软件版本。建议使用 assertion.submods.confidential_space.support_attributes 来定位映像的最新版本。
示例
int(assertion.swversion[0]) == 230103
|
容器断言
断言 |
类型 |
说明 |
assertion.submods.container.cmd_override
互动对象:
|
字符串数组 |
验证工作负载映像中使用的
CMD 命令和参数。
示例
以下代码验证了工作负载映像的 CMD 是否未被覆盖:
size(assertion.submods.container.cmd_override) == 0
以下代码验证 program 是 CMD 覆盖中的唯一内容:
assertion.submods.container.cmd_override == ['program']
|
assertion.submods.container.env
互动对象:
|
JSON 对象 |
验证环境变量及其值是否已明确传递给容器。
示例
以下代码验证了环境变量 example-env-1 是否设置为 value-1 ,以及 example-env-2 是否设置为 value-2 。
assertion.submods.container.env == {"example-env-1": "value-1", "example-env-2": "value-2"}
|
assertion.submods.container.env_override
互动对象:
|
字符串 |
验证工作负载 operator 是否覆盖了容器中的环境变量。
示例
以下代码用于验证工作负载运算符是否未替换 example 环境变量:
!has(assertion.submods.container.env_override.example)
以下代码可验证工作负载运算符是否未覆盖任何环境变量:
size(assertion.submods.container.env_override) == 0
|
assertion.submods.container.image_digest |
字符串 |
验证工作负载容器的映像摘要。指定此条件可让多方就允许访问其数据的授权工作负载达成共识。
示例
assertion.submods.container.image_digest == "sha256:837ccb607e312b170fac7383d7ccfd61fa5072793f19a25e75fbacb56539b86b"
|
assertion.submods.container.image_id |
字符串 |
验证工作负载容器的映像 ID。
示例
assertion.submods.container.image_id == "sha256:652a44b0e911271ba07cf2915cd700fdfa50abd62a98f87a57fdebc59843d93f"
|
assertion.submods.container.image_reference
互动对象:
|
字符串 |
验证在 Confidential Space 映像上运行的工作负载容器的位置。
示例
assertion.submods.container.image_reference == "us-docker.pkg.dev/PROJECT_ID/WORKLOAD_CONTAINER:latest"
|
assertion.submods.container.image_signatures
互动对象:
|
JSON 对象 |
验证映像是否具有特定签名或是否由公钥和签名算法签名。指定此条件可让多方就允许访问其数据的授权工作负载达成共识。
断言可以包含以下元素:
-
key_id :公钥的十六进制指纹。如需获取指纹,您可以运行以下命令:
openssl pkey -pubin -in public_key.pem -outform DER | openssl sha256
其中,public_key.pem 是您的 PEM 格式的公钥。
signature :与签名容器关联且遵循
简单签名格式的载荷的签名。
-
signature_algorithm :用于对密钥进行签名的算法。以下项之一:
RSASSA_PSS_SHA256 (具有 SHA-256 摘要的 RSASSA-PSS)
RSASSA_PKCS1V15_SHA256 (具有 SHA-256 摘要的 RSASSA-PKCS1 v1_5)
ECDSA_P256_SHA256 (具有 SHA-256 摘要的 P-256 曲线上的 ECDSA)
示例
assertion.swname == 'CONFIDENTIAL_SPACE' && ['ECDSA_P256_SHA256:PUBLIC_KEY_FINGERPRINT'].exists(fingerprint, fingerprint in assertion.submods.container.image_signatures.map(sig, sig.signature_algorithm+':'+sig.key_id)) && 'serviceaccount.iam.gserviceaccount.com' in assertion.google_service_accounts"
|
assertion.submods.container.restart_policy
互动对象:
|
已定义的字符串 |
验证工作负载停止时容器启动器的重启政策。
有效值包括:
Never (默认)
Always
OnFailure
示例
assertion.submods.container.restart_policy == "Never"
|
虚拟机断言
断言 |
类型 |
说明 |
assertion.google_service_accounts
互动对象:
|
字符串数组 |
验证指定的服务账号是否已关联到运行工作负载的虚拟机,或者是否已使用虚拟机元数据中的
tee-impersonate-service-accounts
列出。
示例
workload-service-account@my-project.iam.gserviceaccount.com in assertion.google_service_accounts
|
assertion.hwmodel |
字符串 |
验证底层机密计算技术。支持的平台如下:
示例
assertion.hwmodel == "GCP_AMD_SEV"
|
assertion.submods.confidential_space.monitoring_enabled
互动对象:
|
布尔值 |
验证证明实体上的监控状态。
示例
assertion.submods.confidential_space.monitoring_enabled.memory == true
|
assertion.submods.gce.instance_id |
字符串 |
验证虚拟机实例 ID。
示例
assertion.submods.gce.instance_id == "0000000000000000000"
|
assertion.submods.gce.instance_name |
字符串 |
验证虚拟机实例的名称。
示例
assertion.submods.gce.instance_name == "workload-vm"
|
assertion.submods.gce.project_id |
字符串 |
验证虚拟机是否正在运行具有指定项目 ID 的 Google Cloud 项目。
示例
assertion.submods.gce.project_id == "project-id"
|
assertion.submods.gce.project_number |
字符串 |
验证虚拟机是否在具有指定项目编号的 Google Cloud 项目中运行。
示例
assertion.submods.gce.project_number == "00000000000"
|
assertion.submods.gce.zone
互动对象:
|
字符串 |
验证虚拟机是否正在指定可用区中运行。
示例
assertion.submods.gce.zone == "us-central1-a"
|
assertion.submods.nvidia_gpu.cc_mode
互动对象:
|
已定义的字符串 |
验证 NVIDIA 的机密计算驱动程序的状态。
有效值包括:
-
OFF :未启用任何 NVIDIA 机密计算功能。
-
ON :NVIDIA H100 硬件、固件和软件已完全激活机密计算功能。
-
DEVTOOLS :GPU 处于部分机密计算模式,该模式与 ON 模式的工作流程相匹配,但会停用安全保护措施。
示例
assertion.submods.nvidia_gpu.cc_mode == "ON"
|
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-09-11。
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["很难理解","hardToUnderstand","thumb-down"],["信息或示例代码不正确","incorrectInformationOrSampleCode","thumb-down"],["没有我需要的信息/示例","missingTheInformationSamplesINeed","thumb-down"],["翻译问题","translationIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2025-09-11。"],[],[],null,[]]