作者: Colin Jao 饒康立 – VMware資深技術顧問,主要負責VMware NSX產品線,目前致力於網路虛擬化、分散式安全防護技術與新應用遞送方案的介紹與推廣。

隨著企業逐漸將核心業務系統轉移至 Kubernetes 環境內,如何在容器環境提供完善的資安保護當然也是客戶關心的議題,是在專案討論時絕對需要進行的重要課題之一。以VMware本身提供的方案來說,容器在網路安全部分當然是著重於運作在Tanzu環境內的網路方案:VMware Container Networking with Antrea,以及近年來受到眾多企業肯定並使用的VMware NSX為主。在之前的網誌文章內,我們也花費了許多篇幅討論NSX如何結合Antrea提供完善的容器東西向網路防禦。簡單節錄以前提及過的幾個重點:

  • VMware Container Networking with Antrea 可以提供Kubernetes Cluster內Pod等級的東西向微分段防禦。
  • 透過Antrea與NSX整合,資安管理者可以透過NSX UI介面,雷同於企業等級防火牆的管理方式,來配置容器網路防禦政策
  • 與傳統Kubernetes Network Policies的簡陋機制相比,Antrea提供了企業在網路安全上實際需要的功能,比如說防火牆日誌記錄、封包網路流追蹤、以黑名單方式配置Deny規則,基於先後順序進行防火牆功能比對等等。

因為已經花費了多篇網誌文章討論上述的功能、效益、架構、介面展示、安裝等相關議題,這邊就不再重複轟炸大家了。但在前面所述的方案,主要都是著重於Antrea可以保護『每一個Pod』,提供Tanzu Kubernetes Cluster的『東西向防護』。以容器環境網路安全來說,只做東西向防禦就足夠了嗎?

這其實是一個大哉問,也不僅限於Kubernetes環境。我和客戶介紹NSX微分段防火牆方案近十年,期間也有多次的會議就著重在一個議題:當客戶採用了NSX微分段防火牆,是不是現有實體南北向防火牆就不需要了?我的回應一向是下面這樣子:

  • 東西向微分段防火牆可以取代實體南北向防火牆的很多功能,但就是有些事情有些情境只有南北向防火牆才合適
  • 我們建議客戶在現有已經建立南北向防火牆的基礎上,以微分段防火牆做『進一步』的防禦,但不需要把現有防火牆移除。而即使是全新的私有雲虛擬化環境,我們也建議客戶用NSX Gateway Firewall或實體防火牆進行南北向防禦,而不會僅採用東西向微分段防火牆

那回到容器的世界來。NSX搭配Antrea可以提供很完善的東西向防禦機制,但當企業要建立Kubernetes環境,此時,由用戶端連往建置在K8S Cluster內的應用,或是K8S Pod要連接到外部現有企業環境內的服務,這些『南北向』,進出Kubernetes Cluster的網路流,當然也需要完善的防禦。但這些場景是不是都適合由前面介紹的Antrea Pod保護機制來檢查並阻擋呢?不見得。這邊我簡單舉兩個例子:

應用系統採用Ingress機制,僅指定用戶可連往此Ingress地址取得Web服務

很快回憶一下,Ingress主要就是用來提供應用HTTP/S的七層入口機制。此時企業很可能想要配置網路策略,只有哪些用戶(來源地址/網段)才能連到這個Ingress。好,請問大家,Ingress的IP地址是在哪裡呢?在某個Pod上面嗎?

不一定吧,基於不同方案,Ingress對應的Virtual IP有極大的可能是位在第三方負載平衡器上。上面『用戶瀏覽器』到『Ingress IP』的網路流如果要進行控制,應該要在用戶與負載平衡器間,而不在Pod前端。此時我們用叢集內,運作在Container Network Interface的東西向保護機制,就很不適用這種情境

在外部資料庫上允許來自特定Kubernetes Cluster NamespacePod可以連接

前面有和大家談到,我們可以採用Antrea Egress機制,讓指定Namespace內裡面的Pod要連外時,不是採用預設機制:以所在的K8S Node介面IP地址做Source NAT,而是會先送到特定K8S Node,然後以指定的Egress IP來做Source NAT出去。

此時,外部的資料庫看到的,是由這個Egress IP來進行連接的網路流。要達成上述的網路流控制,比較建議的位置是在資料庫之前的外部防火牆,限制來自這個Egress IP(對應特定Namespace)的網路流才能連接。與上面相同,用K8S內的東西向保護機制來應對這個情境,也不是很適用。

類似的例子還可以繼續舉下去,但這邊我們的重點是,要對Kubernetes Cluster進行網路保護,其實『東西向』、『南北向』的防禦各自都有必要,甚至對於許多初期導入Kubernetes的企業來說,常會選擇優先建立南北向防禦,因此在專案內採購好幾對實體防火牆,來對進出Kubernetes環境的網路流進行限制。

所以在本文最後,我們要點出此系列文的主題了。採用VMware NSX本身的防火牆,是否可以用來保護Kubernetes Cluster,提供需求的南北向防禦呢?當然可以。而且我們做得比傳統實體防火牆更好。透過NSX與Antrea的整合,

  • NSX能夠直接自動取得Kubernetes Cluster的服務入口資訊,包含Load Balancer Service / Node Port Service / Ingress / Gateway
  • NSX能夠直接自動取得Kubernetes Cluster的出口資訊,包含Node IP / Egress
  • 上述資訊可透過群組 (Group) 配置後,直接於NSX的分散式及閘道式防火牆直接進行政策配置,提供南北向安全保護,並達成安全配置自動化

那麼在後續的文章我會以實例展示的方式,就上面的功能與大家做詳細說明。