More Info:
Enable integrity monitoring on Shielded GKE nodes so their boot integrity is continuously verified against a trusted baseline. This detects rootkits and boot-level tampering.Risk Level
MediumAddress
SecurityCompliance Standards
- CIS GKE
Triage and Remediation
- Remediation
Remediation
Manual Steps
Manual Steps
-
Identify node pools and current integrity monitoring settings
Run on: any machine withgcloudaccessFor each node pool name returned: -
Determine compliance for each node pool
- Mark a node pool as compliant if:
enabledistrueandintegrityMonitoring(or equivalent flag) istrue, or- The
shieldedInstanceConfigblock clearly shows integrity monitoring enabled.
- Mark a node pool as non-compliant if integrity monitoring is not enabled or the field is absent.
- Mark a node pool as compliant if:
-
Plan new compliant node pools for non-compliant workloads
For each non-compliant node pool, decide:- Desired machine type, disk size/type, labels, taints, autoscaling, and node count.
- A new node pool name that indicates shielded + integrity monitoring (for traceability).
Then create the new node pool with integrity monitoring enabled:
Add any other flags (e.g.--machine-type,--num-nodes,--enable-autoscaling,--node-taints,--node-labels) to match your current non-compliant pool. -
Migrate workloads from non-compliant to compliant node pools
Run on: any machine withkubectlaccess- If node pools are distinguished by labels/taints, adjust pod
nodeSelector,affinity, or tolerations so workloads can schedule on the new pool. - Cordon and drain each non-compliant node pool’s nodes one at a time:
- Verify pods reschedule onto the new, compliant node pool:
- If node pools are distinguished by labels/taints, adjust pod
-
Delete non-compliant node pools after successful migration
Once you confirm workloads are healthy on the new node pool(s): -
Verify remediation
Re-run the audit for each remaining node pool:Confirm all node pools in use show integrity monitoring enabled.
Using kubectl
Using kubectl
kubectl cannot enable Shielded GKE node integrity monitoring because this setting is defined on the managed node pool in GKE (cloud provider control plane / IaC), not on Kubernetes API objects. Use the cloud console,
gcloud, or your IaC pipeline to configure integrity monitoring as described in the Manual Steps section.Automation
Automation
- Authenticate and set project:
- Run the script:
integrity monitoring: DISABLED <-- REVIEW / NON-COMPLIANT, orintegrity monitoring: UNKNOWN (...) <-- REVIEW

