More Info:
Shielded Gke Nodes Provides Verifiable Integrity Via Secure Boot, Virtual Trusted Platform Module (Vtpm)-Enabled Measured Boot, And Integrity Monitoring.Risk Level
HighAddress
SecurityCompliance Standards
- CIS GKE
Triage and Remediation
- Remediation
Remediation
Manual Steps
Manual Steps
-
Identify clusters and check current shielded node status
Run on any machine withgcloudconfigured:For any cluster whereshieldedNodes.enabledis nottrue, gather full details: -
Review compatibility and feature requirements
For each non-shielded cluster, confirm:- Node OS image type and version (COS/Container-Optimized OS and most recent Ubuntu images are typically compatible).
- No organization or workload requirement explicitly forbids shielded nodes (for example, custom low-level boot tooling that conflicts with secure boot).
Gather node pool and image info:
-
Assess operational impact and maintenance windows
Determine whether enabling shielded nodes will require recreating node pools or performing disruptive upgrades (cordon/drain, pod eviction, possible restarts).
For each cluster, export current workloads and disruption policies: -
Decide whether to enable Shielded GKE Nodes on each cluster
For every cluster where:- Shielded nodes are currently disabled,
- Node images are compatible, and
- A maintenance window and disruption approach are acceptable,
approve enabling Shielded GKE Nodes.
Document any cluster where you intentionally do not enable it, with a risk justification (e.g., legacy image dependency).
-
Enable Shielded GKE Nodes on approved clusters
For each approved cluster, run on any machine withgcloudconfigured:If the command reports constraints (e.g., incompatible node pools), plan and perform node pool recreation or upgrade per GKE guidance, then rerun the command. -
Verify remediation and record evidence
After the update completes, verify shielded nodes are enabled:Confirm the output shows:Optionally, re-list all clusters for a summary view:
Using kubectl
Using kubectl
kubectl cannot enable Shielded GKE Nodes because this setting is configured at the GKE cluster control-plane level through Google Cloud (gcloud/console/IaC), not via Kubernetes API objects. Refer to the Manual Steps section for guidance on updating the cluster configuration to enable Shielded Nodes.
Automation
Automation
gcloud/jq access):-
Output is CSV:
project,location,cluster_name,shielded_nodes_enabled -
Compliant clusters: rows where
shielded_nodes_enabledistrue. -
Problematic clusters (need review and likely remediation):
shielded_nodes_enabledisfalse- or
shielded_nodes_enabledis empty / missing - or value starts with
ERROR-(script could not reliably assess the cluster)

