More Info:
The etcd server must be configured with the —cert-file and —key-file arguments so that client-to-server traffic is served over TLS. Without them, etcd traffic carrying all cluster state and secrets is unencrypted.Risk Level
CriticalAddress
SecurityCompliance Standards
- CIS Kubernetes
Triage and Remediation
- Remediation
Remediation
Manual Steps
Manual Steps
-
On every etcd (control plane) node, confirm the static pod manifest location and current etcd flags:
-
On every etcd node, ensure a certificate and key exist for the etcd server (adjust CN/SANs as needed for your environment):
-
On every etcd node, back up the existing etcd static pod manifest:
-
On every etcd node, edit
/etc/kubernetes/manifests/etcd.yamlto add the--cert-fileand--key-filearguments to the etcd container command. For example, in thespec.containers[0].commandlist, ensure lines like the following are present (paths must match where you stored the cert and key):Save the file. The kubelet will automatically restart the etcd static pod when the manifest changes. -
On every etcd node, confirm the etcd pod has restarted successfully:
-
On every etcd node, verify that the running etcd process includes the required flags:
Ensure the output shows both
--cert-file=/etc/etcd/pki/etcd.crtand--key-file=/etc/etcd/pki/etcd.key(or your chosen paths).
Using kubectl
Using kubectl
kubectl cannot modify the etcd static pod manifest or its process flags; this finding must be fixed directly on each etcd node by editing
/etc/kubernetes/manifests/etcd.yaml. See the Manual Steps section for the exact host-level changes required.Automation
Automation

