クラスターでの CA 証明書のローテーション

クラスター内の既存の認証局 (CA) 証明書を取り消して、新しい CA 証明書を発行します。

安全なセットアップを維持するために、CA証明書を定期的にローテーションすることを推奨する。 証明書のローテーションの最も長いステップには、ワーカーノードの再ロードまたは交換が含まれるため、ワーカーノードを更新するたびに CA証明書をローテーションする ことは良い習慣です。

デフォルトでは、認証局 (CA) 証明書は、マスター API サーバーなど、クラスターのさまざまなコンポーネントへのアクセスを保護するために管理されます。 クラスターを使用していると、既存の CA によって発行された証明書を取り消す必要が生じる可能性があります。 例えば、チームの管理者は、証明書署名要求 (CSR) を使用して、クラスター内のワーカー・ノードに対してクラスターの CA によって署名された証明書を手動で生成できます。 管理者が組織を退職した場合は、その管理者によるクラスターへの管理アクセスを確実に排除するために、クラスターの CA と証明書を新規作成し、古い CA と証明書を削除することができます。

  1. クラスター用の CA を作成します。 この新しい CA によって署名される証明書がクラスターのマスター・コンポーネントのために発行され、API サーバーがリフレッシュされます。

    ibmcloud ks cluster ca create -c CLUSTER
    
  2. クラスターのマスター・ヘルスが正常であること、API サーバーのリフレッシュが完了したこと、およびマスターの更新が完了したことを確認します。 マスター API サーバーのリフレッシュに数分かかる場合があります。

    ibmcloud ks cluster get --cluster CLUSTER
    
  3. CA 作成の状況を確認します。 出力の**「Action Completed」**フィールドのタイム・スタンプをメモします。 各ステータスの説明については、 証明書のステータスとタイムスタンプを 参照のこと。

    ibmcloud ks cluster ca status -c CLUSTER
    

    出力例

    Status:             CA certificate created. Reload your worker nodes then begin the CA certificate rotation.
    Action Started:     2024-08-30T16:17:56+0000
    Action Completed:   2024-08-30T16:21:13+0000
    
  4. クラスターの kubeconfig ファイルに入っている、更新された Kubernetes 構成データおよび証明書をダウンロードします。

    ibmcloud ks cluster config -c CLUSTER --admin --network
    
  5. 新しい証明書のタイムスタンプが、手順 3 で確認したタイムスタンプよりも新しいことを確認してください。 証明書の日付を確認するには、次のようなツールを使用できます。 KeyCDN などのツールを使用できます。

  6. 以前の証明書に依存しているツールや Webhook を更新する。 例えば、以下の1つ以上を更新する必要があるかもしれない。

    • クラスタの kubeconfig ファイルにある証明書を、 Jenkins のような独自のサービスで使用する場合。
    • Calico ネットワーク・ポリシーの管理に calicoctl を使用している場合は、新しい証明書を使用するようにサービスと自動化を更新する。
    • 監査ログを IBM Cloud Logs に転送する場合は、 マスター監査ウェブフックの 証明書を更新してください。
    • 監査ログをプライベートネットワーク経由で転送する場合は、 マスター監査Webhookの 証明書を更新します。
  7. 新しい CA の署名が付いた証明書を反映するために、クラシック・ワーカー・ノードの再ロードまたは VPC ワーカー・ノードの置換を実行します。

  8. 古い証明書から新しい証明書にローテーションします。 クラスターの古い CA 証明書は削除されます。

    ibmcloud ks cluster ca rotate -c CLUSTER
    
  9. CA 証明書のローテーションの状況を確認します。

    ibmcloud ks cluster ca status -c CLUSTER
    

    出力例

    Status:             CA certificate rotation complete.
    Action Started:     2024-08-30T16:37:56+0000
    Action Completed:   2024-08-30T16:41:13+0000
    
  10. クライアントによっては、証明書バンドル内の期限切れCA証明書を許可しない場合があるため、クラスタの kubeconfig ファイルに更新された Kubernetes 構成と証明書をダウンロードしてください。

    ibmcloud ks cluster config -c CLUSTER --admin --network
    
  11. 前の証明書に依存している、すべてのツールを更新します。 Travis や Jenkins といった独自のサービスでクラスターの kubeconfig ファイルからの証明書を使用している場合や、Calico ネットワーク・ポリシーを管理するために calicoctl を使用している場合は、新しい証明書が使用されるように、ご使用のサービスおよび自動化機能を更新してください。

クラスタのアップグレードにおけるローテーションの影響

CA証明書のローテーションが進行中の場合、クラスタ・マスターへのアップデートはブロックされます。 クラスタ・マスターを更新する前にローテーションを完了してください。 CA証明書のローテーション・ ステータスを 確認するには、 ibmcloud ks cluster ca status -c CLUSTER を実行する。

証明書の状態とタイムスタンプ

CAのステータスを確認するには、 ibmcloud ks cluster ca status -c CLUSTER を実行する。

出力のタイムスタンプは、現在のステータスを開始したアクションの開始時刻と完了時刻を示す。 以下の表は、各ステータスについての説明である。

| 状態|説明|クラスタ・アップグレードへの影響 | --- | --- | -- | | CA certificate creation in progress. |ローテーション・プロセスのために新しい証明書が作成され、証明書チェーンに入れられる。| クラスターのアップグレードがブロックされました | CA certificate created and awaiting rotation. Reload your worker nodes then begin CA certificate rotation. | 新しい証明書が作成され、証明書チェーンに入れられました。| クラスターのアップグレードがブロックされました | CA certificate rotation in progress. |証明書のローテーションが進行中です。 古い証明書が証明書チェーンから削除されています。| クラスタのアップグレードがブロックされました | CA certificate rotation complete. | 古い証明書が証明書チェーンから削除されました。| クラスタのアップグレードはブロックされません | 証明書のローテーションが一度も開始または完了していない。| クラスタのアップグレードはブロックされていません

証明書ローテーションに関する よくある質問

IBM はクラスタに対して自動的なCAローテーションを実行しますか?
いいえ、 IBM は自動的なCAローテーションを実行しません。 ユーザーはCAローテーションプロセスの実行に責任を負います。
CA証明書はいつ更新すべきですか?
クラスタへの既存のアクセスを取り消す必要がある場合は、CA証明書をローテーションする必要がある。 具体的には、クラスタ管理者がクラスタへのアクセス権限を保持し続けるべきでない場合、その管理者がクラスタへのアクセスに利用する現在のCAによって署名された証明書を生成している可能性があるためである。
IBM はCA証明書の有効期限を自動的に延長しますか?
はい、新しいCA証明書は既存の秘密鍵を使用して生成されます。 これにより、証明書に新しい有効期限を設定しつつ、既存の中間証明書および最終エンティティ証明書を正常に検証できるようになります。
私のクラスタのCAステータスが「 CA certificate created 」となっていますが、この場合、どのような対応が必要ですか?
新しいCA証明書の作成は、ローテーションの最初のステップである。 一度CAローテーションのプロセスが開始されれば、 プロセスのすべてのステップを 踏んで完了することが期待されている。 これにより、以前のCAで生成された中間証明書およびエンドエンティティ証明書が無効化されます。
私のクラスターのCAステータスには、数年前の Action Completed タイム Action Started スタンプが表示されています。 この場合、どのような行動が求められるのか?
タイムスタンプは、現在のCAステータスを開始したアクションの開始時刻と完了時刻を示す。 あなたが取るべき行動は、 ローテーションの状態によって 異なります。 例えば、CAステータスが CA certificate created and awaiting rotation. Reload your worker nodes then begin CA certificate rotation の場合、証明書の作成は開始され、タイムスタンプに示された時刻に完了したが、フルローテーションは完了していない。
CAローテーションを実行すると、現在の証明書よりも有効期間が短くなりますか?
はい、ローテーションを実行すると、新しい証明書の有効期間が以前の証明書よりも短くなる可能性があります。 これはデフォルトの証明書有効期限の長さが短縮されたためです。