Docker
管理員應該在 kubernetes 網路中強制執行 HTTPS,還是只針對外部流量(通過入口)?
在微服務場景中,每個 web-api 容器都應該通過 HTTPS 為自己服務,還是可以通過 HTTP 在內部工作,並且所有入口都配置了證書並重定向到容器的 80 埠?
我認為最簡單的方法是僅保護外部流量,因為要配置 Asp.Net Core WebAPI 以通過 HTTPS(例如)為自己服務(紅隼),您必須將證書安裝在卷中並提供證書密碼。這有點複雜。
最佳做法是什麼?
這取決於要求和資源,如果您有 On-Prem 或裸機等。
無需確保流量安全
如果對保護集群內的客戶端流量沒有要求,您可以終止客戶端
SSL
連接ingress-controller
並HTTP
在 Pod 之間使用。安全要求
如果需要保護到目標 pod 的客戶端流量,可以通過兩種方式獲得。
L3 LoadBalancer
使用NodePort,配置了SSL Passtrought onIngress
。- 如果流量需要使用
SSL
但不需要SSL
直接傳遞給指定的,通過配置Istio MeshPod
來實現會更容易。此選項將允許您使用 HTTP 標頭路由流量,您無需手動管理證書。請檢查此以獲取更多資訊。mTLS
由於最佳實踐總是盡可能地安全,因此始終建議使用安全連接。儘管如此,有些場景並不需要這樣。