説明
--peer-client-cert-auth=false だけでは、etcd のピア証明書認証が無効とは判断できません。etcd 3.4 では、--peer-trusted-ca-file の指定によっても HTTPS ピア接続の証明書認証が有効になります。実際のピア CA と HTTPS の構成を併せて確認してください。
etcd のピア通信はデータの複製とクラスターの合意形成に直接関わるため、相互認証が重要です。クライアント API の認証とピア認証は、それぞれ構成する必要があります。
想定される影響
ピアネットワークに接続できる未承認の主体を、証明書で区別できないおそれがあります。他の制御も不十分だと、複製データやクラスター運用にリスクが生じます。
対処方法
--peer-client-cert-auth=trueと--peer-trusted-ca-fileを設定してください。- 各ピアの証明書・キーと HTTPS ピアアドレスを構成し、ファイル権限と証明書の更新を管理してください。
- ピアネットワークへのアクセスを制限し、変更後に正常なピア接続と信頼しない証明書の拒否を確認してください。
例
過去の etcd バージョンの引数を比較する抜粋です。実際のデプロイには、ピアの証明書・キー、信頼する CA、HTTPS アドレスなどの設定も必要です。
変更前
yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: app-etcd-deployment
spec:
template:
spec:
containers:
- name: database
image: gcr.io/google_containers/etcd:v3.2.18
command: ["etcd"]
args: ["--peer-client-cert-auth=false"]
引数は false ですが、ピア CA と HTTPS 設定によっては証明書認証が有効になります。実際の接続で信頼するピア証明書を要求することを確認してください。
変更後
yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: app-etcd-deployment
spec:
template:
spec:
containers:
- name: database
image: gcr.io/google_containers/etcd:v3.2.18
command: ["etcd"]
args: ["--peer-client-cert-auth=true"]
ピア証明書の検証を要求します。ピア CA と証明書・キーを準備する必要があり、この設定だけでピア TLS の構成が完了するわけではありません。