More Info:
Verifies that —client-ca-file is set so the API server can authenticate clients using certificates signed by the configured certificate authority.Risk Level
HighAddress
SecurityCompliance Standards
- CIS Kubernetes
Triage and Remediation
- Remediation
Remediation
Manual Steps
Manual Steps
-
Prepare or identify the client CA file (every control plane node)
- Ensure you have a PEM‑encoded CA certificate that signs client certs for kube-apiserver auth, e.g.:
/etc/kubernetes/pki/client-ca.crt - If it does not exist yet, copy or create the appropriate CA file on each control plane node at that path with root ownership and restricted permissions:
- Ensure you have a PEM‑encoded CA certificate that signs client certs for kube-apiserver auth, e.g.:
-
Edit the kube-apiserver static pod manifest (every control plane node)
- Open the manifest in an editor:
- In the
spec.containers[0].commandlist, add or update the argument so it includes: - Save and exit.
Operational impact: because this is a static pod manifest, the kubelet will automatically restart the API server container when the file is saved.
- Open the manifest in an editor:
-
Ensure the CA file is mounted into the pod (if needed) (every control plane node)
- In the same file
/etc/kubernetes/manifests/kube-apiserver.yaml, confirm there is avolumeMountsentry for the directory containing the CA file, for example: - And a corresponding
volumesentry: - Adjust the
mountPath,name, andpathonly if your existing manifest uses different values.
- In the same file
-
Wait for kube-apiserver to restart and stabilize (every control plane node)
- Monitor the pod restart (from any machine with
kubectlaccess): - Wait until the kube-apiserver pod is in
RunningandReadystate.
- Monitor the pod restart (from any machine with
-
Verify the kube-apiserver process has the client-ca-file flag set (every control plane node)
- Run:
- Confirm the output includes the argument with the correct path, for example:
- Run:
Using kubectl
Using kubectl
kubectl cannot modify the API server’s host-level configuration or its static pod manifest. To set
--client-ca-file, you must edit /etc/kubernetes/manifests/kube-apiserver.yaml directly on every control plane node; see the Manual Steps section for the exact procedure.Automation
Automation

