More Info:
Configuring a client CA file enables the kubelet to authenticate client certificates against a trusted certificate authority, preventing unverified clients from connecting.Risk Level
HighAddress
SecurityCompliance Standards
- CIS EKS
Triage and Remediation
- Remediation
Remediation
Manual Steps
Manual Steps
-
On every worker node, SSH in and identify how kubelet is configured:
- If you see a
--config=/var/lib/kubelet/config.yaml(or similar) flag, follow Step 2. - If you see
--client-ca-file=...directly in the arguments and no--configflag, skip to Step 3.
- If you see a
-
If using
/var/lib/kubelet/config.yaml, edit it to setauthentication.x509.clientCAFile(create the hierarchy if missing):Add or update under the top level:Ensure/etc/kubernetes/pki/client-ca.crtexists and contains the intended CA. -
If using executable arguments, edit the kubelet systemd drop-in on the worker node:
In the line that sets kubelet arguments (e.g.
KUBELET_ARGS=orExecStart=), ensure it includes:Adjust the path if your client CA is stored elsewhere, and ensure the file exists. -
Reload systemd and restart kubelet on the worker node (required for any of the above changes to take effect):
-
Check kubelet status for errors on the worker node:
-
Verify kubelet is now running with a client CA configured on the worker node:
Confirm the output shows either a
--config=/var/lib/kubelet/config.yaml(where the file containsauthentication.x509.clientCAFile) or a--client-ca-file=/etc/kubernetes/pki/client-ca.crt(or your chosen CA path).
Using kubectl
Using kubectl
kubectl cannot configure the kubelet’s
clientCAFile because this setting lives in the kubelet host-level configuration (/var/lib/kubelet/config.yaml or kubelet service flags) on every worker node. Make this change directly on the nodes as described in the Manual Steps section.Automation
Automation

