TMA-GKE-3.1.4
Ensure that the kubelet configuration file ownership is set to root:root
MediumLevel 1Automatedgke
Description
Ensure that if the kubelet refers to a configuration file with the --config argument, that file is owned by root:root. Runs on each GKE node (path from the kubelet argument).
How it is checked
Audit method: Shell command
shell
set -f
psarg() { ps -eo args 2>/dev/null | grep -E "^([^ ]*/)?$1( |\$)" | head -n 1 | awk -v k="--$2" '{for(i=1;i<=NF;i++){if($i==k&&i<NF)v=$(i+1); else if(index($i,k"=")==1)v=substr($i,length(k)+2)}} END{if(v!="")print v}'; }
p0=$(psarg kubelet config)
f=""; for x in ${p0:-} /etc/kubernetes/kubelet-config.yaml; do if [ -e "$x" ]; then f=$x; break; fi; done
[ -n "$f" ] || exit 1
o=$(stat -Lc %U:%G "$f") || exit 1
if [ "$o" = "root:root" ]; then echo compliant; else echo "noncompliant: $f $o"; fi- Expected output
compliant
How it is fixed
Fix method: Guidance or infrastructure patch
Run the following command (using the config file location identified in the Audit step): chown root:root <kubelet_config_file>
Properties
- Operating systems
- Any
- Tags
- gkeworker-nodekubeletfile-permissions
- Reference
- CIS Google Kubernetes Engine (GKE) Benchmark v2.0.0 - 3.1.4 Ensure that the kubelet configuration file ownership is set to root:root
Check this host
Run this on a machine you are allowed to audit. The scan is read-only.
shell
tmaegis scan --target gke