檢視次數:
設定檔適用性:等級 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")'
考慮使用 Ingress 來取代這些服務,以便使用 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 憑證,請遵循這些指示