More Info:
etcd should be configured to make use of TLS encryption for client connections.Risk Level
LowAddress
SecurityCompliance Standards
- CIS Kubernetes
Triage and Remediation
- Remediation
Remediation
Manual Steps
Manual Steps
-
On every control plane node, confirm the current kube-apiserver manifest and running args:
-
Ensure you have a CA file that issued the etcd server/client certificates (replace the path below with the actual CA if different):
-
Edit the kube-apiserver static pod manifest on every control plane node to add or correct the
--etcd-cafileflag (this edit will automatically restart the kube-apiserver container when the file is saved):Underspec.containers[0].command, ensure there is a line similar to:Save and exit the editor. -
(If etcd is external and using different CA) Adjust the path in step 3 to the correct etcd CA file, and make sure the file exists and is readable by root:
-
Wait for the kubelet to detect the manifest change and restart the kube-apiserver pod. Confirm the pod is running:
-
Verify the kube-apiserver is now started with the correct
--etcd-cafileargument on every control plane node:
Using kubectl
Using kubectl
kubectl cannot modify the kube-apiserver static pod manifest or its process flags, so it cannot be used to set the
--etcd-cafile argument. To remediate this finding, you must edit /etc/kubernetes/manifests/kube-apiserver.yaml directly on every control plane node as described in the Manual Steps section.Automation
Automation

