More Info:
Encrypt GKE Persistent Disks with Customer-Managed Encryption Keys so you control the key lifecycle for data at rest. CMEK provides stronger control than default Google-managed encryption.Risk Level
MediumAddress
SecurityCompliance Standards
- CIS GKE
Triage and Remediation
- Remediation
Remediation
Manual Steps
Manual Steps
-
Inventory and review existing Persistent Disks and their encryption
- On any machine with
gcloudaccess, list all PDs used by the cluster’s PVs:For each PD name returned (replaceDISK_NAME,LOCATION,PROJECT_ID): - Record whether
kmsKeyNameis present and which key is used. Disks withoutkmsKeyNameuse Google-managed keys.
- On any machine with
-
Review or create a suitable CMEK key in Cloud KMS
- On any machine with
gcloudaccess, list existing keys that could be used for PD encryption: - If no appropriate key exists, create one per your org’s policy (algorithm, rotation, IAM). Ensure key location matches or is compatible with your cluster’s region/zone.
- On any machine with
-
Verify IAM and key policy allow GKE to use the CMEK key
- On any machine with
gcloudaccess, get the GKE node service account (or default compute service account): - Grant it the necessary roles on the KMS key (e.g.
roles/cloudkms.cryptoKeyEncrypterDecrypter), adjusting for your security policy:
- On any machine with
-
Decide per-PV remediation: recreate disks with CMEK or accept current state
- For each disk without CMEK, decide:
- If data is non-critical or can be migrated: plan to create a new PD with CMEK and migrate workload data (e.g., via backup/restore, filesystem copy, or application-level migration).
- If data is critical and difficult to migrate: document the business justification for continuing with Google-managed keys until a migration window is available.
- Note that existing PDs cannot be “converted” in-place from Google-managed to CMEK; they must be recreated and data migrated.
- For each disk without CMEK, decide:
-
Implement CMEK for new PD-backed PVs and workloads
- For disks created via
gcloud, specify the key: - For dynamically provisioned PVs, update your StorageClass (via IaC or console) to use the CMEK key per the GKE CMEK documentation, so future PVs are backed by CMEK-encrypted PDs.
- For disks created via
-
Verify remediation
- After recreating/migrating PVs and/or updating StorageClasses, re-run the disk inspection for relevant PDs:
- Confirm
kmsKeyNameis set to the expected KMS key for all disks that must comply with this control.
- After recreating/migrating PVs and/or updating StorageClasses, re-run the disk inspection for relevant PDs:
Using kubectl
Using kubectl
kubectl cannot enable or change Customer-Managed Encryption Keys (CMEK) for GKE Persistent Disks, because CMEK is configured at the GCP/GKE and disk/IaC level, not via Kubernetes API objects. Use the Google Cloud Console,
gcloud CLI, or your IaC to configure CMEK as described in the Manual Steps section.Automation
Automation

