Skip to main content

More Info:

The kubelet —client-ca-file argument should be set to enable client certificate authentication. Without a client CA, the kubelet cannot verify the identity of API clients.

Risk Level

High

Address

Security

Compliance Standards

  • CIS OKE

Triage and Remediation

Remediation

Manual Steps

  1. On every worker node, confirm the current kubelet process arguments:
    Check whether a --client-ca-file argument is present and whether it points to the intended CA (for example /etc/kubernetes/ca.crt).
  2. On every worker node, ensure the client CA file exists and is readable by kubelet (adjust the source path if your CA is elsewhere):
  3. On every worker node, edit the kubelet systemd drop-in to add the --client-ca-file argument:
    Then open the file and ensure the ExecStart or environment line includes the flag, for example:
    Add or adjust so it contains:
    or, if ExecStart uses inline flags, append:
  4. On every worker node, reload systemd and restart kubelet (this will briefly disrupt workloads on that node):
  5. On every worker node, confirm kubelet is healthy:
  6. On every worker node, verify that the --client-ca-file argument is now set correctly:
    Confirm the output shows --client-ca-file=/etc/kubernetes/ca.crt (or your chosen CA path) in the kubelet command line.
kubectl cannot configure the kubelet’s --client-ca-file flag or edit /etc/kubernetes/kubelet-config.json, because these are host-level settings managed on each worker node (systemd units and config files). To remediate this finding, make the changes directly on every worker node as described in the Manual Steps section.