Skip to main content

More Info:

Ensure that the etcd data directory has permissions of 700 or more restrictive.

Risk Level

High

Address

Security

Compliance Standards

  • CIS Kubernetes

Triage and Remediation

Remediation

Manual Steps

  1. On every control plane node, identify the etcd data directory:
    Note the value passed to --data-dir (for example /var/lib/etcd or /var/lib/etcd/default.etcd).
  2. If no --data-dir is visible from the process (for example, etcd not currently running), inspect the static pod manifest to find it:
  3. On the same control plane node, ensure the directory exists and has restrictive permissions (replace /var/lib/etcd with the directory you found):
  4. (Optional but recommended) Confirm the directory owner is the user running etcd (commonly etcd or root); adjust if needed, replacing etcd and the directory as appropriate:
  5. Repeat steps 1–4 on every control plane node.
  6. Verification (run on every control plane node):
    Confirm the output shows permissions=700 (or a more restrictive value like 600).
kubectl cannot modify filesystem permissions on the etcd data directory or edit host-level files like /etc/kubernetes/manifests/etcd.yaml; this must be corrected directly on each control plane node via SSH. Refer to the Manual Steps section for the exact host-level commands to set the etcd data directory to mode 700 or more restrictive.

Additional Reading: