Docker

管理員應該在 kubernetes 網路中強制執行 HTTPS,還是只針對外部流量(通過入口)?

  • February 22, 2020

在微服務場景中,每個 web-api 容器都應該通過 HTTPS 為自己服務,還是可以通過 HTTP 在內部工作,並且所有入口都配置了證書並重定向到容器的 80 埠?

我認為最簡單的方法是僅保護外部流量,因為要配置 Asp.Net Core WebAPI 以通過 HTTPS(例如)為自己服務(紅隼),您必須將證書安裝在卷中並提供證書密碼。這有點複雜。

最佳做法是什麼?

這取決於要求和資源,如果您有 On-Prem 或裸機等。

無需確保流量安全

如果對保護集群內的客戶端流量沒有要求,您可以終止客戶端SSL連接ingress-controllerHTTP在 Pod 之間使用。

安全要求

如果需要保護到目標 pod 的客戶端流量,可以通過兩種方式獲得。

  • L3 LoadBalancer使用NodePort,配置了SSL Passtrought on Ingress
  • 如果流量需要使用SSL但不需要SSL直接傳遞給指定的,通過配置Istio MeshPod來實現會更容易。此選項將允許您使用 HTTP 標頭路由流量,您無需手動管理證書。請檢查以獲取更多資訊。mTLS

由於最佳實踐總是盡可能地安全,因此始終建議使用安全連接。儘管如此,有些場景並不需要這樣。

引用自:https://serverfault.com/questions/999240