背景
隨著容器、微服務、持續交付等雲原生技術普及,大量應用基於K8s容器編排構建。相比傳統網路模式,在雲原生場景下,存在大量微服務模組間網路呼叫,叢集內東西向通訊流量激增,網路邊界變得更加模糊。
容器環境中,容器IP和埠變換頻繁,應用混合部署帶來的通訊關係複雜,傳統基於靜態IP和埠的邊界安全規則已無法適用容器環境下細粒度的訪問控制要求。預設情況下,K8s叢集中不對Pod進行任何請求限制,任意Pod之間可以自由通訊。正因此,在面對網路攻擊時,沒有安全規則的容器網路將給攻擊者更多的自由和滲透空間。
如何實施容器間網路訪問控制,打造安全的容器網路通訊邊界和通訊架構,成為雲原生時代關鍵的網路安全問題。為助力企業破局,騰訊雲容器安全服務容器網路隔離功能於9月重磅釋出,提供基於 K8s 原生Networkpolicy 的叢集容器間網路策略下發和管理能力,幫助企業快速構建安全可信的容器網路。
K8s Networkpolicy介紹
針對上述問題,Kubernetes社群提供了官方解決方案,自v1.3版本起,新增了Networkpolicy資源,用於定義Pod之間的網路訪問控制規則,並在v1.7版本中成為GA功能,API版本為networking.k8s.io/v1。
Networkpolicy實現了細粒度的容器訪問控制策略,使用“Label標籤”選定Pod範圍,支援基於Pod應用粒度對指定Pod進行出入站訪問控制,可配置IP段、名稱空間以及應用(Pod)埠級規則。
預設情況下,一個應用(Pod)的網路會接受任何來源的通訊請求,根據最佳安全實踐,應用(Pod)應該只放行其業務範圍內的正常通訊請求。這對攻擊者在初始訪問階段進行的入侵探測和漏洞利用,以及網路失陷後進行的橫向掃描和滲透具有很大的防禦效果。
以下是一個Networkpolicy策略示例,要求db應用只能夠和web服務之間通訊,拒絕其它通訊連線請求:
透過Networpolicy實施容器網路訪問控制具有以下優勢:
是Kubernetes社群官方方案,功能穩定,跟隨社群發展。
可實施應用級別(Pod)粒度的網路控制,使用K8s標籤(Label)選擇器劃分網路邊界,透過標籤能夠方便的將業務關係對映到系統架構上,便於實施基於業務的管理。
貼合K8s使用習慣,Networkpolicy作為K8s資源,透過yaml定義網路訪問規則。
功能全面,相容性好,已經有眾多K8s網路元件支援Networkpolicy的實現,包括Kube-router、Calico、Cilium、Romana等主流組件。
不過,K8s Networkpolicy透過編寫yaml定義訪問控制規則,存在一定的學習和使用門檻,同時在策略的管理上也存在不便。
騰訊雲容器網路隔離功能介紹
騰訊雲容器安全服務於2021年7月正式上線,提供映象掃描、漏洞防禦、叢集安全管理、基線管理、執行時入侵防禦的全流程容器安全解決方案。
容器網路隔離功能於9月釋出,該特性提供基於 K8s 原生 Networkpolicy 的叢集容器間網路策略下發和管理能力,透過對叢集內的防護物件進行定義,設定防護物件的出站和入站規則實現容器間網路訪問控制。
透過容器網路隔離功能,可以實現:
實施基於Networkpolicy的容器網路訪問控制,快速建立和下發訪問控制策略,全面相容K8s Networkpolicy。
提供管理平臺,統一管理叢集所有網路策略,一鍵快速開啟和關閉網路策略。
支援自動發現K8s叢集新增Networkpolicy策略及策略變更。
支援多叢集和混合雲叢集,包括TKE叢集及自建K8s叢集。
支援詳細的策略變更審計等。
同時我們提供策略視覺化編輯功能,不用編寫複雜的yaml規則,透過圖形化配置來快捷的建立和配置容器網路策略規則,大大降低學習和配置成本,直觀展現出網路策略的實施效果,哪些請求能允許訪問,哪些請求不被允許非常清楚:
這裡提供了9個實施容器網路訪問控制的常見場景,您可基於容器網路隔離功能快速構建安全可信的容器網路。(檢視地址:https://cloud.tencent.com/document/product/1285/80415)
如何快速體驗?
登入騰訊雲容器安全服務控制檯可免費開啟體驗
登入控制檯-點選“開啟試用”,領取首次免費體驗權益
進入容器安全服務-網路策略
選擇步驟可參考產品幫助文件:
(https://cloud.tencent.com/document/product/1285/80414)