檢視次數:
設定檔適用性:等級 2
使用 Google 管理的 SSL 憑證將流量加密到 HTTPS 負載平衡器。
在用戶與 Kubernetes 工作負載之間加密流量是保護透過網路傳輸的資料防護的基本措施。Google 管理的 SSL 憑證會為網域名稱進行配置、更新和管理。這僅適用於使用 Ingress 資源建立的 HTTPS 負載平衡器,而不適用於使用 type:LoadBalancer服務建立的 TCP/UDP 負載平衡器。
注意
注意
預設情況下,當定義 Ingress 資源時,不會創建由 Google 管理的 SSL 憑證。

影響

Google 管理的 SSL 憑證比自行獲取和管理的憑證靈活性較低。管理的憑證僅支援單一非萬用字元的網域。自行管理的憑證則可以支援萬用字元和多個主體替代名稱(SANs)。

稽核

使用命令列:
識別是否有任何工作負載透過type:LoadBalancer類型的服務公開暴露:
kubectl get svc -A -o json | jq '.items[] | select(.spec.type=="LoadBalancer")'
考慮使用入口而不是這些服務,以便使用 Google 管理的 SSL 憑證。
對於叢集內的入口,請執行以下命令:
kubectl get ingress -A -o json | jq .items[] | jq '{name: .metadata.name, annotations: .metadata.annotations, namespace: .metadata.namespace, status: .status}'
上述指令應返回入口名稱、命名空間、註釋和狀態。請檢查以下註釋是否存在,以確保引用了受管理的憑證:
"annotations": {
  ...
  "networking.gke.io/managed-certificates": "<example_certificate>"
},
為了完整性,請執行以下命令以確保受管理的憑證資源存在:
kubectl get managedcertificates -A
上述指令會返回一個受管理憑證的清單,其中<example_certificate>應存在於與入口相同的命名空間內。

補救

如果發現 type:LoadBalancer 類型的服務,請考慮將該服務替換為 Ingress。
要配置 Ingress 並使用 Google 管理的 SSL 憑證,請按照 GKE 文件中的說明進行操作。