什麼是雲端網路安全性?
在現代運算環境中,雲端網路安全性是保障 容器化應用程式 及其資料的關鍵資料。無論使用何種 協調平台 ,都必須確保這些應用程式的網路安全性和配置。雲端網路安全性針對網路分割、命名空間、覆蓋網路、流量過濾以及容器的加密。透過實作雲端網路安全性技術和最佳實務,組織可以有效預防加密劫持、勒索軟體和 BotNetC2 等基於網路的攻擊,這些攻擊會影響面向公眾的網路和容器用來交換資料的內部網路。
雲端網路安全性說明
所有 工作負載 都在相同的網路堆疊和通訊協定上執行,不論它們是在裸機伺服器、虛擬機器或容器上執行。換句話說,容器化工作負載會受到許多與傳統應用程式相同的網路型攻擊 - Cryptojacking、勒索軟體、BotNetC2 等等。
然而,以網路為基礎的安全性威脅會以兩種方式影響容器 - 透過將應用程式連接到網際網路的公共網路,以及 Kubernetes 容器用來在彼此內部交換資料的內部網路。
雲端網路安全性著重於確保一般容器化應用程式的網路通訊與配置安全,不論是何種協調平台。它解決了網路分割、命名空間、覆蓋網路、流量過濾和容器加密等方面的問題。
Kubernetes 網路安全性針對 Kubernetes 叢集內的網路安全性,包含 Kubernetes 特有的功能,例如網路政策、入口與出口控制、命名空間隔離、角色存取控制 (RBAC) 以及服務網狀實作。
在這兩種網路中偵測惡意活動的跡象,同時需要 容器安全性 和 Kubernetes 網路安全性。由於這些都是不同的領域,因此需要分開討論,以涵蓋其獨特的層面。在本節中,我們將深入探討與容器相關的雲端網路安全性的各個層面,並討論保護環境的最佳作法。
雲端網路安全性
一旦部署,容器需要受到保護,以免有人試圖竊取專屬資料和運算資源。雲端網路安全性可主動限制不必要的通訊,並防止威脅在部署後攻擊您的應用程式。
容器下一代防火牆、 Web 應用程式與 API 安全性 (WAAS)以及 微區隔 工具可檢查並保護所有進出容器的流量 (南北向與東西向),提供完整的 第 7 層可視性,並控制 Kubernetes 環境。此外, 容器化防火牆 可隨容器基礎架構快速變化的規模和需求而動態大規模擴充,為業務運作提供安全性和頻寬。

圖 1:簡化的 Kubernetes 架構,並覆蓋 VM-Series(虛擬化下一代防火牆)和 CN-Series(專為保護 Kubernetes 基於容器的應用程式而量身打造的容器化防火牆)。
網路分割
網路分割是將網路劃分為較小、隔離的區段,以限制未經授權的存取、控制潛在威脅,並改善整體網路效能的做法。在容器化環境中,安全性團隊可以透過各種方法達成網路分割。
網路命名空間
網路命名空間透過為每個容器建立獨立的網路堆疊,包括它們自己的網路介面、路由表和防火牆規則,來提供容器間的隔離。透過利用網路命名空間,您可以防止容器互相干擾彼此的網路設定,並將容器的能見度限制在僅限於所需的網路資源。
覆疊網路
覆疊網路會在現有的實體網路之上建立一個虛擬網路層,讓容器可以跨越不同的主機進行通訊,就像在同一個網路中一樣。適用於容器的熱門覆疊網路解決方案包括 Docker 內建的覆疊驅動程式、Flannel 和 Weave。
網路分區和安全性群組
網路分區和安全性群組可透過建立邏輯邊界和套用特定防火牆規則來限制網段間的流量,從而進一步分割容器網路。
流量過濾與防火牆規則
容器化的下一代防火牆可阻止惡意軟體進入集群並在集群內擴散,同時也可防止用於資料外洩和指揮與控制 (C2) 攻擊的惡意向外連線。雖然左移安全工具可針對已知的弱點提供部署時保護,但容器化的下一代防火牆則可針對未知和未修補的弱點提供保護。
流量過濾和防火牆規則對於控制容器之間以及容器與 主機之間的流量是非常重要的。
出口和入口篩選
出口過濾控制來自容器的出站流量,而入口過濾控制進入容器的入站流量。透過應用出口和入口過濾,您可以限制容器暴露於外部威脅,並將其通訊限制在必要的服務範圍內。
對容器流量套用防火牆規則
防火牆規則可以套用在不同層級,包括主機、容器和網路層級。例如,您可以使用 Linux iptables 或 firewalld 來建立規則,以管理容器流量,並保護您的基礎結構,防止未經授權的存取和惡意活動。
負載平衡與流量路由
負載平衡和流量路由對於在多個容器之間分配流量以及確保應用程式的高可用性非常重要。可以使用 HAProxy、NGINX 或 Kubernetes 內建服務等解決方案,根據預先定義的規則和健康檢查,將流量路由到適當的容器。
加密與安全通訊
加密容器之間以及容器與主機之間的通訊並保障其安全性,對於保護敏感資料和維護應用程式的完整性至關重要。
容器流量的傳輸層安全性 (TLS)
TLS 為透過網路傳輸的資料提供加密和認證。透過為容器流量實作 TLS,您可以確保在容器之間以及容器與主機之間傳輸的資料經過加密,並確保其安全性,以防止竊聽或篡改。您可以使用 OpenSSL 或 Let's Encrypt 等工具來為您的容器產生和管理 TLS 憑證,以達到此目的。
確保容器與容器之間通訊的安全性
為了確保容器間通訊的安全性,您可以使用容器原生解決方案,例如 Docker 內建的加密網路,或是第三方工具,例如為容器提供 API 感知網路安全性的 Cilium。這些解決方案可讓您針對容器與容器之間的流量實作加密、驗證和授權。
確保容器與主機通訊的安全性
確保容器與主機之間的通訊安全性,可透過使用主機層級的加密和驗證機制 (例如 SSH 或 TLS 保護的 API) 來控制對容器管理介面和資料儲存系統的存取。
Kubernetes 網路安全性
網路政策
網路政策是 Kubernetes 的主要功能,可讓您控制群集內以及群集與外部網路之間的流量。現代工具可讓安全性團隊定義政策,這些政策基本上可決定允許何人及何物存取任何指定的微服務。組織需要一個框架來定義這些政策,並確保這些政策在高度分散的容器 Application 環境中得到一致的維護。
定義和執行網路政策
Kubernetes 網路政策是使用 YAML 檔案定義,其中指定 Pod、服務和命名空間等元件之間允許的流量。一旦定義了這些政策,就可以使用支援 Kubernetes 網路政策 API 的網路外掛程式來強制執行,例如 Calico 或 Cilium。
白名單和黑名單流量
網路政策可用於根據包括 pod 標籤、IP 位址或命名空間的條件,將叢集元件之間的流量列入白名單或黑名單。建立這些功能可讓您控制哪些服務可以互相通訊,並防止未經授權存取敏感資料或資源。
命名空間隔離與分割
透過在命名空間層級套用網路政策,您可以隔離並分割群集中的應用程式或環境,將流量限制在必要的元件,並預防潛在的安全性風險。
出入口控制
控制入口和出口流量對於管理進出 Kubernetes 群集的資料流,並保護其免於外部威脅是非常關鍵的。
輸入控制器與負載平衡
Kubernetes 中的入口控制器會根據預先定義的規則,管理外部流量到群集中適當服務的路由。負載平衡可透過內建的 Kubernetes 服務或第三方解決方案 (如 NGINX 和 HAProxy) 來實現。這些解決方案可讓您根據路徑、主機或標頭等標準來路由流量。它們也允許您提供 TLS 終止和其他安全功能。
入口存取最佳實務
- 透過為每個命名空間套用拒絕全部 (deny-all) 政策,糾正 Kubernetes 的預設「任意允許」政策。
- 防止服務直接接受來自外部 IP 的傳入流量,除非已連接負載平衡器或入口。只允許從負載平衡器或入口傳入流量。
- 根據服務的需求,將流量限制在特定通訊協定和連接埠(例如,網頁服務的 HTTP/HTTPS、DNS 服務的 UDP 53)。
- 只接受來自其他服務 (pod) 的流量,這些服務 (pod) 會消耗這些流量,不論是來自同一命名空間或其他命名空間。
- 若要從其他命名空間中的 pod 建立入口政策,請在命名空間中加入標籤。
出口交通管理
控制 Kubernetes 群集的出口流量,對於防止資料洩漏和確保出站連線僅限於所需的目的地,是非常重要的。您可以使用出口網路政策來達到此目的,這些政策可讓您定義 Pod 或命名空間的出站流量規則。此外,出口閘道或代理解決方案(如 Squid)可用於控制和監控群集的出站流量。
出口通道最佳實務
- 瞭解您的 微服務所使用的每個外部服務的需求。Prisma Cloud Compute Defender 等產品可協助識別微服務所參與的外部流量。
- 如果 Pod 需要連線到沒有固定 IP 位址的 DNS (FQDN) 名稱,請使用外部防火牆或 Proxy,因為 Kubernetes 網路政策只支援 IP 位址。
- 預防不需要外部連線的 Pod 的出站流量,以降低資料外洩或下載惡意 bin 程式的風險。
- 如果您沒有外部相依性,請套用封鎖出口政策,但在強制執行出口政策時,請確保像 Kubernetes DNS 服務這樣的重要服務保持連線。
身分 式微分段 有助於在第 3 層和第 4 層限制應用程式之間的通訊,而容器化的下一代防火牆則會執行 第 7 層 深度封包檢查,掃描所有允許的流量,以識別和防護已知和未知的威脅。
DNS 政策與安全性
DNS 是 Kubernetes 網路不可或缺的部分,因為它為群集內的服務和其他元件提供名稱解析。確保 DNS 基礎架構的安全性和完整性,以防止 DNS 詐騙或快取中毒等攻擊。
Kubernetes 提供內建的 DNS 政策來控制群集內 DNS 解析的行為,您也可以使用外部 DNS 供應商或 DNSSec 等 DNS 安全解決方案來加強 DNS 基礎架構的安全性。
服務網狀結構與網路加密
Service mesh 是專用的基礎架構層級,可為您的微服務和容器化應用程式提供進階的網路功能,例如流量路由、負載平衡和安全性。
實作服務網格
Istio 和 Linkerd 等服務網狀解決方案可與 Kubernetes 群集整合,以提供進階的網路功能,並加強容器化應用程式的安全性。這些解決方案提供相互 TLS、存取控制和流量加密等功能,可協助保護您的應用程式,尤其是微服務,免受各種安全威脅。
安全通訊的互動 TLS (mTLS)
Mutual TLS (mTLS) 是一種安全通訊協定,用戶端和伺服器在建立安全連線之前,會先認證彼此的身分。傳統的 TLS 只會對伺服器進行用戶端驗證,而 mTLS 則不同,它要求用戶端出示證書,從而增加了一層額外的安全性。新增的需求可驗證雙方的身分,有助於防止未經授權的存取、資料外洩和中間人攻擊。
網路流量的可觀測性與可控制性
服務網狀解決方案還能提供網路流量的可觀測性並加以控制,讓您能近乎即時地監控應用程式的效能與安全性。及早識別未經授權的存取、不尋常的流量模式,以及其他潛在的安全問題,意味著您可以及早採取糾正措施來降低風險。
加密流量和敏感資料
為了確保叢集內資料的機密性和完整性,必須為內部和外部通訊實作加密技術。
加密主機間通訊的 IPsec
IPsec 透過加密所有主機與節點主機之間的通訊,保障群集流量。請注意 IPsec 開銷,並參閱您的容器協調文件,以啟用群集內的 IPsec 通訊。將必要的憑證匯入相關的憑證資料庫,並建立政策以確保叢集中主機之間的通訊安全。
設定 IPsec 開銷的最大傳輸單位 (MTU)
調整路由或交換 MTU,以容納 IPsec 標頭開銷。例如,如果群集在最大傳輸單位 (MTU) 為 1500 位元組的乙太網路上運作,請修改 SDN MTU 值,以計入 IPsec 和 SDN 封裝開銷。
為群集中的 API 通訊啟用 TLS
Kubernetes 假定群集內的 API 通訊預設使用 TLS 加密。大多數安裝方法都會建立所需的憑證,並分發給群集元件。但請注意,某些元件和安裝方法可能會透過 HTTP 啟用本機連接埠。管理員應隨時瞭解每個元件的設定,以識別和處理潛在的不安全流量。
Kubernetes 控制平面安全性
控制平面 (尤其是 Kubernetes 群集中的控制平面) 是主要的攻擊目標。為了加強安全性,請透過檢查和適當設定來強化下列元件:
- 節點及其周界
- 主節點
- 核心元件
- API
- 面向公眾的吊艙
雖然 Kubernetes 的預設組態提供一定程度的安全性,但採用最佳實務可以強化工作負載和執行時通訊的群集。
網路政策(防火牆規則)
Kubernetes 的扁平網路預設允許所有部署連接到其他部署,甚至可以跨命名空間。Pod 之間缺乏隔離,意味著受到攻擊的工作負載可能會對其他網路元件發起攻擊。實作網路政策可以提供隔離和安全性。
Pod 安全政策
Kubernetes 預設允許 Pod 以各種不安全的組態執行。例如,在主機上運行具有 root 權限的特權容器是高風險的,使用主機的命名空間和檔案系統或共用主機的網路也是高風險的。Pod 安全政策可讓管理員在允許部署到群集之前,限制 Pod 的權限和權限。使用網路政策隔離非依賴性的 Pod,使其無法彼此對話,將有助於在發生漏洞時防止容器間的橫向移動。
秘密加密
Kubernetes 的基本發行版在預設情況下不會對機密進行加密 (不過 GKE 等管理服務會)。如果攻擊者取得鍵值儲存空間 (通常是 Etcd) 的存取權,他們就可以存取群集中的所有內容,包括未加密的機密。加密群集的狀態儲存可保護群集,防止資料外洩。
基於角色的存取控制
雖然 RBAC 並非 Kubernetes 獨有,但必須正確設定才能防止群集受損。RBAC 允許對 Pod 或使用者可以存取的群集中的元件進行粒度控制。透過限制使用者和 Pod 在群集中可以檢視、更新、刪除和建立的內容,RBAC 有助於限制外洩可能造成的損害。
透過虛擬修補程式解決控制平面安全性問題
將控制平面的管理階層存取權限減至最低,並確保您的 API 伺服器不會被公開曝光,這些都是最重要的安全基礎。
DevOps 和 SecOps 團隊可以找出應用程式套件中的漏洞,但降低這些風險需要時間。在部署之前,必須更換或修補有漏洞的套件,並進行測試,這會讓環境暴露在外,直到問題解決為止。Prisma Cloud 等解決方案可針對每個工作負載自動進行漏洞對應,為已知漏洞提供虛擬修補程式。透過利用其 WAAS 元件,解決方案可調整流量檢查政策,以偵測並阻止遠端 HTTP 式攻擊。
容器與 Kubernetes 的網路安全性最佳實務
總結所討論的領域,以下最佳實務可作為清單,確保您的團隊具備保護您的 容器化應用 程式和資料免受網路威脅的能力。
監控與記錄網路流量
密切注意網路流量,對於偵測和回應安全性事件,以及維持容器化環境的整體健康是最重要的。
集中式記錄與監控解決方案
為您的容器和 Kubernetes 環境實作集中式記錄和監控解決方案,例如 ELK Stack、Prometheus 或 Prisma Cloud,可協助您收集、分析和可視化來自不同區域的網路流量資料。輕鬆存取集中式資料 intel 可讓您識別趨勢、偵測異常,並深入瞭解基礎結構的效能與安全性。
偵測與回應安全事件
監控網路流量並針對異常或可疑活動建立警示,可快速偵測涉及未經授權存取、資料外洩及其他惡意活動的事件,並作出回應。安全性團隊有能力採取適當的措施,例如隔離受影響的元件、封鎖惡意 IP 或及時更新防火牆規則。
網路流量可視化與分析
將網路流量資料視覺化並加以分析,可協助您找出可能顯示潛在安全性風險的模式和趨勢。Kibana、Grafana 或自訂儀表板等工具可用來建立網路流量的視覺表示,讓您更有效地發現異常並調查安全性事件。
網路安全性設定
強化網路組態和實作強大的存取控制,對於保護容器和 Kubernetes 環境免受安全性威脅至關重要。
強化主機與雲端網路設定
要維護環境的安全性,就必須確保容器主機和個別容器的安全網路設定。基本措施包括停用未使用的網路服務、僅限制必要元件的網路存取,以及將安全性修補程式和更新套用至主機作業系統和容器執行時。
網路存取控制與驗證
為了防止未經授權的存取,並維護容器和 Kubernetes 環境的完整性,實作強大的存取控制和驗證機制是非常重要的。主要的措施包括利用角色式存取控制 (RBAC) 來管理 Kubernetes 中的使用者權限、結合多重要素驗證 (MFA),以及採用網路安全性解決方案 (例如 VPN 或防火牆) 來限制對環境的存取。
定期網路安全性評估
要找出容器和 Kubernetes 環境中的潛在弱點,定期的網路安全性評估 - 漏洞掃描、滲透測試和安全性稽核 - 是必須的。這些評估的主要內容包括檢查網路組態、防火牆規則和安全性政策,以確保符合業界最佳實務和合規性需求。
透過遵循這些最佳實務和實作有效的網路安全性措施,您可以強化容器和 Kubernetes 環境,使其免受潛在的網路威脅,並確保應用程式和資料的安全性與完整性。
雲端網路安全性常見問題集
MTU 或最大傳輸單位,是指可在網路中傳輸的資料封包的最大大小。它是決定網路資料通訊效率和效能的重要參數。傳輸控制通訊協定 (TCP) 使用 MTU 來決定網際網路傳輸中每個封包的最大大小。
為了容納加密和封裝所引入的額外標頭開銷,在使用 IPsec 進行安全通訊時,有必要調整 MTU 值。例如,如果 Kubernetes 群集在預設 MTU 為 1500 位元組的乙太網路上運作,則 MTU 值應該降低,以計入 IPsec 和 SDN 的封裝開銷。此調整可防止封包破碎,並確保資料傳輸更有效率且更安全。