Skip to main content

More Info:

The kubelet —rotate-certificates argument should not be set to false so the kubelet automatically rotates its client certificates. Disabling rotation increases the risk of using expired or compromised credentials.

Risk Level

High

Address

Security

Compliance Standards

  • CIS OKE

Triage and Remediation

Remediation

Manual Steps

  1. On every worker node, open the kubelet systemd drop-in config for editing:
  2. In that file, locate the ExecStart= line. If it contains --rotate-certificates=false, remove =false so it reads --rotate-certificates (or, if the flag is missing entirely, add it), for example:
  3. If your kubelet instead reads its options from /etc/kubernetes/kubelet-config.json, open that file and ensure the feature is not disabled there (do not set it to false):
    Confirm there is no line like:
    If present, either remove that line or change it to:
  4. Reload systemd and restart the kubelet so the new flag takes effect (this will restart the kubelet on this worker node):
  5. Confirm the kubelet is healthy on this worker node:
  6. Verify on this worker node that the kubelet process is no longer running with --rotate-certificates=false and that --rotate-certificates is present:
    Inspect the command line in the output and ensure --rotate-certificates=false does not appear and --rotate-certificates (without =false) is included.
kubectl cannot modify kubelet process arguments or the host-level config file /etc/kubernetes/kubelet-config.json; this setting must be changed directly on every worker node in the systemd drop-in file /etc/systemd/system/kubelet.service.d/00-default.conf. Refer to the Manual Steps section for the exact on-node edits and restart commands needed to enable certificate rotation and then re-run /bin/ps -fC kubelet for verification.