Skip to main content

More Info:

The kubelet —rotate-certificates argument should not be false so that client certificates are automatically rotated before expiry, avoiding authentication outages.

Risk Level

High

Address

Security

Compliance Standards

  • CIS AKS

Triage and Remediation

Remediation

Manual Steps

  1. On every worker node, inspect current kubelet process arguments to see if --rotate-certificates is explicitly set to false:
  2. On every worker node, edit the kubelet configuration file and ensure certificate rotation is enabled:
    Then open the file to confirm or add the setting if missing:
    Make sure it contains:
  3. On every worker node, check for a systemd drop-in that might override this setting and remove any --rotate-certificates=false argument:
    In the 10-kubelet-args.conf file, remove --rotate-certificates=false if present, or change it to:
  4. If your environment also uses /etc/kubernetes/kubelet/kubelet-config.json (per the benchmark guidance), ensure it has rotation enabled:
    Confirm it contains:
  5. On every worker node, reload systemd and restart kubelet (this will restart the kubelet and may briefly impact node status):
  6. Verification on every worker node: confirm kubelet is running without --rotate-certificates=false:
    Ensure there is no --rotate-certificates=false in the command line, and the configuration files still show rotateCertificates: true / "rotateCertificates": true.
kubectl cannot change kubelet process flags or its config file on the node. This finding must be fixed directly on every worker node via host-level configuration (for example /etc/kubernetes/kubelet/kubelet-config.json, /etc/systemd/system/kubelet.service.d/10-kubelet-args.conf, or the kubelet arguments); see the Manual Steps section for how to do this.