To learn more about using attestation assertions, see Create an attestation policy.
The available assertions to construct an attestation policy are detailed in the following table. Policies can validate assertions made by the Confidential Space image, the workload container, and the VM instance.
Image assertions
| Assertion | Type | Description |
|---|---|---|
|
Interacts with:
|
Enumeration |
Verifies that the Confidential Space image is the debug or production version. The valid values are the following:
ExamplesThe following code verifies that the debug version of the Confidential Space image is being used: The following code verifies that the production version of the Confidential Space image is being used: |
assertion.submods.confidential_space.support_attributes
|
Array of strings |
Verifies the security version of the production Confidential Space image that's running on the Confidential VM instance, using its support attributes. Debug Confidential Space images have no support attribute set. The following are valid support attributes:
ExampleThe following code verifies that a stable version of the Confidential Space image is being used: |
assertion.swname |
Enumeration |
Verifies the software running on the attesting entity. The
value is always Example |
assertion.swversion |
Array of strings |
Verifies the software version of the Confidential Space image. We
recommend using
Example |
Container assertions
| Assertion | Type | Description |
|---|---|---|
|
Interacts with:
|
Array of strings |
Verifies the CMD commands and parameters used in the workload image. ExamplesThe following code verifies the CMD of the workload image hasn't been overwritten:
The following code verifies that |
|
Interacts with:
|
JSON object |
Verifies that environment variables and their values have been explicitly passed to the container. Example
The following code verifies that the environment variable
|
|
Interacts with:
|
String |
Verifies if the workload operator has overwritten environment variables in the container. Examples
The following code verifies that the workload operator has not
overridden the The following code verifies that the workload operator hasn't overwritten any environment variables: |
assertion.submods.container.image_digest |
String |
Verifies the image digest of the workload container. Specifying this condition lets multiple parties agree on an authorized workload that is allowed to access their data. Example |
assertion.submods.container.image_id |
String |
Verifies the image ID of the workload container. Example |
|
Interacts with:
|
String |
Verifies the location of the workload container running on top of the Confidential Space image. Example |
|
Interacts with:
|
JSON object |
Verifies that the image has a certain signature or is signed by a public key and signing algorithm. Specifying this condition lets multiple parties agree on an authorized workload that is allowed to access their data. The assertion can include the following elements:
Example |
|
Interacts with:
|
Enumeration |
Verifies the restart policy of the container launcher for when the workload stops. The valid values are the following:
Example |
VM assertions
| Assertion | Type | Description |
|---|---|---|
|
Interacts with:
|
Array of strings |
Verifies that a specified service account is connected to the VM
running the workload, or has been listed using
Example |
assertion.hwmodel |
String |
Verifies the underlying Confidential Computing technology. The supported platforms are as follows:
Example |
|
Interacts with:
|
Boolean |
Verifies the monitoring state on the attesting entity. Example |
assertion.submods.gce.instance_id |
String |
Verifies the VM instance ID. Example |
assertion.submods.gce.instance_name |
String |
Verifies the name of the VM instance. Example |
assertion.submods.gce.project_id |
String |
Verifies that the VM is running a Google Cloud project with the specified project ID. Example |
assertion.submods.gce.project_number |
String |
Verifies that the VM is running in a Google Cloud project with the specified project number. Example |
|
Interacts with:
|
String |
Verifies that the VM is running in the specified zone. Example |
|
Interacts with:
|
Enumeration |
Verifies the Confidential Computing features supported by an
NVIDIA GPU. Only single GPU passthrough (SPT) mode is supported
in Confidential Space, so the value is always For more information about NVIDIA Confidential Computing support, see NVIDIA Trusted Computing Solutions (PDF). Example |
|
Interacts with:
|
Enumeration |
Verifies the status of NVIDIA's Confidential Computing driver. The valid values are the following:
Example |
|
Interacts with:
|
Array of objects |
Verifies claims for each attested NVIDIA GPU. Confidential Space only supports a single GPU claim. A { "hwmodel": "GCP_NVIDIA_H100", "ueid": "490457405999046854973671575630853621547794591064", "l4_serial_number": "1216669666319372030078", "driver_version": "570.00", "vbios_version": "96.00.9F.00.01" } ExamplesThe following code verifies that the first GPU hardware model is an NVIDIA H100 running on Google Cloud: The following code verifies that the attestation claim has GPU-related claims: |