Securing etcd cluster ​
This document will describe all the TLS artifacts that are typically generated for setting up etcd-druid and etcd clusters in Gardener clusters. You can take inspiration from this and decide which communication lines are essential to be TLS enabled.
Communication lines ​
In order to undertand all the TLS artifacts that are required to setup etcd-druid and one or more etcd-clusters, one must have a clear view of all the communication channels that needs to be protected via TLS. In the diagram below all communication lines in a typical 3-node etcd cluster along with kube-apiserver and etcd-druid is illustrated.
!!! info For Gardener setup all the communication lines are TLS enabled.

TLS artifacts ​
An etcd cluster setup by etcd-druid leverages the following TLS artifacts:
Certificate Authority used to sign server and client certificate key-pair for
etcd-backup-restorespecified viaetcd.spec.backup.tls.tlsCASecretRef.Server certificate key-pair specified via
etcd.spec.backup.tls.serverTLSSecretRefused byetcd-backup-restoreHTTPS server.Client certificate key-pair specified via
etcd.spec.backup.tls.clientTLSSecretRefused byetcd-wrapperto securely communicate to theetcd-backup-restoreHTTPS server.Certificate Authority used to sign server and client certificate key-pair for
etcdandetcd-wrapperspecified viaetcd.spec.etcd.clientUrlTls.tlsCASecretReffor etcd client communication.Server certificate key-pair specified via
etcd.spec.etcd.clientUrlTls.serverTLSSecretRefused byetcdandetcd-wrapperHTTPS servers.Client certificate key-pair specified via
etcd.spec.etcd.clientUrlTls.clientTLSSecretRefused by:etcd-wrapperandetcd-backup-restoreto securely communicate to theetcdHTTPS server.etcd-backup-restoreto securely communicate to theetcd-wrapperHTTPS server.
Certificate Authority used to sign server certificate key-pair for
etcdpeer communication specified viaetcd.spec.etcd.peerUrlTls.tlsCASecretRef.Server certificate key-pair specified via
etcd.spec.etcd.peerUrlTls.serverTLSSecretRefused foretcdpeer communication.
!!! note TLS artifacts should be created prior to creating Etcd clusters. etcd-druid currently does not provide a convenience way to generate these TLS artifacts. etcd recommends to use cfssl to generate certificates. However you can use any other tool as well. We do provide a convenience script for local development here which can be used to generate TLS artifacts. Currently this script is part of etcd-wrapper github repository but we will harmonize these scripts to be used across all github projects under the etcd-druid ecosystem.
Skipping client-SAN verification on peer mTLS ​
For environments where peer client certificates intentionally omit Subject Alternative Names (e.g. some certificate-management pipelines that issue short-lived peer certificates without DNS / IP SANs), the peer-side mTLS SAN check can be disabled by setting spec.etcd.peerUrlTls.skipClientSANVerification to true:
spec:
etcd:
peerUrlTls:
tlsCASecretRef:
name: peer-ca
dataKey: ca.crt
serverTLSSecretRef:
name: peer-server
skipClientSANVerification: trueNotes:
- The field is peer-only by type — it lives on
PeerTLSConfig, the wrapper type used exclusively atspec.etcd.peerUrlTls. The sharedTLSConfigused byclientUrlTlsandbackup.tlsdoes not expose it, so the field cannot be set on the client- or backup-restore TLS blocks. - The CA-based identity check still applies. Any peer certificate signed by the configured peer CA is accepted regardless of its SAN; certificates signed by other CAs are still rejected. Only enable this knob if you understand the trust implications of trusting the CA's full issuance set.