1.5.2 Ensure that the --client-cert-auth argument is set to true

Information

Enable client authentication on etcd service.

Rationale:

etcd is a highly-available key value store used by Kubernetes deployments for persistent storage of all of its REST API objects. These objects are sensitive in nature and should not be available to unauthenticated clients. You should enable the client authentication via valid certificates to secure the access to the etcd service.

Solution

Edit the etcd envrironment file (for example, `/etc/etcd/etcd.conf`) on the etcd server node and set the `ETCD_CLIENT_CERT_AUTH` parameter to `'true'`: `ETCD_CLIENT_CERT_AUTH='true'`

Edit the etcd startup file (for example, `/etc/systemd/system/multi-user.target.wants/etcd.service`) and configure the startup parameter for `--client-cert-auth` and set it to `'${ETCD_CLIENT_CERT_AUTH}'`: `ExecStart=/bin/bash -c 'GOMAXPROCS=$(nproc) /usr/bin/etcd --name='${ETCD_NAME}' --data-dir='${ETCD_DATA_DIR}' --listen-client-urls='${ETCD_LISTEN_CLIENT_URLS}' --client-cert-auth='${ETCD_CLIENT_CERT_AUTH}''`

Based on your system, reload the daemon and restart the `etcd` service. For example, `systemctl daemon-reload systemctl restart etcd.service`

Impact:

All clients attempting to access the etcd server will require a valid client certificate.

See Also

https://workbench.cisecurity.org/files/1738

Item Details

Category: IDENTIFICATION AND AUTHENTICATION

References: 800-53|IA-5(2), CSCv6|14

Plugin: Unix

Control ID: 1234aff5d6f854e49c385d006da2d9cfcb4d40f1f2299ee3a95f3794ed2aa6e8