在叢集裡輪替 CA 憑證
撤銷叢集中現有的憑證管理中心 (CA) 憑證,並發出新的 CA 憑證。
建議定期輪換 CA 憑證,以確保您的設定安全。 每次更新工作節點時,輪換 CA 憑證 是個好習慣,因為憑證輪換的最長步驟包括重新載入或更換工作節點。
依預設,會管理憑證管理中心 (CA) 憑證,以安全存取叢集的各種元件,例如主要 API 伺服器。 使用叢集時,您可能想要撤銷現有 CA 發出的憑證。 例如,您團隊的管理者可以使用憑證簽署要求 (CSR),為叢集中的工作者節點手動產生由叢集 CA 所簽署的憑證。 如果管理者離開您的組織,您可以為叢集建立新的 CA 和憑證,並移除舊的 CA 和憑證,以確保他們不再具有叢集的管理存取權。
-
為您的叢集建立一個 CA。 這個新 CA 所簽署的憑證會針對叢集主要元件發出,且會重新整理 API 伺服器。
ibmcloud oc cluster ca create -c CLUSTER -
請確定叢集的主要性能正常、API 伺服器重新整理已完成,且任何主要更新已完成。 主 API 伺服器的刷新過程可能需要幾分鐘。
ibmcloud oc cluster get --cluster CLUSTER -
請檢查 CA 建立的狀態。 在輸出中,請注意 動作已完成 欄位中的時間戳記。 如需各種狀態的說明,請參閱 憑證狀態和時間戳記。
ibmcloud oc 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 -
在叢集的
kubeconfig檔案中下載更新的 Kubernetes 配置資料及憑證。ibmcloud oc cluster config -c CLUSTER --admin --network -
確認新憑證中的時間戳記是否晚於您在步驟 3 中找到的時間戳記。 若要檢查憑證的日期,您可以使用 KeyCDN之類的工具。
-
更新任何依賴先前憑證的工具或 webhooks。 例如,您可能需要更新下列一個或多個項目。
- 如果您在自己的服務中使用群集
kubeconfig檔案中的憑證,例如 Jenkins. - 如果您使用
calicoctl管理 Calico 網路政策,請更新您的服務和自動化以使用新的憑證。 - 如果您將稽核記錄轉寄到 IBM Cloud Logs,請更新 主稽核 webhook 的憑證。
- 如果您透過私人網路傳送稽核記錄,請更新 主稽核 webhook 的憑證。
- 如果您在自己的服務中使用群集
-
重新載入標準工作者節點 或 取代 VPC 工作者節點,以挑選由新 CA 簽署的憑證。
-
以新憑證輪換舊憑證。 即會移除叢集中的舊 CA 憑證。
ibmcloud oc cluster ca rotate -c CLUSTER -
請檢查 CA 憑證輪替的狀態。
ibmcloud oc 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 -
因為有些用戶端可能不允許在憑證束中使用過期的 CA 憑證,所以請在群集的
kubeconfig檔案中下載更新的 Kubernetes 設定和憑證。ibmcloud oc cluster config -c CLUSTER --admin --network -
更新任何依賴於先前憑證的工具。 如果您在自己的服務 (例如 Travis 或 Jenkins) 中使用叢集的
kubeconfig檔案中的憑證,或者如果您使用calicoctl來管理 Calico 網路原則,請更新服務並自動化以使用新憑證。
輪換對集群升級的影響
如果正在進行 CA 憑證輪換,群集主機的更新會被攔截。 更新群集主檔案之前,請先完成輪換。 要檢查 CA 憑證輪換的 狀態,請執行 ibmcloud oc cluster ca status -c CLUSTER。
憑證狀態和時間戳記
若要檢查 CA 狀態,請執行 ibmcloud oc 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. |
舊憑證已從憑證鏈中移除。 | 集群升級未受阻礙 |
| 空狀態 | 憑證輪換從未開始或完成。 | Cluster 升級未受阻攔 |
關於證書輪換的常見問題
- IBM 是否會為叢集執行自動 CA 輪替?
- 不,IBM 並不會執行自動的憑證授權機構輪替。 使用者須負責執行憑證授權機構輪替程序。
- 何時應輪替CA憑證?
- 當需要撤銷群集的現有存取權時,應該輪換 CA 憑證。 具體而言,若叢集管理員不再具備存取叢集的權限,因為他們可能已生成由現行憑證授權機構簽署的憑證來存取該叢集。
- IBM 是否會自動延長 CA 憑證的有效期限?
- 是的,新的CA憑證是使用現有的私密金鑰所生成。 此舉使憑證得以設定新的到期日期,同時仍能成功驗證現有的中間憑證與終端實體憑證。
- 我的叢集的 CA 狀態顯示為「
CA certificate created」,這種情況下應採取哪些措施? - 建立新的 CA 憑證是輪換的第一步。 我們期望 CA 輪換程序一旦開始,就能依照 程序中的所有步驟 完成。 這確保了先前憑證授權機構所生成之的中間憑證與終端實體憑證均被宣告失效。
- 我的叢集憑證授權機構狀態顯示
Action Started及 數年前Action Completed的時戳。 在這種情況下,預期會採取什麼行動? - 時間戳記表示啟動目前 CA 狀態的動作的開始和完成時間。 您必須採取的行動取決於 輪換狀態。 例如,如果您的 CA 狀態為
CA certificate created and awaiting rotation. Reload your worker nodes then begin CA certificate rotation,則憑證建立已開始,並在時間戳記所指示的時間完成,但完整的輪換尚未完成。 - 執行CA輪替是否會導致新憑證的有效期短於現行憑證?
- 是的,執行輪替操作後,新憑證的有效期確實可能短於前一份憑證。 這是由於預設證書到期時間縮短所致。