Skip to main content

More Info:

Verifies that the etcd data directory has permissions of 700 or more restrictive. The etcd datastore holds all cluster state including secrets and must be tightly protected.

Risk Level

Medium

Address

Security

Compliance Standards

  • CIS Kubernetes

Triage and Remediation

Remediation

Manual Steps

  1. On every control plane node, identify the etcd data directory path:
    Note the value of the --data-dir argument (for example /var/lib/etcd or /var/lib/etcd/default.etcd). If no --data-dir is shown, use /var/lib/etcd/default.etcd.
  2. On the same control plane node, confirm the directory exists (replace the path if different):
    or, if identified differently:
  3. On the same control plane node, set the directory permissions to 700 (replace with the actual data directory if different):
    or:
  4. On the same control plane node, ensure the directory is owned by the etcd user and group (adjust user/group if your deployment uses a different account):
    or:
  5. Repeat steps 1–4 on every control plane node in the cluster.
  6. Verification (on every control plane node): re-run the benchmark’s audit logic to confirm permissions are 700 or more restrictive:
    Ensure the output shows permissions=700 (or a more restrictive value such as 600).
kubectl cannot change file system permissions on control plane nodes, including the etcd data directory at /var/lib/etcd. This finding must be remediated directly on every control plane node via host-level configuration; see the Manual Steps section for how to apply and verify the fix.