TMAegis
More rules for gke

TMA-GKE-5.3.1

Enable application-layer Secrets encryption with Cloud KMS keys

HighLevel 2Automatedgke

Description

Enable application layer Secrets encryption for GKE Standard clusters using a Cloud KMS key. This control adds customer managed encryption for Kubernetes Secret resources stored in the cluster state database, providing an additional protection layer beyond Google managed encryption at rest. Requires gcloud with container.clusters.get; the cluster comes from GKE_CLUSTER and GKE_LOCATION (optional GKE_PROJECT, else the gcloud default project).

How it is checked

Audit method: Shell command

shell
out=$(gcloud container clusters describe "${GKE_CLUSTER:?set GKE_CLUSTER}" --location "${GKE_LOCATION:?set GKE_LOCATION}" ${GKE_PROJECT:+--project=$GKE_PROJECT} --format='value(databaseEncryption.state,databaseEncryption.currentState,databaseEncryption.keyName)') || exit 1
set -- $(printf '%s' "$out" | tr '\t' ' ')
if [ "${1:-}" = ALL_OBJECTS_ENCRYPTION_ENABLED ] && [ "${2:-}" = CURRENT_STATE_ALL_OBJECTS_ENCRYPTION_ENABLED ] && [ -n "${3:-}" ]; then echo compliant; else echo "noncompliant: $out"; fi
Expected output
compliant

How it is fixed

Fix method: Guidance or infrastructure patch

Enable application layer encryption on the GKE Standard cluster when the audit shows that databaseEncryption.state is not ALL_OBJECTS_ENCRYPTION_ENABLED, databaseEncryption.currentState is not CURRENT_STATE_ALL_OBJECTS_ENCRYPTION_ENABLED, or databaseEncryption.keyName does not reference the approved Cloud KMS CryptoKey. In the Google Cloud console: • Open the GKE cluster • Select Edit and then go to the Security section • Edit Application-layer Secrets Encryption • Check Encrypt secrets at the application layer • Choose the approved Cloud KMS key.

Properties

Operating systems
Any
Tags
gkemanaged-servicessecrets
Reference
CIS Google Kubernetes Engine (GKE) Benchmark v2.0.0 - 5.3.1 Enable application-layer Secrets encryption with Cloud KMS keys

Check this host

Run this on a machine you are allowed to audit. The scan is read-only.

shell
tmaegis scan --target gke --level 2