Skip to main content

More Info:

Configure TLS encryption for the etcd service.

Risk Level

Medium

Address

Security

Compliance Standards

  • CIS Kubernetes

Triage and Remediation

Remediation

Manual Steps

  1. On every etcd (control plane) node, back up the current manifest and identify the existing TLS files:
  1. If you do not already have an etcd server certificate and key, generate them (example using existing etcd CA under /etc/kubernetes/pki/etcd):
  1. Edit the etcd static pod manifest on each etcd node to configure --cert-file and --key-file (this edit will automatically restart the etcd pod when saved):
If those arguments are missing, open the file and add them under the etcd container command:
Add (or ensure) lines like:
  1. Confirm the referenced files exist and are readable by the kubelet/container runtime:
  1. Wait 30–60 seconds for the static pod to be recreated, then confirm the etcd pod is running (from any machine with kubectl access):
  1. Verification on every etcd node: ensure the etcd process is running with the desired --cert-file and --key-file arguments:
Confirm the output includes:
kubectl cannot modify host-level static pod manifests or etcd process flags; this finding must be fixed by editing /etc/kubernetes/manifests/etcd.yaml directly on every etcd (control plane) node. See the Manual Steps section for how to update the manifest and verify the etcd --cert-file and --key-file arguments.

Additional Reading: