ACMG 2.0支持零信任网络模式

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
EMR Serverless StarRocks,5000CU*H 48000GB*H
应用型负载均衡 ALB,每月750个小时 15LCU
简介: ACMG 2.0支持零信任网络模式


在 ACMG 2.0 中,我们为用户提供了两种使用模式,第一种是无侵入转发模式,在这种模式下,ACMG 不会向 Pod 或者 Node 中插入 sidecar 或者 proxy 等代理对象,而是通过域名的方式将流量转发到 ACMG 集中式网关上,从而让集中式网关接管集群内的流量。另一种模式是零信任网络模式,此模式是专为构建零信任网络集群的,在此模式下,ACMG 在集群中的 Node 上插入 NodeProxy 代理对象,将流量转发到 ACMG 集中式网关上,自动构建出安全可靠的通信环境。

github链接:https://github.com/alibaba/alibaba-centralized-mesh-gateway/tree/acmg2.0


ACMG支持的转发方式

 无侵入转发模式


     无侵入转发模式实际上是利用域名来进行流量转发。在域名转发模式下,流量路径相比无 ACMG 下,只多了集中式网关这一层代理,而相比 Sidecar 模式,少了一层Envoy 代理以及 iptables 等流量劫持规则。这意味着用户在访问服务时,只需要通过集中式网关,就可以访问到所对应的服务,域名转发模式更加简洁,易于管理与维护,简化网络的安全配置和管理,减少管理员的工作量。此外由于域名转发模式没有任何的侵入性组件,因此还可以更好的节省业务节点的资源。



优点

  1. 流量路径清晰,不占用业务单元资源
  2. 由于减少 sidecar 等中间代理,性能更高,延迟更低
  3. 运维负担轻,并且后续用户可以自由选择将 ACMG 网关托管或者自建 ACMG 网关
  4. 支持多种语言和框架,可以与各种后端服务和应用程序进行集成。无论是使用Kubernetes、VM、容器化、无服务器等环境


缺点

  1. 由于缺少 sidecar/nodeproxy 等流量节点,无法自动构建双向认证下的零信任网络,需要用户手动进行配置
  2. 由于缺少 sidecar/nodeproxy 等流量节点,在全链路追踪、指标输出等方面表现会略差一些


零信任网络模式


     随着网络安全攻击、数据泄漏的事件不断增加,企业和组织对网络安全的重视程度也在不断提高,而安全性是 Service Mesh 的重要组成部分之一。零信任网络(Zero Trust Network)在网络的每个层面上都进行身份验证和访问控制,确保只有授权的用户才能访问受保护的资源。通过零信任网络,企业用户可以更好地管理网络访问权限,降低攻击者利用漏洞进行攻击的风险。



优点

  1. 安全性大大提升,天然支持服务间的身份认证、流量加密、访问控制和审计等。开发人员可以轻松地为服务网格中的服务提供细粒度的访问控制,并检测和防止常见的网络攻击
  2. 提供了对服务网格中的流量和性能的全面可观察性。通过集成 Prometheus、Grafana 等监控工具,开发人员可以实时监控和可视化服务的指标、日志和跟踪数据,以便进行故障排除和性能优化
  3. 运维负担轻,并且后续用户可以自由选择将 ACMG 网关托管或者自建 ACMG 网关
  4. 支持多种语言和框架,可以与各种后端服务和应用程序进行集成。无论是使用Kubernetes、VM、容器化、无服务器等环境


缺点

  1. 由于 nodeproxy 模式使用了额外的 L4 代理来处理流量和执行功能,这可能会引入一定的性能开销。特别是在大规模的部署中,代理的数量和网络流量可能会对整体性能产生影响
  2. 多转发节点带来了更复杂的网络框架,配置和管理它需要一定的学习成本和技术知识。特别是对于小规模的项目来说,可能会增加不必要的复杂性


上手试一试

我们以无侵入转发模式为例,介绍下 ACMG 的使用方式


部署

istioctlinstall--setprofile=acmg


在执行部署命令后,会在 istio-system 命名空间中看到 ACMG 的各个 Pod 都处于 Ready 状态。


NAMEREADYSTATUSRESTARTSAGEistio-cni-node-7hnzt1/1Running01mistio-cni-node-r2rwx1/1Running01mistio-cni-node-s8xz91/1Running01mcoreproxy-mj2xp1/1Running01mistiod-6f9c757686-hcm591/1Running01mnodeproxy-d2xq71/1Running01mnodeproxy-snc9n1/1Running01mnodeproxy-tb5f21/1Running01m


使用


kubectllabelnamespaceproductpagensistio.io/dataplane-mode=acmg


高级用法

     同样的,ACMG 2.0 支持 Istio 中的路由规则 CRD,例如用于定义服务之间的流量转发和管理的 VirtualService,它可以帮助开发人员实现灵活的流量控制和路由策略;用于定义服务的网络规则,包括负载均衡、连接池、故障转移等策略的DestinationRule;用于定义对服务的访问控制策略。可以配置允许或拒绝特定用户或服务的请求访问的 AuthorizationPolicy 等。ACMG 2.0 提供了更精细的流量控制和管理能力,有助于开发人员提高服务的可用性、性能和弹性。

   

以 bookinfo 为例,使用 VirtualService 和 DestinationRule 定义服务的路由策略:


apiVersion: networking.istio.io/v1alpha3kind: VirtualServicemetadata:
name: reviewsspec:
hosts:
-reviewshttp:
-route:
-destination:
host: reviewssubset: v1weight: 80-destination:
host: reviewssubset: v2weight: 20---apiVersion: networking.istio.io/v1alpha3kind: DestinationRulemetadata:
name: reviewsspec:
host: reviewstrafficPolicy:
loadBalancer:
simple: RANDOMsubsets:
-name: v1labels:
version: v1-name: v2labels:
version: v2-name: v3labels:
version: v3


以 bookinfo 为例,使用 AuthorizationPolicy 定义服务的访问控制策略:


apiVersion: security.istio.io/v1beta1kind: AuthorizationPolicymetadata:
name: productpage-clientnamespace: productpagensspec:
selector:
matchLabels:
app: productpageaction: ALLOWrules:
-from:
-source:
principals: ["cluster.local/ns/default/sa/sleep", "cluster.local/ns/default/sa/nosleep"]
to:
-operation:
methods: ["GET","PUT"]


卸载


istioctluninstall--purge


和其他方案的对比数据

     下面是 acmg 与 sidecar、ambient 的模式对比,其中 acmg 测试是在托管模式下,其中托管模式中针对阿里云的场景,我们做了一些资源整合、容灾能力以及性能优化的工作。包括加解密卸载,资源快速倒换,资源动态伸缩等。(注:其中图中的 Canal 指的托管版的 ACMG)    


     在资源占用上,我们测试了不同的吞吐下,三种不同的模式下的 CPU 利用率,以及最大吞吐:



ACMG 在 CPU 利用率上,相比 SIdeCar 大约提升了 8 倍,相比 Ambient 大约提升了 2.3 倍。ACMG 2.0 在架构设计上,首先在 Node 上应用了轻量的 L4 节点, L4 节点 NodeProxy 是一个轻量级的组件,仅负责身份认证和目标网络地址转换(DNAT),不需要进行深入的数据包分析和处理。相比于传统的完整的网络中间件,如负载均衡器或防火墙,L4 节点的资源消耗更低。它只需执行简单的任务,不需要维护复杂的 Session 表或执行深度数据包检查等操作。

   

在转发时延上,我们测试了不同吞吐下,三种不同的模式下分配相同资源情况下的 P99 延时,当吞吐量较小时,三个模式的延时并没有呈现出巨大的差异:



当逐步加大压测量,逼近转发的极限值时,三种不同的模式的表现差异较大:


b0077f2f91630d20a85ef45760f3fcf8.png


ACMG 在转发延时方面,相比 SideCar 大约提升了 4.1 倍,最大吞吐提升了 12倍,相比 Ambient 大约提升了 1.4 倍最大吞吐提升了 3.2 倍。SideCar 的双重 L7 负载均衡在数据处理和资源利用方面都比较繁重,而 Ambient 的 L7 模式下, Ztunnel 的转发效率和资源利用也不及 ACMG。SideCar 模式在两层 L7 负载均衡下需要处理更多的数据和请求,因此其性能和延迟可能会受到影响。而 Ambient 在L7 模式下使用 Ztunnel 进行转发,会相对的轻量一些,但是转发效率和资源利用率还是不如 ACMG,而这种差异在越来越大的流量下,差异化也越来越明显。

     在配置面上,我们测试了同等数量的 Pod 等弹缩时,三种模式下需要更新的配置量,这个与配置生效时间息息相关。


   在相同的用户配置下,ACMG 相比 SideCar,南向配置减少了 10.6 倍,相比Ambient 减少了 3.1 倍。ACMG 对配置进行了裁剪和优化。而且 ACMG 只需将大部分配置下发到集中式转发网关,而不需要在每个节点上进行单独配置。这简化了配置管理的复杂性,也降低了配置推送的延迟和资源消耗。

   

  集中式转发网关的方式进一步提高了配置管理和南向配置推送的性能,可以减少对每个节点进行配置推送的工作量和延迟。这种集中式管理方式简化了配置管理,同时提高了配置推送的效率和一致性。这种优势在大规模部署服务的 Kubernetes 集群中尤为明显,显著减少配置管理的工作量和资源消耗,提高配置推送的效率和一致性。


后面我们还会做什么


  1. 更丰富的网络和安全特性:acmg 后面会引入更多的网络和安全特性,以满足不同流量场景下的需求。例如,进一步增强的访问控制、流量控制和审计功能,以及更灵活的网络配置选项。
  2. 多场景的支持;在复杂的多场景中提供统一的服务管理、通信和网络控制能力。帮助应用程序在混布环境、多 VPC、多 Region 和多集群中实现灵活、可靠和可观察的通信和管理。
  3. 性能优化;比如利用高效的数据传输以及压缩算法来提高性能并减少网络带宽的使用,在一定程度上减少数据传输的大小和时延,提高整体的性能和效率。


相关文章
|
3月前
|
存储 安全 JavaScript
云计算浪潮中的网络安全之舵探索Node.js中的异步编程模式
【8月更文挑战第27天】在数字化时代的风帆下,云计算如同一片广阔的海洋,承载着企业与个人的数据梦想。然而,这片海洋并非总是风平浪静。随着网络攻击的波涛汹涌,如何确保航行的安全成为了每一个船员必须面对的挑战。本文将探索云计算环境下的网络安全策略,从云服务的本质出发,深入信息安全的核心,揭示如何在云海中找到安全的灯塔。
|
11天前
|
域名解析 网络协议 虚拟化
vmware 提供的三种网络工作模式
本文介绍了VMware虚拟机的三种网络工作模式:Bridged(桥接模式)、NAT(网络地址转换模式)和Host-Only(仅主机模式)。桥接模式将虚拟机与主机通过虚拟网桥连接,实现与物理网络的直接通信;NAT模式通过虚拟NAT设备和DHCP服务器使虚拟机联网;Host-Only模式则将虚拟机与外网隔离,仅与主机通信。此外,文章还简要介绍了网络相关的基础知识,包括主机名、IP地址、子网掩码、默认网关和DNS服务器。
30 3
|
1月前
|
安全 定位技术 数据安全/隐私保护
|
26天前
|
负载均衡 应用服务中间件 数据安全/隐私保护
docker swarm 创建 Swarm 模式下的网络
【10月更文挑战第14天】
24 6
|
10天前
|
Docker 容器
【赵渝强老师】Docker的None网络模式
Docker容器在网络方面实现了逻辑隔离,提供了四种网络模式:bridge、container、host和none。其中,none模式下容器具有独立的网络命名空间,但不包含任何网络配置,仅能通过Local Loopback网卡(localhost或127.0.0.1)进行通信。适用于不希望容器接收任何网络流量或运行无需网络连接的特殊服务。
|
10天前
|
Docker 容器
【赵渝强老师】Docker的Host网络模式
Docker容器在网络环境中是隔离的,可通过配置不同网络模式(如bridge、container、host和none)实现容器间或与宿主机的网络通信。其中,host模式使容器与宿主机共享同一网络命名空间,提高性能但牺牲了网络隔离性。
|
10天前
|
Kubernetes Docker 容器
【赵渝强老师】Docker的Container网络模式
Docker容器在网络环境中彼此隔离,但可通过配置不同网络模式实现容器间通信。其中,container模式使容器共享同一网络命名空间,通过localhost或127.0.0.1互相访问,提高传输效率。本文介绍了container模式的特点及具体示例。
|
10天前
|
Linux Docker 容器
【赵渝强老师】Docker的Bridge网络模式
本文介绍了Docker容器的网络隔离机制及其四种网络模式:bridge、container、host和none。重点讲解了默认的bridge模式,通过示例演示了如何创建自定义bridge网络并配置容器的网络信息。文中还附有相关图片和视频讲解,帮助读者更好地理解Docker网络的配置和使用方法。
|
1月前
|
存储 前端开发 JavaScript
链动模式融合排队免单:扩散用户裂变网络、提高复购
将链动2+1与排队免单结合的模式及链动3+1模式转化为可运行代码涉及多个技术领域,包括后端开发、前端开发、数据库设计等。本文提供了一个简化的技术框架,涵盖用户管理、订单处理、奖励计算、团队结构等核心功能,并提供了示例代码。同时,强调了安全性、测试与部署的重要性,以确保系统的稳定性和合规性。
|
1月前
|
Docker 容器
docker中检查容器的网络模式
【10月更文挑战第5天】
129 1