4.6. etcd 証明書
4.6.1. 目的 リンクのコピーリンクがクリップボードにコピーされました!
etcd 証明書は etcd-signer によって署名されます。それらの証明書はブートストラッププロセスで生成される認証局 (CA) から提供されます。
4.6.2. 有効期限 リンクのコピーリンクがクリップボードにコピーされました!
CA 証明書は 10 年間有効です。ピア、クライアント、およびサーバーの証明書は 3 年間有効です。
4.6.3. etcd 証明書のローテーション リンクのコピーリンクがクリップボードにコピーされました!
有効期限が切れる前に etcd 証明書をローテーションします。
手順
次のコマンドを実行して、現在の署名者証明書のバックアップコピーを作成します。
$ oc get secret -n openshift-etcd etcd-signer -oyaml > signer_backup_secret.yaml次のコマンドを実行して、新しい署名者証明書の残りの有効期間を確認します。
$ oc get secret -n openshift-etcd etcd-signer -ojsonpath='{.metadata.annotations.auth\.openshift\.io/certificate-not-after}'残りの有効期間が現在の日付に近い場合は、署名者を削除して再作成し、静的 Pod のロールアウトを待ちます。
次のコマンドを実行して署名者を削除します。
$ oc delete secret -n openshift-etcd etcd-signer次のコマンドを実行して、静的 Pod のロールアウトを待ちます。
$ oc wait --for=condition=Progressing=False --timeout=15m clusteroperator/etcd
etcdが再起動したら、次のコマンドを実行して、openshift-confignamespace の元の CA を、openshift-etcd内の新たにローテーションされた CA に切り替えます。$ oc get secret etcd-signer -n openshift-etcd -ojson | jq 'del(.metadata["namespace","creationTimestamp","resourceVersion","selfLink","uid"])' | oc apply -n openshift-config -f -次のコマンドを実行して、クラスター Operator がロールアウトされ、安定するまで待ちます。
$ oc adm wait-for-stable-cluster --minimum-stable-period 2m
4.6.4. etcd 証明書ローテーションアラートおよびメトリクス署名者証明書 リンクのコピーリンクがクリップボードにコピーされました!
2 種類のアラートにより、保留中の etcd 証明書の有効期限がユーザーに通知されます。
etcdSignerCAExpirationWarning- 署名者の有効期限が切れるまで 730 日間通知されます。
etcdSignerCAExpirationCritical- 署名者の有効期限が切れるまで 365 日間通知されます。
証明書をローテーションできる理由は次のとおりです。
- 有効期限切れのアラートが表示された場合
- 秘密鍵が漏洩した場合
秘密鍵が漏洩した場合は、すべての証明書をローテーションする必要があります。
OpenShift Container Platform のメトリクスシステムには、専用の etcd 署名者が存在します。etcd 証明書のローテーション では、次のメトリクス用のパラメーターに置き換えてください。
-
etcd-signerの代わりにetcd-metric-signerを使用 -
etcd-ca-bundleの代わりにetcd-metrics-ca-bundleを使用
4.6.5. 管理 リンクのコピーリンクがクリップボードにコピーされました!
これらの証明書はシステムによってのみ管理され、自動的にローテーションされます。
4.6.6. サービス リンクのコピーリンクがクリップボードにコピーされました!
etcd 証明書は、etcd メンバーピアと暗号化されたクライアントトラフィック間の暗号化された通信に使用されます。以下の証明書は etcd および etcd と通信する他のプロセスによって生成され、使用されます。
- ピア証明書: etcd メンバー間の通信に使用されます。
-
クライアント証明書: 暗号化されたサーバーとクライアント間の通信に使用されます。現時点で、クライアント証明書は API サーバーによってのみ使用され、プロキシーを除いてその他のサービスは etcd に直接接続されません。クライアントシークレット (
etcd-client、etcd-metric-client、etcd-metric-signer、etcd-signer) が、openshift-config、openshift-etcd、openshift-etcd-operator、およびopenshift-kube-apiservernamespace に追加されます。 - サーバー証明書: クライアント要求を認証するために etcd サーバーによって使用されます。
- メトリック証明書: メトリックのすべてのコンシューマーは metric-client 証明書を使用してプロキシーに接続します。