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