Skip to main content

More Info:

Ensure that the kubelet kubeconfig file ownership is set to root:root.

Risk Level

Low

Address

Security

Compliance Standards

  • APRA CPS 234 (Australia)
  • BSI C5 (Germany)
  • Brazil LGPD
  • CCPA / CPRA (California)
  • CIS Critical Security Controls v8
  • CIS OKE
  • CMMC 2.0
  • CSA Cloud Controls Matrix v4
  • DPDPA
  • Digital Operational Resilience Act (EU)
  • Essential 8
  • ISO/IEC 27017
  • ISO/IEC 27018
  • ISO/IEC 27701
  • KSA PDPL
  • MAS Technology Risk Management (Singapore)
  • MITRE ATT&CK (Cloud)
  • NIS2 Directive
  • NIST SP 800-171
  • NYDFS 23 NYCRR 500
  • SWIFT Customer Security Controls Framework
  • Sarbanes-Oxley IT General Controls
  • UK NCSC Cyber Assessment Framework

Triage and Remediation

Remediation

Manual Steps

  1. On every worker node, check the current ownership of the kubelet kubeconfig file:
  2. If the file exists and the ownership is not root:root, change the ownership on that worker node:
  3. (Optional) Confirm filesystem permissions did not change unexpectedly:
  4. Verify the fix on that worker node using the audit-style command:
kubectl cannot modify file ownership on worker node filesystems, including /etc/kubernetes/kubelet.conf, so this finding cannot be fixed through the Kubernetes API. The required change must be made directly on each worker node’s host OS; see the Manual Steps section for the exact commands to run there.
Usage (on every worker node):
This script:
  • Ensures /etc/kubernetes/kubelet.conf exists.
  • Runs chown root:root /etc/kubernetes/kubelet.conf.
  • Re-runs the audit (stat -c %U:%G /etc/kubernetes/kubelet.conf) and fails if the result is not root:root.

Additional Reading: