Skip to main content

More Info:

Enable client authentication on etcd service.

Risk Level

Medium

Address

Security

Compliance Standards

  • CIS Kubernetes

Triage and Remediation

Remediation

Manual Steps

  1. On every etcd (control plane) node, open the etcd static pod manifest for editing:
  2. In the spec.containers[0].command (or args) list for the etcd container, add or update the client auth flag so it is exactly:
    Ensure there is no conflicting --client-cert-auth entry with a different value.
  3. Save and exit the editor. The kubelet will automatically detect the change to /etc/kubernetes/manifests/etcd.yaml and restart the etcd static pod; expect a brief etcd interruption while it restarts.
  4. Wait for etcd to come back up and confirm the etcd pod is running (on a control plane node that has crictl or docker, as appropriate):
  5. Verify that the etcd process is now running with --client-cert-auth=true on each etcd node:
    Confirm the output includes --client-cert-auth=true and no occurrence of --client-cert-auth=false.
kubectl cannot modify the etcd static pod manifest or its process flags; this setting must be changed directly on each etcd node by editing /etc/kubernetes/manifests/etcd.yaml. Refer to the Manual Steps section for the required host-level changes and verification commands.

Additional Reading: