什麼是容器網路安全性?
容器網路安全性是進階容器網路服務的供應專案,可提供對容器間網路流量的增強控制。 容器網路安全性利用 Cilium 型原則,相較於傳統 IP 型方法,提供更細微且方便使用者管理網路安全性的方法。
容器網路安全性的功能
自今天起,容器網路安全性內可用的第一個功能是 FQDN 篩選。 這可讓您根據功能變數名稱定義網路安全策略,以提供更細微且方便使用者使用的方式來管理網路流量。
FQDN 篩選概觀
容器化環境面臨獨特的安全性挑戰。 傳統網路安全性方法通常依賴以IP為基礎的篩選,在IP位址經常變更時可能會變得繁瑣且效率較低。 此外,了解網路流量模式和識別潛在威脅可能相當複雜。
FQDN 篩選提供有效率且方便使用者管理網路原則的方法。 藉由根據功能變數名稱而非IP位址來定義這些原則,組織可以大幅簡化原則管理的程式。 這種方法可避免經常在IP位址變更時所需的更新,進而降低系統管理負擔,並將設定錯誤的風險降到最低。
在 Kubernetes 叢集中,Pod IP 位址可能會經常變更,因此使用 IP 位址來保護具有安全策略的 Pod 可能會很困難。 FQDN 篩選可讓您使用功能變數名稱而不是IP位址來建立Pod層級原則,這樣就不需要在IP位址變更時更新原則。
注意
需要由 Cilium 和 Kubernetes 1.29 版或更新版本的 Azure CNI,才能使用進階容器網路服務的容器網路安全性功能。
FQDN 篩選的元件
Cilium 代理程式:Cilium 代理程式是重要的網路元件,可在由 Cilium 提供電源的 Azure CNI 叢集中,以 DaemonSet 的形式執行。 它會處理叢集中 Pod 的網路、負載平衡和網路原則。 對於具有強制執行 FQDN 原則的 Pod,Cilium 代理程式會將封包重新導向至 ACNS 安全性代理程式以進行 DNS 解析,並使用從 ACNS 安全性代理程式取得的 FQDN-IP 對應來更新網路原則。
ACNS 安全性代理程式:ACNS 安全性代理程式會在已啟用進階容器網路服務的 Cilium 叢集中,以 DaemonSet 的形式執行。 它會處理 Pod 的 DNS 解析,並在成功的 DNS 解析上,使用 FQDN 將 Cilium 代理程式更新為 IP 對應。
FQDN 篩選的運作方式
啟用 FQDN 篩選時,會先評估 DNS 要求,以判斷是否應該允許這些要求,之後 Pod 才能根據網路原則存取指定的功能變數名稱。 Cilium 代理程式會標記源自 Pod 的 DNS 要求封包,並將其重新導向至 ACNS 安全性代理程式。 此重新導向只會針對強制執行 FQDN 原則的 Pod 進行。
ACNS 安全性代理程式接著會決定是否根據原則準則將 DNS 要求轉送至 DNS 伺服器。 如果允許,要求會傳送至 DNS 伺服器,並在收到回應時,ACNS 安全性代理程式會使用 FQDN 對應來更新 Cilium 代理程式。 這可讓 Cilium 代理程式更新原則引擎內的網路原則。 下圖說明 FQDN 篩選的高階流程。
重點優勢
可調整的安全策略管理:叢集和安全性系統管理員不需要在每次IP位址變更時更新安全策略,讓作業更有效率。
增強的安全性合規性:FQDN 篩選支援 零信任 安全性模型。 網路流量僅限於受信任的網域,只會降低未經授權的存取風險。
復原原則強制執行:使用 FQDN 篩選實作的 ACNS 安全性代理程式可確保即使 Cilium 代理程式停止運作,原則仍繼續強制執行,DNS 解析仍會順暢地繼續執行。 此實作可大幅確保動態和分散式環境中維護安全性和穩定性。
考量因素:
- 容器網路安全性功能需要由 Cilium 和 Kubernetes 1.29 版和更新版本支援的 Azure CNI。
限制:
- 不支援通配符 FQDN 原則。 這表示您無法根據欄位上的模式
*
建立允許或拒絕流量的原則spec.egress.toPorts.rules.dns.matchPattern
- 節點本機 DNS 目前不支援 FQDN 篩選。
- 不支援雙堆疊。
- 不支援 Kubernetes 服務名稱。
- 不支援其他 L7 原則。
- 處理每秒超過 1000 個要求時,FQDN Pod 可能會表現出效能降低。
- 使用 Cilium 網路原則時,Alpine 型容器映射可能會遇到 DNS 解析問題。 這是因為 musl libc 的搜尋網域反覆運算有限。 若要解決此問題,請使用通配符模式明確定義網路原則 DNS 規則中的所有搜尋網域,如下列範例
rules:
dns:
- matchPattern: "*.example.com"
- matchPattern: "*.example.com.*.*"
- matchPattern: "*.example.com.*.*.*"
- matchPattern: "*.example.com.*.*.*.*"
- matchPattern: "*.example.com.*.*.*.*.*"
- toFQDNs:
- matchPattern: "*.example.com"
定價
重要
進階容器網路服務是付費供應專案。 如需定價的詳細資訊,請參閱 進階容器網路服務 - 定價。
下一步
瞭解如何在 AKS 上啟用 容器網路安全性 。
探索 開放原始碼 社群如何建置 Cilium 網路原則。
如需 Azure Kubernetes Service (AKS) 進階容器網路服務的詳細資訊,請參閱什麼是 Azure Kubernetes Service (AKS) 進階容器網路服務?。
在什麼是容器網路可檢視性?中探索進階容器網路服務中的容器網路可檢視性功能?