Skip to main content

More Info:

etcd should be configured to make use of TLS encryption for peer connections.

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 existing static pod manifest and inspect current peer TLS flags:
  2. On every etcd node, ensure peer certificate and key files exist on the host (adjust paths as needed for your environment) and set secure permissions:
    If these files do not exist, generate or obtain appropriate etcd peer TLS certs/keys following your PKI/etcd documentation before proceeding.
  3. On every etcd node, edit the etcd static pod manifest to configure the peer TLS flags (this change will automatically restart etcd on save):
    Under the command: section for the etcd container, add or update the following arguments (ensure they match your actual certificate paths):
    Save and exit the editor; kubelet will restart the etcd pod with the new configuration.
  4. On every etcd node, confirm the etcd pod has restarted and is running:
  5. On any control plane node, validate that etcd is now running with the correct peer TLS flags:
    Inspect the output and confirm it includes both:
    • --peer-cert-file=/etc/kubernetes/pki/etcd/peer.crt
    • --peer-key-file=/etc/kubernetes/pki/etcd/peer.key
kubectl cannot modify the etcd static pod manifest or its process flags under /etc/kubernetes/manifests/etcd.yaml on the control plane node. To configure the --peer-cert-file and --peer-key-file arguments, make the changes directly on the host as described in the Manual Steps section.

Additional Reading: