<!-- AI_TASK_START: AI标题翻译 -->
[新产品/新功能] 发布 Layer 7 网络策略与高级容器网络服务,用于 AKS 集群
<!-- AI_TASK_END: AI标题翻译 -->
<!-- AI_TASK_START: AI竞争分析 -->
# 产品功能分析
## 新功能/新产品概述
Azure 最近推出了 Layer 7 (L7) Network Policies 的公共预览功能,针对 Azure Kubernetes Service (AKS) 集群和 Azure CNI,使用 **Advanced Container Networking Services (ACNS)** 提供支持。这是一种基于应用层的网络策略,与传统 **Layer 3** 和 **Layer 4** 策略不同,L7 策略允许更精细的流量管理,针对协议如 **HTTP(S)**、**gRPC** 和 **Kafka**。核心目标是为容器化环境增强安全性和可观察性,解决现代分布式工作负载的需求,例如细粒度访问控制和应用层洞察。背景在于,Azure 先前推出了 **Fully Qualified Domain Name (FQDN) filtering**,作为基础,此次更新进一步扩展了策略能力,适用于 AKS 用户群,主要定位于企业级云原生应用开发和运维场景。
## 关键客户价值
- **API 安全提升**:L7 策略提供针对 API 的细粒度控制,例如仅允许特定 **HTTP(S)** 方法(如 GET 或 POST)访问特定路径,这有助于强制执行安全最佳实践,减少不必要访问风险。与传统策略相比,这种应用层控制显著降低了攻击面,但需注意在复杂 API 环境中可能增加策略配置复杂度。
- **零信任模型实现**:通过默认拒绝所有流量并仅允许基于应用层上下文的必要通信,L7 策略帮助构建零信任架构,提高整体安全态势。相比竞品,这在 AKS 环境中提供了更无缝的集成,体现了 Azure 在容器安全领域的差异化优势,尤其适用于高安全需求的行业如金融和医疗。
- **微服务隔离优化**:在微服务架构中,L7 策略支持精确定义服务间通信规则,例如限制特定服务仅通过指定 **API 端点** 和方法访问,这有效缩小安全漏洞的传播范围。客户可从中获得更好的隔离效果,适用于突发流量场景,但可能在多服务环境中增加管理开销。
## 关键技术洞察
- **技术工作原理**:L7 策略利用 **eBPF (extended Berkley Packet Filter)** 探针对流量进行初步检查,如果启用策略,则将流量重定向到本地 **Envoy Proxy**(作为 ACNS Security Agent 的一部分)。Envoy Proxy 基于定义的规则(如 HTTP 方法和路径)决定流量是否通过,实现应用层过滤。相比传统网络策略,这引入了事件驱动机制,提升了处理效率,例如在高并发场景下支持毫秒级响应。
- **创新点与影响**:核心创新在于结合 **Cilium** 和 **Envoy**,提供基于应用协议的细粒度控制,这增强了 AKS 的安全性和可观察性。通过 **Hubble** 默认启用,结合 Azure Managed Grafana 仪表板(如 “Kubernetes/Networking/L7 (Namespace)”),用户可实时监控 L7 流量指标,包括请求率和策略决策,支持 **HTTP(S)**、**gRPC** 和 **Kafka** 的可视化分析。这种技术提高了性能和可用性,但可能在大规模集群中面临 eBPF 探针的资源消耗问题,需优化以确保稳定性。
- **挑战与解决**:实现过程中,流量重定向依赖于 ACNS 代理,这可能引入轻微延迟,但 Azure 通过预配置仪表板和 Hubble CLI/UI 提供易用的监控工具,帮助用户快速排查和优化策略执行。
## 其他信息
- Azure 鼓励用户试用 L7 策略的公共预览,并提供参考文档链接,如 [Layer 7 Policy Overview](https://aka.ms/acns/l7policy),以指导应用场景示例。这有助于用户反馈和迭代改进,体现了 Azure 在云网络领域的持续创新趋势。
<!-- AI_TASK_END: AI竞争分析 -->
<!-- AI_TASK_START: AI全文翻译 -->
# 引入 Layer 7 网络策略以及高级容器网络服务用于 AKS 集群!
**原始链接:** [https://techcommunity.microsoft.com/blog/azurenetworkingblog/introducing-layer-7-network-policies-with-advanced-container-networking-services/4409782](https://techcommunity.microsoft.com/blog/azurenetworkingblog/introducing-layer-7-network-policies-with-advanced-container-networking-services/4409782)
**发布时间:** 2025-04-30
**厂商:** AZURE
**类型:** TECH-BLOG
---
Azure Networking Blog
# 引入 Layer 7 (L7) 网络策略以及高级容器网络服务用于 AKS 集群!
2025 年 4 月 30 日
我们一直在进行激动人心的旅程,通过 [Azure Container Networking Services ](<https://aka.ms/acns>) 来提升 Azure Kubernetes Service (AKS) 集群的网络可观察性和安全能力。我们的第一步,即推出 [Fully Qualified Domain Name (FQDN) 过滤](<https://aka.ms/acns/fqdn>),标志着在启用基于策略的出站控制方面迈出了基础性一步。通过允许在域名级别管理流量,我们为更高级和细粒度的安全能力奠定了基础,这些能力与现代分布式工作负载相匹配。这只是个开始,一窥我们对为 AKS 用户提供强大且细粒度的安全控制的承诺。
今天,我们非常兴奋地宣布 Layer 7 (L7) 网络策略的公开预览版,该策略针对启用了高级容器网络服务的 AKS 和 Azure CNI 驱动的 Cilium 用户。这一更新为您的容器化环境带来了全新的安全维度,提供对应用层流量的更细粒度控制。
## L7 策略概述
与传统 Layer 3 和 Layer 4 策略(这些策略在网络层和传输层运作)不同,L7 策略在应用层运作。这使得基于应用特定属性的流量管理更加精确和有效。L7 策略使您能够基于应用层协议(如 HTTP(S)、gRPC 和 Kafka)定义安全规则。例如,您可以创建策略,允许基于 HTTP(S) 方法(GET、POST 等)、头部、路径和其他协议特定属性的流量。这种控制级别有助于实施细粒度的访问控制、根据通信内容限制流量,以及在应用层获得更深入的网络流量洞察。
## L7 策略的用例
**API 安全:** 对于暴露 API 的应用,L7 策略提供对 API 访问的细粒度控制。您可以定义仅允许特定 HTTP(S) 方法(例如,仅用于只读操作的 GET,或用于创建资源的 POST)的策略,针对特定 API 路径。这有助于强制执行 API 安全最佳实践并防止不必要的访问。
**零信任实施:** L7 策略是 AKS 环境内实施零信任 (Zero-Trust) 安全模型的关键组件。通过默认拒绝所有流量,然后仅基于应用层上下文显式允许必要的通信,您可以显著减少攻击面并改善整体安全态势。
**微服务分割和隔离:** 在微服务架构中,隔离服务以限制潜在安全漏洞的传播范围至关重要。L7 策略允许您为服务间通信定义精确规则。例如,您可以确保计费服务仅通过特定 API 端点和 HTTP(S) 方法被订单处理服务访问,从而防止其他服务的未授权访问。
## 它如何运作?
当一个 pod 发送网络流量时,它首先使用一个小型、高效的程序(称为扩展 Berkley Packet Filter (eBPF) 探针)对照您定义的规则进行检查。如果为该 pod 启用了 L7 策略,该探针会标记流量,然后将其重定向到本地 Envoy Proxy。该 Envoy Proxy 是 ACNS 安全代理的一部分,与 Cilium 代理分开。
Envoy Proxy(作为 ACNS 安全代理的一部分)充当门卫,根据您的策略标准决定是否允许流量继续。如果流量被允许,它将流向目的地;如果不被允许,应用将收到访问被拒绝的错误消息。

## 示例:限制 HTTP POST 请求
假设您在 AKS 集群上运行一个 Web 应用,并且希望确保特定后端服务 (backend-app) 仅从前端应用 (frontend-app) 接受针对 /data 路径的 GET 请求。通过 L7 网络策略,您可以定义如下策略:
apiVersion: cilium.io/v2
kind: CiliumNetworkPolicy
metadata:
name: allow-get-products
spec:
endpointSelector:
matchLabels:
app: backend-app # 用您的后端应用名称替换
ingress:
- fromEndpoints:
- matchLabels:
app: frontend-app # 用您的前端应用名称替换
toPorts:
- ports:
- port: "80"
protocol: TCP
rules:
http:
- method: "GET"
path: "/data"
## 如何观察 L7 流量?
启用了 L7 策略的高级容器网络服务还通过 Hubble 提供对 L7 流量的可观察性,包括 HTTP(S)、gRPC 和 Kafka。Hubble 默认与高级容器网络服务一起启用。为了便于分析,启用了 L7 策略的高级容器网络服务提供预配置的 Azure Managed Grafana 仪表板,这些仪表板位于 **仪表板 > Azure Managed Prometheus 文件夹**。这些仪表板(如 **“Kubernetes/Networking/L7 (Namespace)”** 和 **“Kubernetes/Networking/L7 (Workload)”**)在集群、命名空间和工作负载级别提供细粒度的 L7 流数据可见性。
下图显示了 Grafana 仪表板,该仪表板可视化了 AKS 中 _http-server-866b29bc75_ 工作负载在过去 5 分钟内的传入 HTTP 流量。它显示请求率、策略裁决(转发/丢弃)、方法/状态细分以及丢弃流率,用于实时监控和故障排除。这只是一个示例;类似详细的指标和可视化(包括热图)也适用于 gRPC 和 Kafka 流量,在我们的预创建仪表板中可用。

对于实时日志分析,您还可以利用高级容器网络服务的可观察性解决方案提供的 Hubble CLI 和 UI 选项,从而检查单个 L7 流并排查策略执行问题。
## 行动号召
我们鼓励您在 AKS 集群上试用 L7 网络策略的公开预览版,以提升容器化工作负载的网络安全控制。我们重视您的反馈,因为我们将继续开发和改进此功能。请参考 [Layer 7 策略概述](<https://aka.ms/acns/l7policy>) 获取更多信息,并访问 [如何应用 L7 策略](<https://aka.ms/acns/l7policy-how-to>) 查看示例场景。
更新于 2025 年 4 月 30 日
版本 2.0
<!-- AI_TASK_END: AI全文翻译 -->