Skip to main content

More Info:

The —auto-tls argument must not be set to true, as it makes etcd generate and use self-signed certificates for client connections. This bypasses proper certificate-based authentication and exposes etcd data.

Risk Level

Critical

Address

Security

Compliance Standards

  • CIS Kubernetes

Triage and Remediation

Remediation

Manual Steps

  1. On every etcd (control plane) node, back up the existing manifest so you can roll back if needed:
  2. On every etcd node, open the etcd static pod manifest for editing:
    In the spec.containers[].command (or args) section:
    • Remove any --auto-tls=true argument, or
    • If you must keep the flag, change it explicitly to:
  3. Save the file and exit the editor. The kubelet will automatically detect the manifest change and restart the etcd static pod; this causes an etcd restart on that control plane node.
  4. On every etcd node, wait a few seconds, then verify etcd is running without --auto-tls=true:
    Confirm that:
    • There is no --auto-tls=true in the process command line, and
    • If --auto-tls appears, it is --auto-tls=false or the flag is absent.
kubectl cannot change the etcd static pod manifest or its process flags. This finding must be remediated by editing /etc/kubernetes/manifests/etcd.yaml directly on every etcd (control plane) node; see the Manual Steps section for the exact host-level procedure.