設定檔適用性:等級 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 憑證,請按照這些指示進行操作。