-
對託管Kubernetes的計算機使用專用網路:確保代表叢集節點的主機沒有公共IP地址。 移除與任何主機直接連線的能力,顯著減少了可被用來攻擊的選項。 例如,這種簡單的預防措施提供了顯而易見的好處,可以防止可能導致利用加密貨幣挖礦的種種妥協。
-
使用堡壘主機訪問專用網路:應透過適當配置的堡壘主機提供管理叢集所需的對主機專用網路的外部訪問。 Kubernetes API通常也會暴露在堡壘主機後面的專用網路中。 當然,它也可能公開釋出,但建議至少透過組織內部網路和/或其VPN伺服器的白名單IP地址來限制訪問。
-
將VPC peering與內部負載均衡/DNS一起使用 – 其中在具有專用網路的Kubernetes叢集中執行的工作負載需要由其他私有的叢集外客戶端訪問,工作負載可以透過呼叫內部負載均衡的服務公開。 例如,要在AWS環境中建立內部負載均衡,該服務需要以下註釋:service.beta.kubernetes.io/aws-load-balancer-internal:0.0.0.0/0。 如果客戶端駐留在另一個VPC中,則需要VPC peering。
-
使用具有Ingress的外部負載均衡 – 工作負載通常設計為由來自Internet的匿名外部客戶端使用;當部署到專用網路時,如何允許流量在叢集中查詢工作負載?我們可以透過幾種不同的方式實現這一標的,具體取決於手頭的要求。第一種選擇是使用Kubernetes服務物件公開工作負載,這將導致在公有子網上建立外部雲負載平衡器服務(例如,AWS ELB)。這種方法可能非常昂貴,因為每個公開的服務都會呼叫專用的負載均衡,但可能是非HTTP服務的首選解決方案。對於基於HTTP的服務,更具成本效益的方法是將ingress controller部署到叢集,前面是Kubernetes服務物件,後者又建立了負載均衡器。在進一步路由到匹配規則中的服務端點之前,定址到負載均衡的DNS名稱的流量被路由到ingress controller端點,該端點評估與任何定義的Ingress物件相關聯的規則。
-
https://www.cisecurity.org/benchmark/amazon_web_services/
-
https://coreos.com/os/docs/latest/hardening-guide.html