1. 安全 Security
安全标记用于帮助搭建安全 etcd 集群。
安全的 etcd 集群从两个方面维护,一个是服务端集群成员(peer)之间通信使用 TLS 安全认证,另一个是客户端(etcdctl)访问 etcd 集群使用 TLS 安全认证。
TLS 安全认证有一下几个文件组成:
- CA 证书:ca-file
- 私钥文件: key-file
- 证书文件: cert-file
- 证书吊销列表: crl-file
1.1. --cert-file
--cert-file ''
Path to the client server TLS cert file.
- 描述:客户端 TLS 证书文件的路径。
- 默认: none
- 环境变量: ETCD_CERT_FILE
解释:
etcdctl/api/sdk 等客户端访问 etcd 集群时依赖的证书文件路径。
证书是 CA 签名后的公钥文件。
1.2. --key-file
--key-file ''
Path to the client server TLS key file.
- 描述:客户端 TLS key 文件的路径。
- 默认: none
- 环境变量: ETCD_KEY_FILE
解释:
etcdctl/api/sdk 等客户端访问 etcd 集群时依赖的私钥文件路径。
证书(公钥)是公开的,但是私钥是保密不能公开的。
1.3. --client-cert-auth
--client-cert-auth 'false'
Enable client cert authentication.
- 描述:开启客户端证书认证。
- 默认: false
- 环境变量: ETCD_CLIENT_CERT_AUTH
解释:
是否开启客户端证书认证功能,如果开启了,访问 etcd 时需要携带上证书认证信息,一般是 --cert-file
和 --trusted-ca-file
。
1.4. --client-crl-file
--client-crl-file ''
Path to the client certificate revocation list file.
- 描述: 指定客户端认证的 CRL 文件列表
- 默认: ''
- 环境变量: ETCD_CLIENT_CRL_FILE
解释:
在一些情况下,证书私钥丢失或泄密,CA 会发布更新证书吊销列表,如果该证书被吊销了,那么他就无法正常获取认证,这个证书吊销列表就是 CRL 文件。
1.5. --client-cert-allowed-hostname
--client-cert-allowed-hostname ''
Allowed TLS hostname for client cert authentication.
- 描述:允许 TLS 认证使用主机名
- 默认: ''
- 环境变量: ETCD_CLIENT_CERT_ALLOWEND_HOSTNAME
1.6. --trusted-ca-file
--trusted-ca-file ''
Path to the client server TLS trusted CA cert file.
- 描述:客户端服务器 TLS 信任的 CA 证书文件的路径。
- 默认: none
- 环境变量: ETCD_TRUSTED_CA_FILE
解释:
这就是对证书签名的 CA 文件
1.7. --ca-file [弃用]
- 描述:客户端服务器 TLS 证书文件的路径。
- 默认: none
- 环境变量: ETCD_CA_FILE
解释:
--ca-file ca.crt
可以被 --trusted-ca-file ca.crt
替代,而 etcd 同样工作。
1.8. --auto-tls
--auto-tls 'false'
Client TLS using generated certificates.
- 描述:自动生成客户端 TLS。
- 默认: false
- 环境变量: ETCD_AUTO_TLS
1.9. --peer-cert-file
--peer-cert-file ''
Path to the peer server TLS cert file.
- 描述:peer server TLS 证书文件的路径.
- 默认: none
- 环境变量: ETCD_PEER_CERT_FILE
解释:
集群之间 TLS 通信的 证书文件 路径
1.10. --peer-key-file
--peer-key-file ''
Path to the peer server TLS key file.
- peer server TLS key 文件的路径.
- 默认: none
- 环境变量: ETCD_PEER_KEY_FILE
解释:
集群之间通信的 TLS 认证的 私钥 文件路径
1.11. --peer-client-cert-auth
--peer-client-cert-auth 'false'
Enable peer client cert authentication.
- 描述:开启 peer client 证书验证.
- 默认: false
- 环境变量: ETCD_PEER_CLIENT_CERT_AUTH
解释:
是否开启集群成员之间的 TLS 认证。
1.12. --peer-trusted-ca-file
--peer-trusted-ca-file ''
Path to the peer server TLS trusted CA file.
- 描述:peer server TLS 信任证书文件路径.
- 默认: none
- 环境变量: ETCD_PEER_TRUSTED_CA_FILE
1.13. --peer-ca-file [弃用]
peer server TLS 证书文件的路径. --peer-ca-file ca.crt
可以被 --peer-trusted-ca-file ca.crt --peer-client-cert-auth
替代,而 etcd 同样工作.
- 默认: none
- 环境变量: ETCD_PEER_CA_FILE
1.14. --peer-cert-allowed-cn
--peer-cert-allowed-cn ''
Required CN for client certs connecting to the peer endpoint.
1.15. --peer-cert-allowed-hostname
--peer-cert-allowed-hostname ''
Allowed TLS hostname for inter peer authentication.
1.16. --peer-auto-tls
--peer-auto-tls 'false'
Peer TLS using self-generated certificates if --peer-key-file and --peer-cert-file are not provided.
使用生成证书的peer TLS。
- 默认: false
- 环境变量: ETCD_PEER_AUTO_TLS
1.17. --peer-crl-file
--peer-crl-file ''
Path to the peer certificate revocation list file.
1.18. --cipher-suites
--cipher-suites ''
Comma-separated list of supported TLS cipher suites between client/server and peers (empty will be auto-populated by Go).
1.19. --cors
--cors '*'
Comma-separated whitelist of origins for CORS, or cross-origin resource sharing, (empty or * means allow all).
- 逗号分割的 origin 白名单,用于 CORS (cross-origin resource sharing/跨 origin 资源共享).
- 默认: none
- 环境变量: ETCD_CORS
1.20. --host-whitelist
--host-whitelist '*'
Acceptable hostnames from HTTP client requests, if server is not secure (empty or * means allow all).