Skip to main content

More Info:

Enable kubelet server certificate rotation.

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 GKE
  • 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)
  • 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 how kubelet is configured:
    Review the kubelet command line from ps for any --rotate-kubelet-server-certificate flag.
  2. If using the kubelet config file at /var/lib/kubelet/config.yaml, edit it to enable the feature gate (create featureGates if missing):
featureGates: RotateKubeletServerCertificate: true EOF’
  1. If the kubelet is configured only via executable arguments and not via the config file, on every worker node append the flag to KUBELET_ARGS in /etc/systemd/system/kubelet.service.d/10-kubelet-args.conf:
    Or, if KUBELET_ARGS does not exist, add a new line:
  2. Restart kubelet on every worker node so changes take effect (this restarts the kubelet process):
  3. Verify on every worker node that kubelet is running with server certificate rotation enabled:
    Confirm either the flag --rotate-kubelet-server-certificate=true is present and not set to false, and/or that the kubelet config file in use contains RotateKubeletServerCertificate: true in featureGates.
kubectl cannot modify kubelet’s host-level configuration or systemd unit files, so this finding cannot be fixed via the Kubernetes API. To remediate, you must change the kubelet config and/or systemd unit on every worker node (as described in the Manual Steps section) and then restart the kubelet service.

Additional Reading: