本主題說明如何輪替 GKE on AWS 管理服務和使用者叢集的安全憑證。如要進一步瞭解 GKE on AWS 的安全防護功能,請參閱「安全性」。
事前準備
如要完成本頁的步驟,您必須有權存取包含 GKE on AWS 設定的目錄。
管理服務憑證
本節說明如何輪替管理服務的憑證。
管理憑證授權單位
本節說明如何輪替 GKE on AWS 元件的憑證授權單位 (CA) 簽署憑證。
Management API 伺服器根層級 CA
如要輪替 API 伺服器根 CA,請按照下列步驟操作:
- 切換至 GKE on AWS 設定所在的目錄。
您在安裝管理服務時建立了這個目錄。
cd anthos-aws
- 在文字編輯器中開啟
anthos-gke.status.yaml
。 - 移除鍵
certificateAuthority
下的所有值。包括encryptedPrivateKey.kmsKeyARN
、encryptedPrivateKey.value
和encryptedPrivateKey.certificate
。 執行
anthos-gke aws management init
來更新anthos-gke.status.yaml
檔案。anthos-gke aws management init
執行
anthos-gke aws management apply
,更新管理服務。anthos-gke aws management apply
- 從
anthos-aws
目錄使用anthos-gke
將環境切換至管理服務。cd anthos-aws anthos-gke aws management get-credentials
其他管理 CA
本節說明如何輪替下列所有 CA:
- 驗證 Webhook CA
- Etcd CA
- 服務帳戶簽署者 CA
您可以透過下列任一方法輪替這些 CA:
從
anthos-gke.status.yaml
中移除certificateAuthority
區段。- 切換至 GKE on AWS 設定所在的目錄。
您在安裝管理服務時建立了這個目錄。
cd anthos-aws
- 在文字編輯器中開啟
anthos-gke.status.yaml
。 - 移除鍵
certificateAuthority
下的所有值。包括encryptedPrivateKey.kmsKeyARN
、encryptedPrivateKey.value
和encryptedPrivateKey.certificate
。 執行
anthos-gke aws management init
來更新anthos-gke.status.yaml
檔案。anthos-gke aws management init
執行
anthos-gke aws management apply
,更新管理服務。anthos-gke aws management apply
- 切換至 GKE on AWS 設定所在的目錄。
您在安裝管理服務時建立了這個目錄。
如有新的 GKE on AWS 版本,請升級 GKE on AWS 管理服務。
重新建立管理服務 EC2 執行個體。
- 在
anthos-aws
目錄中,使用terraform
取得管理服務的 ID。 輸出內容會包含管理服務 ID。在下方範例中,ID 為cd anthos-aws terraform output cluster_id
gke-12345abc
。terraform output cluster_id
gke-12345abc - 開啟 AWS EC2 控制台。
- 按一下「執行個體」
- 找出名為
cluster-id-management-0
的執行個體。 - 選取「動作」->「執行個體狀態」->「終止」,即可移除執行個體。 EC2 會自動建立新的執行個體,並使用相同的 EBS 磁碟區。
- 在
管理 TLS 用戶端 / 伺服器金鑰和憑證
如要輪替管理服務的 TLS 用戶端 / 伺服器金鑰和憑證,請重新建立管理服務執行個體。如要重建執行個體,請按照下列步驟操作:
- 在
anthos-aws
目錄中,使用terraform
取得管理服務的 ID。 輸出內容會包含管理服務 ID。在下方範例中,ID 為cd anthos-aws terraform output cluster_id
gke-12345abc
。terraform output cluster_id
gke-12345abc - 開啟 AWS EC2 控制台。
- 按一下「執行個體」
- 找出名為
cluster-id-management-0
的執行個體。 - 選取「動作」->「執行個體狀態」->「終止」,即可移除執行個體。 EC2 會自動建立新的執行個體,並使用相同的 EBS 磁碟區。
Google Cloud 服務帳戶
管理服務帳戶
如要輪替管理服務的Google Cloud 服務帳戶,請完成下列步驟。
- 按照必要條件中的步驟,建立新的服務帳戶並下載服務帳戶金鑰
- 切換至 GKE on AWS 設定所在的目錄。
您在安裝管理服務時建立了這個目錄。
cd anthos-aws
如果您將金鑰下載到其他路徑,請在文字編輯器中開啟
anthos-gke.yaml
檔案。將.spec.googleCloud.serviceAccountKeys.managementService
、.status.googleCloud.serviceAccountKeys.connectAgent
和.spec.googleCloud.serviceAccountKeys.node
的值變更為新路徑。apiVersion: multicloud.cluster.gke.io/v1 kind: AWSManagementService metadata: name: management spec: googleCloud: serviceAccountKeys: managementService: MANAGEMENT_KEY_PATH connectAgent: CONNECT_KEY_PATH node: NODE_KEY_PATH ...
執行
anthos-gke aws management init
來更新anthos-gke.status.yaml
檔案。anthos-gke aws management init
執行
anthos-gke aws management apply
,更新管理服務。anthos-gke aws management apply
使用者叢集服務帳戶
如要在 AWSClusters 和 AWSNodePools 上套用這些服務帳戶,您必須升級或刪除,然後重新建立這些項目。
使用者叢集憑證
本節說明如何輪替使用者叢集的憑證。
使用者叢集 CA 和 SSH 金鑰
使用者叢集的大部分 CA 都是在建立叢集時建立。
刪除使用者叢集時,GKE on AWS 會輪替下列憑證:
- API 伺服器根層級 CA
- API 前端 Proxy CA
- etcd CA
- Kubernetes 服務帳戶簽署者 CA
- 控制層到節點的安全殼層金鑰組
使用者叢集驗證 webhook CA
如要輪替使用者叢集驗證 Webhook CA,請編輯 anthos-gke.status.yaml
檔案並套用變更。
- 切換至 GKE on AWS 設定所在的目錄。
您在安裝管理服務時建立了這個目錄。
cd anthos-aws
- 在文字編輯器中開啟
anthos-gke.status.yaml
。 - 移除鍵
certificateAuthority
下的所有值。包括encryptedPrivateKey.kmsKeyARN
、encryptedPrivateKey.value
和encryptedPrivateKey.certificate
。 執行
anthos-gke aws management init
來更新anthos-gke.status.yaml
檔案。anthos-gke aws management init
執行
anthos-gke aws management apply
,更新管理服務。anthos-gke aws management apply
使用者叢集 TLS 金鑰組和憑證
在建立執行個體時,AWS 上的 GKE 會產生 TLS 金鑰組和憑證。如要輪替這些配對,請為控制層和節點集區執行下列步驟,重新建立執行個體。
控制層
- 從
anthos-aws
目錄使用anthos-gke
將環境切換至管理服務。cd anthos-aws anthos-gke aws management get-credentials
使用
kubectl
從 AWSCluster 取得控制層的 AWS EC2 目標群組。env HTTPS_PROXY=http://localhost:8118 \ kubectl get awscluster cluster-name \ -o jsonpath='{.status.targetGroupName}{"\n"}'
輸出內容會包含控制層 EC2 目標群組的名稱。例如
gke-123456a7-controlplane
。開啟 AWS EC2 控制台。從左側窗格選擇「目標群組」。
按一下搜尋列,找出目標群組。依序點選目標群組的「名稱」和「目標」。系統會顯示控制平面例項清單。
針對目標群組中的每個執行個體,執行下列步驟:
按一下執行個體的「Instance ID」(執行個體 ID)。系統會顯示 AWS EC2 執行個體控制台。
按一下「執行個體 ID」。
選取「動作」->「執行個體狀態」->「終止」,即可移除執行個體。 EC2 會自動建立新的執行個體,並使用相同的 EBS 磁碟區。
返回「目標群組」頁面。
終止群組中的所有執行個體後,請返回「目標群組」頁面。
在頁面的「已註冊目標」部分,找到「狀態」欄。每個執行個體的「狀態」都應為「健康」。 如果任何執行個體健康狀態良好,請稍候幾分鐘,然後按一下「重新整理」圖示
。目標群組中的所有執行個體都正常運作後,請繼續執行下一個步驟。
節點集區
如要輪替節點集區的傳輸層安全標準 (TLS) 憑證,請按照下列步驟操作:
- 從
anthos-aws
目錄使用anthos-gke
將環境切換至管理服務。cd anthos-aws anthos-gke aws management get-credentials
使用
kubectl
從 AWSNodePool 取得節點集區的 AWS EC2 目標群組。env HTTPS_PROXY=http://localhost:8118 \ kubectl get awsnodepool -o jsonpath='{.items[*].status.autoScalingGroupName}{"\n"}'
輸出結果包含節點集區的 EC2 目標群組名稱。例如
gke-123456a7-nodepool-abc123
。開啟 AWS EC2 控制台。從左側窗格選擇「目標群組」。
按一下搜尋列,找出目標群組。依序點選目標群組的「名稱」和「目標」。系統會顯示控制平面例項清單。
針對目標群組中的每個執行個體,執行下列步驟:
按一下執行個體的「Instance ID」(執行個體 ID)。系統會顯示 AWS EC2 執行個體控制台。
按一下「執行個體 ID」。
選取「動作」->「執行個體狀態」->「終止」,即可移除執行個體。 EC2 會自動建立新的執行個體,並使用相同的 EBS 磁碟區。
返回「目標群組」頁面。
終止群組中的所有執行個體後,請返回「目標群組」頁面。
在頁面的「已註冊目標」部分,找到「狀態」欄。每個執行個體的「狀態」都應為「健康」。 如果任何執行個體健康狀態良好,請稍候幾分鐘,然後按一下「重新整理」圖示
。目標群組中的所有執行個體都正常運作後,請繼續執行下一個步驟。