More Info:
Allow pods to verify the API servers serving certificate before establishing connections.Risk Level
LowAddress
SecurityCompliance Standards
- CIS Kubernetes
Triage and Remediation
- Remediation
Remediation
Manual Steps
Manual Steps
-
On every control plane node, back up the existing manifest:
-
On the same node, identify the appropriate root CA bundle file present on the host (coordinate with your PKI/security team if unsure). Common examples include:
-
Edit the controller manager manifest on the control plane node to configure the root CA file (replace the example path with the correct bundle you identified in step 2):
Under the
command:orargs:list forkube-controller-manager, add (or update) the flag, for example:Save and exit. Because this is a static pod manifest, the kube-controller-manager pod will be automatically restarted by the kubelet when the file changes. -
(If needed) Ensure the configured file is readable by the kube-controller-manager container on the control plane node:
If the file is not already accessible in the pod via a volume mount, add an appropriate
hostPathvolume andvolumeMountinkube-controller-manager.yamlpointing to the directory that contains the CA file, then save the manifest again to trigger a restart. -
Wait for the kube-controller-manager pod to restart and become Running on the control plane node:
-
Verification on every control plane node (derived from the audit command): confirm the running process includes the
--root-ca-fileflag with the correct path:Check that the output shows--root-ca-file=/etc/kubernetes/pki/ca.crt(or the exact path you configured).
Using kubectl
Using kubectl
kubectl cannot modify the kube-controller-manager static pod manifest or its process flags, so this finding cannot be fixed via the Kubernetes API. To remediate, you must edit
/etc/kubernetes/manifests/kube-controller-manager.yaml directly on every control plane node as described in the Manual Steps section.Automation
Automation

