Compute Engine instances should have Shielded VM enabled at launch
Compute Engine VM instances should have vTPM and Integrity Monitoring enabled as part of Shielded VM configuration. Checkov CKV_GCP_39 checks that Compute instances are launched with Shielded VM enabled.
Without vTPM or Integrity Monitoring, boot integrity isn't verified. Attackers can persist bootkits/rootkits, alter firmware, and evade attestation, enabling covert control and data theft.
What this control checks
Compute instances launched with Shielded VM, with vTPM and Integrity Monitoring enabled
Common pitfalls
Template-based instances without shielded config cannot FAIL
If the source_instance_template value is there (indicating a google_compute_instance_from_template), and shielded_instance_config is not present, then this check cannot FAIL, since we don't know what the underlying source template looks like.
Shielded VM only works with images that support it
Shielded VM can only be used with boot images with shielded VM support.
Audit evidence
Evidence that deployed resources meet this control: Prowler check compute_instance_shielded_vm_enabled (prowler gcp --checks compute_instance_shielded_vm_enabled); PowerPipe control gcp_compliance.control.compute_instance_shielded_vm_enabled.
Scans of the Terraform code that flag the same setting before deployment: Checkov check CKV_GCP_39.
Framework-specific interpretation
NIS2 Directive (EU 2022/2555): Mapped to 6.2.2.b (apply principles for engineering secure systems and secure coding principles to any information system development...), 6.6.1.a (security patches are applied within a reasonable time after they become available;) and 6.9.2 (For that purpose, the relevant entities shall in particular implement measures that detect or prevent the use of...).
NIST Cybersecurity Framework v2.0: Mapped to ID.AM-01 (Inventories of hardware managed by the organization are maintained.), ID.RA-09 (The authenticity and integrity of hardware and software are assessed prior to acquisition and use.), PR.IR-02 (The organization's technology assets are protected from environmental threats.) and 1 more clause.
Framework mappings
The clauses this control is mapped to in each framework.
- 6 Security in network and information systems acquisition, development and maintenance
NIST Cybersecurity Framework v2.0
- ID.AM-01: Inventories of hardware managed by the organization are maintained.
- ID.RA-09
- PR.IR-02
- PR.IR-03
- 4.8 Ensure Compute Instances Are Launched With Shielded VM Enabled
- 4.8 Ensure Compute Instances Are Launched With Shielded VM Enabled
- 4.8 Ensure Compute instances are launched with Shielded VM enabled
- 4.8 Ensure Compute instances are launched with Shielded VM enabled
- 4.8 Ensure Compute instances are launched with Shielded VM enabled
Related controls
- GKE cluster shielded nodes should have integrity monitoring enabled
- Compute Engine instances should have attached disk auto-delete disabled
- Compute Engine instances should have high-level basic roles restricted
- Compute Engine instances should have write permissions on deny policies restricted
- Compute Engine instances should have data destruction permissions restricted
Tool mappings
Use these identifiers to cross-reference this control across tools, reports, and evidence.
- Compliance.tf Control:
compute_instance_shielded_vm_enabled - Checkov Check:
CKV_GCP_39 - Powerpipe Control:
gcp_compliance.control.compute_instance_shielded_vm_enabled - Prowler Check:
compute_instance_shielded_vm_enabled
Last reviewed: 2026-10-09