4.11 Ensure That Compute Instances Have Confidential Computing Enabled (Automated)
Profile Applicability
- Level 2
Description
Google Cloud encrypts data at-rest and in-transit, but customer data must be decrypted for processing. Confidential Computing is a breakthrough technology that encrypts data in-use while it is being processed. Confidential Computing environments keep data encrypted in memory and elsewhere outside the central processing unit (CPU).
Confidential VMs leverage hardware-based memory encryption technologies, such as AMD Secure Encrypted Virtualization (SEV), AMD SEV-SNP, and Intel Trust Domain Extensions (TDX), depending on the chosen machine type and CPU platform. Customer data will stay encrypted while it is used, indexed, queried, or trained on. Encryption keys are generated by and reside solely in dedicated hardware and are not exportable, enhancing isolation and security. Built-in hardware optimizations ensure Confidential Computing workloads experience minimal to no significant performance penalties.
Rationale
Confidential Computing enables customers' sensitive code and other data encrypted in memory during processing. Google does not have access to the encryption keys. Confidential VM can help alleviate concerns about risk related to either dependency on Google infrastructure or Google insiders' access to customer data in the clear.
Impact
- Confidential Computing for Compute instances does not support live migration. Unlike regular Compute instances, Confidential VMs experience disruptions during maintenance events like a software or hardware update.
- Additional charges may be incurred when enabling this security feature. See https://cloud.google.com/compute/confidential-vm/pricing for more info.
Audit
Note: Confidential Computing is currently only supported on limited VM configurations. To learn more about VM configurations supported by Confidential Computing, visit https://cloud.google.com/confidential-computing/confidential-vm/docs/supported-configurations.
From Google Cloud Console
- Go to the
VM instancespage by visiting: https://console.cloud.google.com/compute/instances. - Click on the instance name to see its VM instance details page.
- Ensure that
Confidential VM serviceisEnabled.
From Google Cloud CLI
- List the instances in your project and get details on each instance:
gcloud compute instances list --format=json
- Ensure that
enableConfidentialComputeis set totruefor all instances with machine type starting with "n2d-".
confidentialInstanceConfig:
enableConfidentialCompute: true
Remediation
Confidential Computing can only be enabled when an instance is created. You must delete the current instance and create a new one.
From Google Cloud Console
- Go to the VM instances page by visiting: https://console.cloud.google.com/compute/instances.
- Click
CREATE INSTANCE. - Fill out the desired configuration for your instance.
- Under the
Confidential VM servicesection, check the optionEnable the Confidential Computing service on this VM instance. - Click
Create.
From Google Cloud CLI
Create a new instance with Confidential Compute enabled:
gcloud compute instances create <INSTANCE_NAME> --zone <ZONE> --confidential-compute --maintenance-policy=TERMINATE
Default Value
By default, Confidential Computing is disabled for Compute instances.
References
- https://cloud.google.com/compute/confidential-vm/docs/creating-cvm-instance
- https://cloud.google.com/compute/confidential-vm/docs/about-cvm
- https://cloud.google.com/confidential-computing
- https://cloud.google.com/blog/products/identity-security/introducing-google-cloud-confidential-computing-with-confidential-vms
CIS Controls
| Controls Version | Control | IG 1 | IG 2 | IG 3 |
|---|---|---|---|---|
| v8 | 3.11 Encrypt Sensitive Data at Rest | X | X | |
| v7 | 14.8 Encrypt Sensitive Information at Rest | X |