Skip to content

CSPACE-META-01: Confidential VM metadata is not broadly mutable

Property Value
Severity high
Platform GCP Confidential Space (AMD SEV-SNP)
Lifecycle stage deploy
Mode Passive: read-only cloud API calls.

What it checks

It passes when:

  • No broad/impersonatable principal can rewrite the VM's tee-* metadata.

Example failures:

  • … principal(s) can rewrite the VM's metadata (tee-image-reference/tee-cmd/tee-env): …. They can run their own code as the attested workload.
  • The workload SA can rewrite the VM's tee-image-reference/tee-cmd metadata — it can run its own code as the attested workload.

How to fix

  • Restrict compute.instances.setMetadata on this instance to a tight human-admin set; never grant metadata-mutating roles to the workload SA or to broad/public principals. Prefer immutable, digest-pinned deployments recreated by CI rather than in-place metadata edits.

After the fix, scan again: the check should report PASS.

When it is not assessed

SKIP:

  • Need --gcp-instance, --gcp-zone, and --gcp-project; skipping check.

ERROR:

  • Could not read instance IAM policy: …

Scan inputs

The untrust scan options this check reads:

Option Description
--gcp-instance Confidential VM instance name.
--gcp-project GCP project ID.
--gcp-zone Zone of the Confidential VM.

Permissions

The cloud API calls this check makes, read from the scanner's source:

Cloud API call Permission Access
Google Cloud compute.instances.get compute.instances.get read
Google Cloud compute.instances.getIamPolicy compute.instances.getIamPolicy read

See Required permissions for every check on this platform.

  • Runtime detection DET-C3 (GCP Confidential Space): Workload image or environment changed on the Confidential VM

Generated from untrust 1.3.0 (commit 7ef462d9a0c3).