Skip to main content

More Info:

Shielded Gke Nodes Provides Verifiable Integrity Via Secure Boot, Virtual Trusted Platform Module (Vtpm)-Enabled Measured Boot, And Integrity Monitoring.

Risk Level

High

Address

Security

Compliance Standards

  • CIS GKE

Triage and Remediation

Remediation

Manual Steps

  1. Identify clusters and check current shielded node status
    Run on any machine with gcloud configured:
    For any cluster where shieldedNodes.enabled is not true, gather full details:
  2. 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:
  3. 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:
  4. 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).
  5. Enable Shielded GKE Nodes on approved clusters
    For each approved cluster, run on any machine with gcloud configured:
    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.
  6. 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:
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.
How to run (any machine with gcloud/jq access):
How to interpret output:
  • Output is CSV: project,location,cluster_name,shielded_nodes_enabled
  • Compliant clusters: rows where shielded_nodes_enabled is true.
  • Problematic clusters (need review and likely remediation):
    • shielded_nodes_enabled is false
    • or shielded_nodes_enabled is empty / missing
    • or value starts with ERROR- (script could not reliably assess the cluster)
For any problematic cluster, review business/technical constraints and, if appropriate, enable Shielded GKE Nodes using:

Additional Reading: