容器防火墙概述
什么是容器防火墙?
相较于传统虚拟机,容器技术以其轻量化、高效性和可移植性等优势逐渐成为主流。然而,由于在单一节点上可以运行几十甚至上百个容器,容器的安全边界相对模糊,传统的安全防护手段也难以有效识别和控制出入容器的流量,这也带来了横向渗透、权限滥用、数据泄露等潜在的安全风险。
针对这一挑战,企业主机安全推出了容器防火墙功能。容器防火墙能够实现Pod、工作负载以及节点粒度的网络隔离,可有效抵御横向渗透攻击,确保业务权限最小化,从而保障用户业务的安全性和稳定性。
容器防火墙原理及限制说明
容器防火墙功能由企业主机安全容器版提供,购买企业主机安全的操作,请参见购买主机安全防护配额。
关于容器防火墙的原理及相关限制说明请参见表1。
集群类型 |
CCE Standard集群 |
CCE Turbo集群 |
三方k8s集群 |
|
---|---|---|---|---|
容器网络 |
容器隧道网络 |
VPC网络 |
云原生网络2.0 |
k8s原生网络 |
容器防火墙防护原理 |
通过Kubernetes内置的网络策略(Network Policy)限制Pod之间的通信,以及Pod对外部网络的访问。 |
通过安全组控制进出节点的流量,从而达到间接防护Pod安全的目的。 |
通过为工作负载绑定安全组,基于安全组规则控制出入工作负载的流量,实现对工作负载的网络隔离。 |
通过Kubernetes内置的网络策略(Network Policy)限制Pod之间的通信,以及Pod对外部网络的访问。 |
入规则支持的集群版本 |
所有版本 |
所有版本 |
v1.19及以上集群版本 |
所有版本 |
出规则支持的集群版本 |
v1.23及以上集群版本 |
所有版本 |
v1.19及以上集群版本 |
v1.23及以上集群版本 |
入规则支持的选择方式 |
|
不涉及 |
不涉及 |
|
出规则支持的选择方式 |
|
不涉及 |
不涉及 |
|
支持的操作系统 |
|
无约束 |
无约束 |
无约束 |
是否支持IPv6网络策略 |
不支持 |
不涉及 |
不涉及 |
不支持 |
是否支持通过工作负载的标签限制ClusterIP的访问 |
不支持 |
不涉及 |
不涉及 |
不支持 |
权限依赖 |
由于操作集群内的资源对象需要获取对应的操作权限,因此使用容器防火墙功能时,用户账号需要具备以下两类权限之一:
|
无依赖 |
相关概念
- 网络策略
网络策略(NetworkPolicy)是一种Kubernetes资源对象,用于定义集群中Pod的网络访问控制规则。它通过标签选择器(podSelector等)指定目标Pod,并通过ingress和egress规则定义允许或拒绝的入站和出站流量。
- 安全组
安全组是一个逻辑上的分组,为具有相同安全保护需求并相互信任的云服务器、云容器、云数据库等实例提供访问策略。安全组中包括入方向规则和出方向规则,您可以针对每条入方向规则指定来源、端口和协议,针对出方向规则指定目的地、端口和协议,用来控制安全组内实例入方向和出方向的网络流量。
- namespaceSelector
namespaceSelector是一个标签选择器,用于选择特定的命名空间(namespace)。NetworkPolicy 可以通过namespaceSelector指定允许或拒绝来自或去往这些命名空间中所有Pod的流量。
- podSelector
podSelector是一个标签选择器,用于选择特定的Pod。NetworkPolicy通过podSelector指定目标Pod,并定义允许或拒绝的流量规则。
- ipBlock
ipBlock用于指定IP地址范围(CIDR格式),表示允许或拒绝来自或去往这些IP段的流量。