当前位置: 首页 > news >正文

备考ICA----Istio实验15---开启 mTLS 自动双向认证实验

备考ICA----Istio实验15—开启mTLS自动双向认证实验

在某些生成环境下,我们希望微服务和微服务之间使用加密通讯方式来确保不被中间人代理.
默认情况下Istio 使用 PERMISSIVE模式配置目标工作负载,PERMISSIVE模式时,服务可以使用明文通讯.为了只允许双向 TLS 流量,需要将配置更改为 STRICT 模式。

1. 环境准备

kubectl create ns kim
kubectl create ns trump
kubectl create ns baiden

为3个命名空间创建服务
其中trump和baiden2个命名空间是有Istio sidecar注入的

kubectl apply -f <(istioctl kube-inject -f istio/samples/httpbin/httpbin.yaml) -n trump
kubectl apply -f <(istioctl kube-inject -f istio/samples/httpbin/httpbin.yaml) -n baiden
kubectl apply -f <(istioctl kube-inject -f istio/samples/sleep/sleep.yaml) -n trump
kubectl apply -f <(istioctl kube-inject -f istio/samples/sleep/sleep.yaml) -n baiden

kim命名空间中的pod是没有Istio注入的

kubectl apply -f istio/samples/httpbin/httpbin.yaml -n kim
kubectl apply -f istio/samples/sleep/sleep.yaml -n kim

确认容器的sidecar注入情况

kubectl get pods -A -l app=httpbin
kubectl get pods -A -l app=sleep

在这里插入图片描述

访问测试

for from in trump baiden kim;do \for to in trump baiden kim;do \kubectl exec deploy/sleep -n ${from} \-- curl http://httpbin.${to}:8000/ip -s -o /dev/null \-w "${from}.sleep to ${to}.httpbin: %{http_code}\n";\done;\
done

可以看到由于现在没对访问实时mtls所有所有访问都是成功的.
在这里插入图片描述

2. 所有命名空间mtls

对全局做mtls限制.
mtls/strict.yaml

apiVersion: security.istio.io/v1beta1
kind: PeerAuthentication
metadata:name: defaultnamespace: "istio-system"
spec:mtls:mode: STRICT

生效配置

kubectl apply -f mtls/strict.yaml 

访问测试

for from in trump baiden kim;do \for to in trump baiden kim;do \kubectl exec deploy/sleep -n ${from} \-- curl http://httpbin.${to}:8000/ip -s -o /dev/null \-w "${from}.sleep to ${to}.httpbin: %{http_code}\n";\done;\
done

可以看到做了mtls后,对trump和baiden两个由Istio管控的可以互相访问,并可以访问没有被管理的kim空间.
但没有被Istio管理的kim空间是无法访问由Istio管理的trump和baiden中的httpbin服务.

在这里插入图片描述
清理全局全局认证策略,为下一个实验做准备

kubectl delete pa -n istio-system default 

在这里插入图片描述

3. 命名空间级别mtls

仅对trump命名看空间进行mtls验证
trump.yaml

apiVersion: security.istio.io/v1beta1
kind: PeerAuthentication
metadata:name: defaultnamespace: trump
spec:mtls:mode: STRICT

部署生效

kubectl apply -f trump.yaml 

在这里插入图片描述
测试访问

for from in trump baiden kim;do \for to in trump baiden kim;do \kubectl exec deploy/sleep -n ${from} \-- curl http://httpbin.${to}:8000/ip -s -o /dev/null \-w "${from}.sleep to ${to}.httpbin: %{http_code}\n";\done;\
done

测试下来由于trump对mtls进行了限制,因为trump和baiden都是由Istio进行管理,trump的sleep和baiden的httpbin访问trump的httpbin都是正常.
kim是非Istio管理,当kim.sleep访问trump的httpbin时因为没有mtls被拒绝
在这里插入图片描述
恢复配置

kubectl delete pa -n trump default 

在这里插入图片描述

4. Label Selector级别mtls限制

仅对baiden的httpbin进行mtls限制
mtls/labelselector.yaml

apiVersion: security.istio.io/v1beta1
kind: PeerAuthentication
metadata:name: httpbinnamespace: "baiden"
spec:selector:matchLabels:app: httpbinmtls:mode: STRICT

应用配置

kubectl apply -f mtls/labelselector.yaml
kubectl get pa -n baiden

在这里插入图片描述
访问测试

for from in trump baiden kim;do \for to in trump baiden kim;do \kubectl exec deploy/sleep -n ${from} \-- curl http://httpbin.${to}:8000/ip -s -o /dev/null \-w "${from}.sleep to ${to}.httpbin: %{http_code}\n";\done;\
done

此时:
trump因为是受Istio管理,访问baiden的httpbin时带有证书,访问被允许
baiden因为是受Istio管理,访问baiden的httpbin时带有证书,访问被允许
kim因为不受Istio管理,访问baiden的httpbin时未带有证书,访问被拒绝

在这里插入图片描述
清除配置

kubectl delete pa -n baiden httpbin 

在这里插入图片描述

5. 端口级别mtls

使用portLevelMtls参数来实现端口级别的mtls限制.即除了8080端口,都使用mtls
mtls/prot.yaml

apiVersion: security.istio.io/v1beta1
kind: PeerAuthentication
metadata:name: httpbinnamespace: "baiden"
spec:selector:matchLabels:app: httpbinmtls:mode: STRICTportLevelMtls:8080:mode: DISABLE

部署生效

kubectl apply -f mtls/prot.yaml

访问测试

for from in trump baiden kim;do \for to in trump baiden kim;do \kubectl exec deploy/sleep -n ${from} \-- curl http://httpbin.${to}:8000/ip -s -o /dev/null \-w "${from}.sleep to ${to}.httpbin: %{http_code}\n";\done;\
done

此时由于排除的是8080端口,我们访问的是80端口,所以80端口是受mtls管理的:
trump因为是受Istio管理,访问baiden的httpbin时带有证书,访问被允许
baiden因为是受Istio管理,访问baiden的httpbin时带有证书,访问被允许
kim因为不受Istio管理,访问baiden的httpbin时未带有证书,访问被拒绝
在这里插入图片描述

6. 策略优先级

开启namespace级别的mtls

kubectl apply -f mtls/trump.yaml 

在这里插入图片描述
当端口级别的mtls和命名空间级别的发生了冲突时,以更细的规则为准
mtls/trumplabels.yaml

apiVersion: security.istio.io/v1beta1
kind: PeerAuthentication
metadata:name: trumphttpbinnamespace: trump
spec:selector:matchLabels:app: httpbinmtls:mode: DISABLE

生效配置

kubectl apply -f mtls/labelselector.yaml

在这里插入图片描述

访问测试

for from in trump baiden kim;do \for to in trump baiden kim;do \kubectl exec deploy/sleep -n ${from} \-- curl http://httpbin.${to}:8000/ip -s -o /dev/null \-w "${from}.sleep to ${to}.httpbin: %{http_code}\n";\done;\
done

因为trump服务级别的httpbin DISABLE生效,所以kim访问trump的httpbin被允许
在这里插入图片描述
至此备考ICA----Istio实验15—开启 mTLS 自动双向认证实验完成

相关文章:

备考ICA----Istio实验15---开启 mTLS 自动双向认证实验

备考ICA----Istio实验15—开启mTLS自动双向认证实验 在某些生成环境下,我们希望微服务和微服务之间使用加密通讯方式来确保不被中间人代理. 默认情况下Istio 使用 PERMISSIVE模式配置目标工作负载,PERMISSIVE模式时,服务可以使用明文通讯.为了只允许双向 TLS 流量&#xff0c;…...

Hive SchemaTool 命令详解

Hive schematool 是 hive 自带的管理 schema 的相关工具。 列出详细说明 schematool -help直接输入 schematool 或者schematool -help 输出结果如下&#xff1a; usage: schemaTool-alterCatalog <arg> Alter a catalog, requires--catalogLocation an…...

51单片机入门_江协科技_17~18_OB记录的笔记

17. 定时器 17.1. 定时器介绍&#xff1a;51单片机的定时器属于单片机的内部资源&#xff0c;其电路的连接和运转均在单片机内部完成&#xff0c;无需占用CPU外围IO接口&#xff1b; 定时器作用&#xff1a; &#xff08;1&#xff09;用于计时系统&#xff0c;可实现软件计时&…...

xss.pwnfunction-Ah That‘s Hawt

<svg/onloadalert%26%2340%3B1%26%2341%3B> <svg/>是一个自闭合形式 &#xff0c;当页面或元素加载完成时&#xff0c;onload 事件会被触发&#xff0c;从而可以执行相应的 JavaScript 函数...

Python学习从0开始——005数据结构

Python学习从0开始——005数据结构 一、列表list二、元组和序列三、集合四、字典五、循环技巧六、条件控制七、序列和其它类型的比较 一、列表list 不是所有数据都可以排序或比较。例如&#xff0c;[None, ‘hello’, 10] 就不可排序&#xff0c;因为整数不能与字符串对比&…...

力扣每日一题:LCR112--矩阵中的最长递增路径

题目 给定一个 m x n 整数矩阵 matrix &#xff0c;找出其中 最长递增路径 的长度。 对于每个单元格&#xff0c;你可以往上&#xff0c;下&#xff0c;左&#xff0c;右四个方向移动。 不能 在 对角线 方向上移动或移动到 边界外&#xff08;即不允许环绕&#xff09;。 示例…...

树莓派部署yolov5实现目标检测(ubuntu22.04.3)

最近两天搞了一下树莓派部署yolov5&#xff0c;有点难搞&#xff08;这个东西有点老&#xff0c;版本冲突有些包废弃了等等&#xff09; 最后换到ubuntu系统弄了&#xff0c;下面是我的整体步骤&#xff08;建议先使能一下ssh&#xff08;最下面有&#xff09;&#xff0c;结合…...

2024 年最新使用 Wechaty 开源框架搭建部署微信机器人(微信群智能客服案例)

读取联系人信息 获取当前机器人账号全部联系人信息 bot.on(ready, async () > {console.log("机器人准备完毕&#xff01;&#xff01;&#xff01;")let contactList await bot.Contact.findAll()for (let index 0; index < contactList.length; index) {…...

Redis从入门到精通(九)Redis实战(六)基于Redis队列实现异步秒杀下单

↑↑↑请在文章开头处下载测试项目源代码↑↑↑ 文章目录 前言4.5 分布式锁-Redisson4.5.4 Redission锁重试4.5.5 WatchDog机制4.5.5 MutiLock原理 4.6 秒杀优化4.6.1 优化方案4.6.2 完成秒杀优化 4.7 Redis消息队列4.7.1 基于List实现消息队列4.7.2 基于PubSub的消息队列4.7.…...

什么是多路复用器滤波器

本章将更深入地介绍多路复用器滤波器&#xff0c;以及它们如何用于各种应用中。您将了解到多路复用器如何帮助设计人员创造出更复杂的无线产品。 了解多路复用器 多路复用器是一组射频(RF)滤波器&#xff0c;它们组合在一起&#xff0c;但不会彼此加载&#xff0c;可以在输出之…...

Severt和tomcat的使用(补充)

打包程序 在pom.xml中添加上述代码之后打包时会生成war包并且包的名称是test 默认情况打的是jar包.jar里量但是tomcat要求的是war包. war包Tomcat专属的压缩包. war里面不光有.class还有一些tomcat要求的配置文件(web.xml等)还有前端的一些代码(html, css, js) 点击其右边的m…...

JavaEE初阶——多线程(一)

T04BF &#x1f44b;专栏: 算法|JAVA|MySQL|C语言 &#x1faf5; 小比特 大梦想 此篇文章与大家分享多线程的第一部分:引入线程以及创建多线程的几种方式 此文章是建立在前一篇文章进程的基础上的 如果有不足的或者错误的请您指出! 1.认识线程 我们知道现代的cpu大多都是多核心…...

MongoDB主从复制模式基于银河麒麟V10系统

MongoDB主从复制模式基于银河麒麟V10系统 背景介绍 MongoDB自4.0版本开始已经不再建议使用传统的master/slave复制架构,而是全面采用了复制集(Replica Sets)作为标准的复制和高可用性解决方案。 复制集是MongoDB的一种数据复制和高可用性机制,通过异步同步数据至多个服务…...

Vue使用高德地图

1.在高德平台注册账号 2.我的 > 管理管理中添加Key 3.安装依赖 npm i amap/amap-jsapi-loader --save 或 yarn add amap/amap-jsapi-loader --save 4.导入 AMapLoade import AMapLoader from amap/amap-jsapi-loader; 5.直接上代码&#xff0c;做好了注释&#xff08;初始化…...

2024-04-07(复盘前端)

---HTML 1.HTMl骨架 html&#xff1a;整个网页 head&#xff1a;网页头部&#xff0c;用来存放给浏览器看的信息&#xff0c;如css body&#xff1a;网页主体&#xff0c;用来存放给用户看的信息&#xff0c;例如图片和文字 2.标题标签中h1标签只能使用一次&#xff0c;其…...

SpringCloud学习(10)-SpringCloudAlibaba-Nacos服务注册、配置中心

Spring Cloud Alibaba 参考文档 Spring Cloud Alibaba 参考文档 nacos下载Nacos 快速开始 直接进入bin包 运行cmd命令&#xff1a;startup.cmd -m standalone 运行成功后通过http://localhost:8848/nacos进入nacos可视化页面&#xff0c;账号密码默认都是nacos Nacos服务注…...

OKCC外呼中心配置的电话系统规则

OKCC外呼中心配置电话系统规则可能涉及多个方面&#xff0c;包括呼叫路由、自动化流程、电话接听策略等。以下是一般步骤及注意事项&#xff1a; 呼叫路由配置&#xff1a; 确定呼叫中心的呼叫路由策略&#xff0c;包括如何分配呼叫给不同的坐席或部门。设置呼叫路由规则&#…...

AI推介-大语言模型LLMs论文速览(arXiv方向):2024.03.31-2024.04.05

文章目录~ 1.AutoWebGLM: Bootstrap And Reinforce A Large Language Model-based Web Navigating Agent2.Training LLMs over Neurally Compressed Text3.Unveiling LLMs: The Evolution of Latent Representations in a Temporal Knowledge Graph4.Visualization-of-Thought …...

性能测试工具 ab(Apache Bench)使用详解

Apache Bench (ab) 是一个由 Apache 提供的非常流行的、简单的性能测试工具&#xff0c;用于对 HTTP 服务器进行压力测试。下面是 ab 工具的一些基本使用方法。 安装 在大多数 Unix 系统中&#xff0c;ab 通常作为 Apache HTTP 服务器的一部分预装在系统中。你可以通过在终端…...

智能网联汽车自动驾驶数据记录系统DSSAD数据元素

目录 第一章 数据元素分级 第二章 数据元素分类 第三章 数据元素基本信息表 表1 车辆及自动驾驶数据记录系统基本信息 表2 车辆状态及动态信息 表3 自动驾驶系统运行信息 表4 行车环境信息 表5 驾驶员操作及状态信息 第一章 数据元素分级 自动驾驶数据记录系统记录的数…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了&#xff0c;要么要会员、要么写的乱七八糟。这里我整理一下&#xff0c;把问题说清楚并且给出代码&#xff0c;拿去用就行&#xff0c;照着葫芦画瓢。 问题 在继承QWebEngineView后&#xff0c;重写mousePressEvent或event函数无法捕获鼠标按下事…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称&#xff1a;Apache Flink REST API 任意文件读取漏洞CVE编号&#xff1a;CVE-2020-17519CVSS评分&#xff1a;7.5影响版本&#xff1a;Apache Flink 1.11.0、1.11.1、1.11.2修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0漏洞类型&#xff1a;路径遍历&#x…...

人机融合智能 | “人智交互”跨学科新领域

本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

【笔记】WSL 中 Rust 安装与测试完整记录

#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统&#xff1a;Ubuntu 24.04 LTS (WSL2)架构&#xff1a;x86_64 (GNU/Linux)Rust 版本&#xff1a;rustc 1.87.0 (2025-05-09)Cargo 版本&#xff1a;cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...

C#学习第29天:表达式树(Expression Trees)

目录 什么是表达式树&#xff1f; 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持&#xff1a; 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...