云原生网络之微隔离

本博客地址:https://security.blog.csdn.net/article/details/130044619

一、微隔离介绍

1.1、微隔离概念

在主体执行动作时,对主体权限和行为进行判断,最常见的是网络访问控制,也就是零信任网络访问(ZTNA)。零信任网络访问是零信任实现中很重要的技术分支,而微隔离作为实现ZTNA的关键技术之一,在云原生网络安全建设中同样起着重要的作用。

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

微隔离有别于传统的基于边界的防火墙隔离技术,微隔离技术通常是采用一种软件定义的方式,其策略控制中心与策略执行单元是分离的,而且通常具备分布式和自适应等特点。

策略控制中心是微隔离系统的核心控制单元,可视化展现内部系统之间以及业务应用之间的网络访问关系,并且能够按照角色、标签等快速地对需要隔离的工作负载进行分类分组,高效灵活地配置工作负载以及业务应用之间的隔离策略。

策略执行单元主要用于网络流量数据的监控以及隔离策略的执行,通常实现为虚拟化设备或者主机上的代理。

1.2、云原生环境中两种网络微隔离的机制

1、基于Network Policy实现

Network Policy是Kubernetes的一种资源,用来说明一组Pod之间是如何被允许互相通信,以及如何与其他网络端点进行通信。Network Policy使用标签选择Pod,并定义选定Pod所允许的通信规则。每个Pod的网络流量包含流入(Ingress)和流出(Egress)两个方向。

在默认的情况下,所有的Pod之间都是非隔离的,完全可以互相通信,也就是采用了一种黑名单的通信模式。当为Pod定义了Network Policy之后,只有允许的流量才能与对应的Pod进行通信。在通常情况下,为了实现更有效、更精准的隔离效果,会将这种默认的黑名单机制更改为白名单机制,也就是在Pod初始化的时候,就将其Network Policy设置为deny all,然后根据服务间通信的需求,制定细粒度的策略,精确地选择可以通信的网络流量。

CNI针对Network Policy只是制定了相应的接口规范,Kubernetes的Network Policy功能也都是由第三方插件来实现的。因此,通常只有支持Network Policy功能的网络插件或者安全插件,才能进行相应的网络策略配置,比如CalicoCilium等。

2、基于Sidecar实现

微隔离的另外一种实现方式是采用Service Mesh架构中的Sidecar方式。Service Mesh(比如Istio)的流量管理模型通常与Sidecar代理(比如Envoy)一同部署,网格内服务发送和接收的所有流量都经由Sidecar代理,这让控制网格内的流量变得异常简单,而且不需要对服务做任何的更改,再配合网格外部的控制平面,可以很容易地实现微隔离。

二、Cilium介绍

开源地址及说明文档:https://github.com/cilium/cilium

2.1、概念

Cilium是一种开源的云原生网络实现方案,与其他网络方案不同的是,Cilium着重强调了其在网络安全上的优势,可以透明地对Kubernetes等容器管理平台上的应用程序服务之间的网络连接进行安全防护。

Cilium在设计和实现上基于Linux的一种新的内核技术eBPF,可以在Linux内部动态插入强大的安全和可见的网络控制逻辑,相应的安全策略可以在不修改应用程序代码或容器配置的情况下进行应用和更新。其特性主要包括以下三方面:

⬤ 提供Kubernetes中基本的网络互连互通的能力,实现容器集群中包括Pod、Service等在内的基础网络连通功能。
⬤ 依托eBPF,实现Kubernetes中网络的可观测性以及基本的网络隔离、故障排查等安全策略。
⬤ 依托eBPF,突破传统主机防火墙仅支持L3、L4微隔离的限制,支持基于API的网络安全过滤能力。Cilium提供了一种简单而有效的方法来定义和执行基于容器/Pod身份的网络层和应用层(比如HTTP/gRPC/Kafka等)安全策略。

2.2、架构

Cilium位于容器编排系统和Linux Kernel之间,向上可以通过编排平台为容器进行网络以及相应的安全配置,向下可以通过在Linux内核挂载eBPF程序,控制容器网络的转发行为以及安全策略执行。

在Cilium架构中,主要组件包括Cilium Agent和Cilium Operator。

⬤ Cilium Agent作为整个架构中最核心的组件,通过DaemonSet的方式,以特权容器的模式运行在集群的每个主机上。Cilium Agent作为用户空间守护程序,通过插件与容器运行时和容器编排系统进行交互,进而为本机上的容器进行网络以及安全的相关配置。同时提供了开放的API,供其他组件进行调用。

⬤ Cilium Operator主要负责管理集群中的任务,尽可能地保证以集群为单位,而不是单独地以节点为单位进行任务处理,主要包括通过etcd为节点之间同步资源信息、确保Pod的DNS可以被Cilium管理、集群Network Policy的管理和更新等。

Cilium架构如图所示:
在这里插入图片描述

2.3、组网模式

Cilium提供多种组网模式,默认采用基于vxlan的Overlay组网。除此之外,还包括:

⬤ 通过BGP路由的方式,实现集群间Pod的组网和互联;
⬤ 在AWS的ENI(Elastic Network Interface)模式下部署使用Cilium;
⬤ Flannel和Cilium的集成部署;
⬤ 采用基于ipvlan的组网,而不是默认的基于veth;
⬤ Cluster Mesh组网,实现跨多个Kubernetes集群的网络连通和安全性等多种组网模式

2.4、可观测

Cilium提供了网络可视化组件Hubble,Hubble建立在Cilium和eBPF之上,以一种完全透明的方式,提供网络基础设施通信以及应用行为的深度可视化,是一个应用于云原生工作负载、完全分布式的网络和安全可观测性平台。

Hubble能够利用Cilium提供的eBPF数据路径,获得对Kubernetes应用和服务网络流量的深度可见性。这些网络流量信息可以对接Hubble CLI、UI工具,可以通过交互式方式快速发现和诊断相关的网络问题与安全问题。除了自身的监控工具,Hubble还可以对接Prometheus、Grafana等主流的云原生监控体系,实现可扩展的监控策略。

2.5、安装

# 下载及解压
wget https://github.com/cilium/cilium-cli/releases/latest/download/cilium-linux-amd64.tar.gz
tar xzvfC cilium-linux-amd64.tar.gz /usr/local/bin

# 安装
cilium install --kube-proxy-replacement=strict

# 可视化组件
cilium hubble enable --ui

# 查看状态
cilium status

# 展示Service
cilium service list

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/10546.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

图片怎么转换成pdf格式?这几个方法帮你一键转换

现今电子书籍越来越受到欢迎,其中PDF格式也成为了一种常用的电子书籍格式。无论是工作还是学习,我们都可能会遇到需要将图片转换成PDF格式的情况,例如保存一些资料证明、公文公告、学习资料等。在这篇文章中,我们将为大家介绍三种…

IO多路复用机制详解

高性能IO模型浅析 服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种: (1)同步阻塞IO(Blocking IO):即传统的IO模型。 (2)同步非阻塞IO(Non-blo…

【权限维持】黄金白银票据隐藏账户C2远控RustDeskGotoHTTP

文章目录内网域&单机版-权限维持-基于用户-隐藏用户内网域-权限维持-基于服务TGT-黄金白银票据黄金方法:白银方法:内网域-权限维持-基于软件-GotoHTTP&RustDesk—无需安装C2 GotoHTTPC2 RustDesk 推荐内网域&单机版-权限维持-基于用户-隐藏用…

研究生,但是一直在摆烂学不进去

好的,我来为您创作一首歌曲,希望能够帮助您每天保持自律,专注学习。 《自律之歌》 第1节: 每天都要努力 学习不停歇 独自一人也要坚持 不放弃自己的梦想 读文献 写论文 我们不停探索 穷孩子的荣耀 就在不远处等候 合唱&#xf…

仿京东放大镜效果的实现

仿京东放大镜 (1) 整个案例可以分为三个功能模块 (2) 鼠标经过小图片盒子, 黄色的遮挡层 和 大图片盒子显示,离开隐藏2个盒子功能 (3)黄色的遮挡层跟随鼠标功能。 (4&…

Dapr微服务

** 一、Dapr是什么 ** 官方解释:Dapr (Distributed Application Runtime)是一个可移植的、事件驱动的运行时 可移植:指与软件从某一环境转移到另一环境下的难易程度。事件驱动:调用与被调用方解耦 自己理解:Dapr为任何语言编写…

【通过Cpython3.9源码看看列表到底是咋回事】

列表结构 typedef struct {PyObject_VAR_HEAD/* Vector of pointers to list elements. list[0] is ob_item[0], etc. */PyObject **ob_item;/* ob_item contains space for allocated elements. The number* currently in use is ob_size.* Invariants:* 0 < ob_siz…

Matlab论文插图绘制模板第85期—模值赋色的箭头图

在之前的文章中&#xff0c;分享了Matlab箭头图的绘制模板&#xff1a; 进一步&#xff0c;如果我们想对每一个箭头赋上颜色&#xff0c;以更加直观地表示其模值的大小&#xff0c;该怎么操作呢&#xff1f; 那么&#xff0c;来看一下模值赋色的箭头图的绘制模板。 先来看一下…

老胡的周刊(第086期)

老胡的信息周刊[1]&#xff0c;记录这周我看到的有价值的信息&#xff0c;主要针对计算机领域&#xff0c;内容主题极大程度被我个人喜好主导。这个项目核心目的在于记录让自己有印象的信息做一个留存以及共享。&#x1f3af; 项目MochiDiffusion[2]在 MacOS 上运行原生的 Stab…

游戏解密之常见网络游戏同步方式分析

一、为什么需要有同步呢&#xff1f; 同步机制是用来维护游戏的一致性&#xff0c;通俗的说就是虚拟世界中的事实&#xff1b;比如在CF中&#xff0c;大家的PING都很高&#xff0c;A和B两个玩家同时发现了对方&#xff0c;并向对方开火&#xff0c;如果没有很好的同步机制&…

【学习笔记】滑动窗口

acwing.滑动窗口https://www.acwing.com/problem/content/156/ 给定一个大小为 n≤106≤106 的数组。 有一个大小为 k 的滑动窗口&#xff0c;它从数组的最左边移动到最右边。 你只能在窗口中看到 k 个数字。 每次滑动窗口向右移动一个位置。 以下是一个例子&#xff1a; …

【博学谷学习记录】超强总结,用心分享 | 架构师 MySql扩容学习总结

文章目录1. 停机方案2.停写方案3.日志方案4.双写方案&#xff08;中小型数据&#xff09;5.平滑2N方案&#xff08;大数据量&#xff09;1. 停机方案 发布公告 为了进行数据的重新拆分&#xff0c;在停止服务之前&#xff0c;我们需要提前通知用户&#xff0c;比如&#xff1a…

他98年的,我真的玩不过他...

现在的小年轻真的卷得过分了。前段时间我们公司来了个98年的&#xff0c;工作没两年&#xff0c;跳槽到我们公司起薪18K&#xff0c;都快接近我了。后来才知道人家是个卷王&#xff0c;从早干到晚就差搬张床到工位睡觉了。 最近和他聊了一次天&#xff0c;原来这位小老弟家里条…

MySQL 分布式数据库实现:无需修改代码,轻松实现分布式能力

这个项目做什么 ShardingSphere-Proxy&#xff0c;可以让用户像使用原生数据库一样使用 Apache ShardingSphere。 了解一项技术的开始&#xff0c;一般从官网开始。先来看一看官网对 ShardingSphere-Proxy 的定义是什么样的&#xff1a; 定位为透明化的数据库代理端&#xff…

springboot学习2

一、spring boot自动装配原理 pom.xml spring-boot-dependencies 核心依赖在父工程中 在写或者引入一些spring boot依赖的时候&#xff0c;不需要指定版本&#xff0c;因为有这些版本仓库启动器 <dependency><groupId>org.springframework.boot</groupId>&…

会画画的海龟,Python Turtle库详解(27)

小朋友们好&#xff0c;大朋友们好&#xff01; 我是猫妹&#xff0c;一名爱上Python编程的小学生。 欢迎和猫妹一起&#xff0c;趣味学Python。 今日主题 介绍下Python的turtle库&#xff0c;这是一个可以画画的库&#xff0c;非常适合小孩子在屏幕上画画。 先学习基础知…

第08章_面向对象编程(高级)

第08章_面向对象编程(高级) 讲师&#xff1a;尚硅谷-宋红康&#xff08;江湖人称&#xff1a;康师傅&#xff09; 官网&#xff1a;http://www.atguigu.com 本章专题与脉络 1. 关键字&#xff1a;static 回顾类中的实例变量&#xff08;即非static的成员变量&#xff09; c…

虚拟化技术:实现资源高效利用和灵活管理的利器

虚拟化技术是一种通过软件或硬件手段&#xff0c;将物理资源抽象化&#xff0c;从而创建虚拟资源的技术。这种技术可以应用于计算、存储、网络等领域&#xff0c;通过将物理资源划分为多个虚拟资源&#xff0c;使得多个应用程序或用户可以共享同一组物理资源&#xff0c;从而提…

Linux 进程管理之四大名捕

一、四大名捕 四大名捕&#xff0c;最初出现于温瑞安创作的武侠小说&#xff0c;是朝廷中正义力量诸葛小花的四大徒弟&#xff0c;四人各怀绝技&#xff0c;分别是轻功暗器高手 “无情”、内功卓越的高手“铁手”、腿功惊人的“追命” 和剑法一流的“冷血”。 本文四大名捕由…

关于电商商品数据API接口列表,你想知道的(详情页、Sku信息、商品描述、评论问答列表)

目录 一、商品数据API接口列表 二、商品详情数据API调用代码item_get 三、获取sku详细信息item_sku 四、获得淘宝商品评论item_review 五、数据说明文档 进入 一、商品数据API接口列表 二、商品详情数据API调用代码item_get <?php// 请求示例 url 默认请求参数已经URL…