Google Kubernetes Engine (GKE)
TMA-GKE-5.5.7
Ensure Secure Boot is enabled for Shielded GKE node pools
Description
Enable Secure Boot for Shielded GKE node pools to verify the digital signature of node VM boot components, including the kernel and bootloader, during the boot process. Secure Boot helps ensure that only trusted boot components are allowed to run when the node starts. Requires gcloud with container.clusters.get; the cluster comes from GKE_CLUSTER and GKE_LOCATION (optional GKE_PROJECT, else the gcloud default project). Every node pool is checked.
How it is checked
Audit method: Shell command
out=$(gcloud container node-pools list --cluster "${GKE_CLUSTER:?set GKE_CLUSTER}" --location "${GKE_LOCATION:?set GKE_LOCATION}" ${GKE_PROJECT:+--project=$GKE_PROJECT} --format='value(name,config.shieldedInstanceConfig.enableSecureBoot)') || exit 1
bad=$(printf '%s\n' "$out" | awk -F '\t' 'NF && !($2=="True") {print $1 ": " $2}')
if [ -z "$bad" ]; then echo compliant; else printf '%s\n' "$bad"; fi- Expected output
compliant
How it is fixed
Fix method: Guidance or infrastructure patch
Create a replacement node pool with Secure Boot enabled for any node pool where the audit result is not true. Secure Boot is disabled by default for node pools and should be explicitly enabled when creating the replacement node pool. gcloud container node-pools create $POOL_NAME \ --cluster $CLUSTER_NAME \ --location $LOCATION \ --project $PROJECT_ID \ --shielded-secure-boot • Before migrating workloads, validate that Secure Boot will not block required boot components or node level dependencies. On Ubuntu nodes, Secure Boot blocks unsigned third party kernel modules from loading. Migrate workloads from the noncompliant node pool to the new Secure Boot enabled node pool, validate workload health, and then drain and delete the old node pool. After remediation, rerun the audit command and confirm that enableSecureBoot returns true.
Properties
- Operating systems
- Any
- Tags
- gkemanaged-services
- Reference
- CIS Google Kubernetes Engine (GKE) Benchmark v2.0.0 - 5.5.7 Ensure Secure Boot is enabled for Shielded GKE node pools
Check this host
Run this on a machine you are allowed to audit. The scan is read-only.
tmaegis scan --target gke --level 2