云原生网络之微隔离

news2024/11/8 14:41:17

本博客地址: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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TP5 解决如何实现生成并导出Word文档功能

今天连续更新两篇文章,上一篇讲了一下如何生成PDF并导出文件的功能 接下来我们就来拼一拼怎么实现生成并导出word文档的功能 话不多说 我们直接上流程: 1.下载安装phpword插件:composer require phpoffice/phpword 2.安装成功后该插件在我们项…

Linux——高级I/O操作(三)

目录 I/O多路复用 异步I/O I/O多路复用 阻塞型I/O 相对于非阻塞型 I/O 来说,最大的优点就是在设备的资源不可用时,进程主动放弃 CPU,让其他的进程运行,而不用不停地轮询,有助于提高整个系统的效率。但是其缺点也是比…

Sharding-JDBC之水平分表

目录一、简介1.1、垂直分表1.2、水平分表二、maven依赖三、数据库3.1、创建数据库3.2、创建表四、配置(二选一)4.1、properties配置4.2、yml配置五、实现5.1、实体5.2、持久层5.3、服务层5.4、测试类5.4.1、保存数据5.4.2、查询数据一、简介 1.1、垂直分…

Java入坑之注解和反射

一、注解概念0 1.1基本定义 Java注解是附加在代码中的一些元信息,用于一些工具在编译、运行时进行解析和使用,起到说明、配置的功能 1。它们可以用来标记类、方法、变量、参数和包等 简而言之,注解就是对于代码中某些鲜活个体的贴上去的一张…

企业如何开发自己的小程序

小程序是一种轻量级的应用程序,被广泛用于社交娱乐、电商购物等领域。对于企业而言,开发自己的小程序可以为客户提供更加个性化的服务,提高品牌认知度和用户忠诚度。本文将介绍企业如何开发自己的小程序,并通过一个具体的案例来说…

【CSS】图片底部空白缝隙处理 ( 使用居中对齐 / 顶部对齐 / 底部对齐 | 将行内元素 / 行内块元素转为块级元素 )

文章目录一、图片底部空白缝隙问题二、图片底部空白缝隙问题解决方案一 ( 使用居中对齐 / 顶部对齐 / 底部对齐 )三、图片底部空白缝隙问题解决方案二 ( 将行内元素 / 行内块元素转为块级元素 )一、图片底部空白缝隙问题 在上一篇博客中 , 使用默认的基线对齐 , 会发现 行内块级…

java 利用正则来分析日志(IT枫斗者)

利用正则来分析日志(IT枫斗者) 环境接口的历史并发数,然而运维并没有做相关的统计,没办法,只能拿到服务器近一个月的 Nginx access 日志,根据正则匹配所有我的接口服务的日志,然后统计每一秒内…

《低代码PaaS驱动集团企业数字化创新白皮书》-平台化加低代码提供破解之道(2)

平台化加低代码提供破解之道 低代码向业务的赋能:以效率和创新为核心,提升组织效率,促进创新,优化体验 通过IDC对大型企业的调研发现,当前拥有100个及以上应用数量的企业已经高达70%;IDC预测 ,2025年&…

〖Python网络爬虫实战⑮〗- pyquery的使用

订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000python项目实战 Python编程基础教程系列(零基础小白搬砖逆袭) 说明:本专栏持续更新中,目前专栏免费订阅,在转为付费专栏前订阅本专栏的,可以免费订阅付费…

数据结构——队列(C语言实现)

队列的概念与结构 队列是一种特殊的线性结构,数据只能在一端插入,数据也只能在另一端进行删除。插入数据的那一端称之为队尾,插入数据的动作称之为入队。删除数据的那一端称之为队头,删除数据的动作称之为出列。队列遵守的是FIFO…

LeetCode 189.轮转数组

文章目录💡题目分析💡解题思路🚩思路1:暴力求解 --- 旋转k次🔔接口源码:🚩思路2:额外开数组🔔接口源码:🚩思路3:三段逆置📍算法设计🔔接口源码&am…

JavaWeb开发 —— Web入门

目录 一、Spring 二、SpringBootWeb快速入门 三、HTTP协议 1. 概述 2. 请求协议 3. 响应协议 四、Web服务器 - Tomcat 1. 介绍 2. 基本使用 3. 入门程序解析 一、Spring ① 官网:http://spring.io ② Spring 发展到今天已经形成了一种开发生态圈&…

2022 idea 从原型创建maven项目框架--以创建niif-processors为列

目录一、idea配置二、下载archetype-catalog.xml文件三、创建设置四、创建成功截图一、idea配置 在如下两张图片花圈的位置添加如下参数 -Dmaven.wagon.http.ssl.insecuretrue -Dmaven.wagon.http.ssl.allowalltrue -Dmaven.wagon.http.ssl.ignore.validity.datestrue 二、下载…

Qt Quick - 导航控件综述

Qt Quick - 导航控件综述一、概述二、StackView控件三、SwipeView控件四、TabBar控件五、TabButton控件一、概述 Qt Quick Controls提供了一系列导航模型。 控件功能Drawer可以用滑动手势打开和关闭的侧滑动面板StackView提供基于堆栈的导航模型SwipeView允许用户通过横向滑动…

面试官:谈谈你对TypeScript有什么了解

TypeScript 相关面试题1.说说你对 TypeScript 的理解?与 JavaScript 的区别是什么特性区别2.说说你对 TypeScript 中类的理解?应用场景?是什么使用方式继承修饰符私有修饰符受保护修饰符只读修饰符静态属性抽象类应用场景3.说说 typescript 的…

简单易用的公司网页模板,助您快速建站

在当今数字化时代,拥有一个高质量的公司网页是每个企业成功的关键。然而,对于那些没有技术专业知识的人来说,创建一个专业的网页可能是一项艰巨的任务。但是,现在有许多简单易用的公司网页模板可用于帮助您快速建站。 下面&#…

【CSS】文字溢出问题 ( 强制文本在一行中显示 | 隐藏文本的超出部分 | 使用省略号代替文本超出部分 )

文章目录一、文字溢出问题二、文字溢出处理方案三、代码示例一、文字溢出问题 在元素对象内部显示文字 , 如果文本过长 , 则会出现文本溢出的问题 ; 下面的示例中 , 在 150x25 像素的盒子中 , 显示 骐骥一跃,不能十步;驽马十驾,功在不舍; 一段话 , 明显…

【初识C++】(缺省参数和函数重载)

文章目录一、缺省参数1.缺省参数定义2.缺省参数分类2.1全缺省参数2.2半缺省参数二、函数重载1.函数重载概念2.构成重载的几种方式为什么会有函数重载及其原理一、缺省参数 1.缺省参数定义 缺省参数是在函数的声明中给定参数一个指定的值。 如果传参没有给定参数,那…

三百左右蓝牙耳机选哪个?300左右无线蓝牙耳机推荐

多数人消遣的方式一般是听听音乐玩玩游戏,想要更好的体验感最少不了的一定就是蓝牙耳机了,可对于大多数人来说,irpods之类的属实太贵了,所以更多人追求性价比,之前也买过不靠谱的耳机,用几天就坏了&#xf…

MySQL数据库:索引

一、索引简介 1.概念 索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引,并指定索引的类型,各类索引有各自的数据结构实现。 相当于是给数据库中的数据建立了一个目录,通过目录可以知道…