在云原生架构中,尤其是云原生网络安全的建设和规划中,以零信任的架构和思路实现云原生网络的微隔离和访问控制是必要的。

什么是微隔离

微隔离就是一种更细粒度的网络隔离技术,其核心能力的诉求也是聚焦在东西向流量,对传统环境、虚拟化环境、混合云环境、容器环境等东西向流量进行隔离和控制,重点在于阻止当黑客进入数据中心网络或者云虚拟网络后进行的横向移动。

微隔离有别于传统的基于边界的防火墙隔离技术,微隔离技术通常是采用一种软件定义的方式,其策略控制中心与策略执行单元是分离的,而且通常具备分布式和自适应等特点。策略控制中心是微隔离系统的核心控制单元,可视化展现内部系统之间以及业务应用之间的网络访问关系,并且能够按照角色、标签等快速地对需要隔离的工作负载进行分类分组,高效灵活地配置工作负载以及业务应用之间的隔离策略。策略执行单元主要用于网络流量数据的监控以及隔离策略的执行,通常实现为虚拟化设备或者主机上的代理。

为什么要微隔离

在云原生环境中,与传统网络或者租户网络相比,容器或者微服务的生命周期变得短了很多,其变化频率要高很多。微服务之间有着复杂的业务访问关系,尤其是当工作负载数量达到一定规模以后,这种访问关系将会变得异常的庞大和复杂。因此,在云原生环境中,网络的隔离需求已经不仅仅是物理网络、租户网络等资源层面的隔离,而是变成了服务之间应用层面的隔离

就网络隔离而言,一方面需要能够针对业务角色,从业务视角更细粒度地实现微服务之间的访问隔离;同时,还要针对业务之间的关系,在隔离基础上实现访问控制,从而降低网络攻*击在东西向上的横向移动。另一方面,这种灵活快速的网络状态变化也带来了全新的隔离和访问控制策略更新的需求,隔离策略与访问控制策略需要能够完全自动化地适应业务和网络的快速变化,实现快速高效的部署和生效。

微隔离技术

目前,对于微隔离的技术实现,还没有统一的产品标准,属于比较新的产品形态。Gartner给出了评估微隔离的几个关键衡量指标:

  • 是基于代理的,基于虚拟化设备的,还是基于容器的?
  • 如果是基于代理的,对宿主机的性能影响如何?
  • 如果是基于虚拟化设备的,它应该如何接入网络中?
  • 该方案能否支持公有云的IaaS?

在IaaS层面的微隔离机制一般而言有三种形态:基于虚拟化技术(Hypervisor)基于网络(Overlay、SDN),以及基于主机代理(Host-Agent),而在容器环境中则有很大的不同。

首先,容器是非常轻量级的,且一个宿主机中容器数量较多,因而,每个容器上部署一个主机代理的方式是非常昂贵且不实用的。

其次,基于虚拟化技术和基于网络的技术都是在访问的主体和客体间部署网络访问控制策略,区别只是与IaaS系统的对接机制不同。而在容器环境中,已有标准的CNI组网机制和Network Policy网络访问控制策略,因而可融合为一类。Network Policy是Kubernetes的一种资源,用来说明一组Pod之间是如何被允许互相通信,以及如何与其他网络端点进行通信。

最后,云原生环境中存在大量的微服务,微隔离应更多关注微服务业务,而非简单容器隔离,如在Service Mesh架构中以Sidecar模式做反向代理,成为微隔离的新形态。