备考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 自动双向认证实验完成

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

37.HarmonyOS鸿蒙系统 App(ArkUI) 创建第一个应用程序hello world

HarmonyOS App(ArkUI) 创建第一个应用程序helloworld 线性布局 1.鸿蒙应用程序开发app_hap开发环境搭建 3.DevEco Studio安装鸿蒙手机app本地模拟器 打开DevEco Studio,点击文件-》新建 双击打开index.ets 复制如下代码&#xff1a; import FaultLogger from ohos.faultL…

大数据分析与内存计算——Spark安装以及Hadoop操作——注意事项

一、Spark安装 1.相关链接 https://dblab.xmu.edu.cn/blog/4322/ 2.安装Spark&#xff08;Local模式&#xff09; 按照文章中的步骤安装即可 遇到问题&#xff1a;xshell以及xftp不能使用 解决办法&#xff1a; 在linux使用镜像网站进行下载&#xff1a;wget https://mi…

uniapp-打包app-图标配置

依次找到manifest->App图标配置&#xff0c;然后点击浏览&#xff0c;从本地文件夹中选择你们项目的logo&#xff0c;然后点击自动生成所有图标并替换&#xff0c;即可&#xff1a;

微信小程序自定义弹窗组件

业务背景&#xff1a;弹窗有时字体较多&#xff0c;超过7个字&#xff0c;不适用wx.showToast. 组件代码 <view class"toast-box {{isShow? show:}}" animation"{{animationData}}"><view class"toast-content" ><view class&q…

【工具分享】一键抠图,很不错

在吾爱破解找到大神做的抠图工具&#xff0c;觉得很好分享出来 1、工具应解压&#xff0c;不可有中文路径 2、完整解压后&#xff0c;运行main.exe。将单个/多个图片拖入工具&#xff0c;等待提示完成后&#xff0c;在运行目录下的out目录内可找到扣好的图片。 3、如果需要al…

iOS开发进阶(十四):xcodebuild 命令应用详解

文章目录 一、前言二、xcodebuild 命令汇总三、xcodebuild 可选命令四、exportOptionsPlist文件内容配置说明五、项目实操六、拓展阅读 一、前言 关于iOS组包&#xff0c;详参博文《ReactNative进阶&#xff08;三十四&#xff09;&#xff1a;Jenkins 流水线 组包 iOS 应用包…

3D模型格式转换工具HOOPS Exchange如何将3D文件加载到PRC数据结构中?

HOOPS Exchange是一款高效的数据访问工具&#xff0c;专为开发人员设计&#xff0c;用于在不同的CAD&#xff08;计算机辅助设计&#xff09;系统之间进行高保真的数据转换和交换。由Tech Soft 3D公司开发&#xff0c;它支持广泛的CAD文件格式&#xff0c;包括但不限于AutoCAD的…

Java设计之道:色即是空,空即是色

0.引子 我们的这个世界上&#xff0c;存在这么一种东西&#xff1a; 第一&#xff1a;它不占据任何3D之体积&#xff0c;即它没有Volume第二&#xff1a;它也不占据任何2D之面积&#xff0c;即它没有Area第三&#xff1a;它也不占据任何1D之长度&#xff0c;即它没有Length 总…

01-​JVM学习记录-类加载器

一、类加载器子系统 1. 作用-运输工具&#xff08;快递员&#xff09; 负责从文件系统或者网络中加载Class文件&#xff08;DNA元数据模板&#xff09;&#xff0c;Class文件开头有特定标识&#xff0c;魔术&#xff0c;咖啡杯壁&#xff08;class文件存于本地硬盘&#xff0c…

状态压缩DP

哈密顿路径问题&#xff1a; 一般设 表示 状态下&#xff0c;为最后一个最值情况 。 一般有两种稍微不同的写法&#xff0c;单纯就是写法不同&#xff0c;思路方法都相同。 第一个例题为第一种转移方法&#xff0c;有当前转移后面。 后面的都是由前面转移目前。 G. Shuff…

App测试中ios和Android的区别

1、Android长按home键呼出应用列表和切换应用&#xff0c;然后右滑则终止应用&#xff1b; 2、多分辨率测试&#xff0c;Android端20多种&#xff0c;ios较少&#xff1b; 3、手机操作系统&#xff0c;Android较多&#xff0c;ios较少且不能降级&#xff0c;只能单向升级&…

vscode shadertoy插件,非常方便的glsl着色器编写工具

很著名的shadertoy网站&#xff0c;集合了非常多大神利用数学写出美妙的shader效果。像shadertoy创始人之一的IQ大神它在这方面有很多的建树。他的利用光线步进和躁声可以创建很多不可思议的3D场景。 vscode有一件shadertoy的插件&#xff0c;安装后可以新建一个*.glsl文件&am…

unity shader学习练笔日记(一)

1、简单顶点/片元着色器 Shader "Unity Shaders Study/Day One/Simple Shader" {Properties{//声明一个Color类型的属性_Color ("Color Tint", Color) (1.0, 1.0, 1.0, 1.0)}SubShader{Pass{CGPROGRAM#pragma vertex vert#pragma fragment frag//在CG代码…

聚观早报 | 蔚来推出油车置换补贴;iPhone 16 Pro细节曝光

聚观早报每日整理最值得关注的行业重点事件&#xff0c;帮助大家及时了解最新行业动态&#xff0c;每日读报&#xff0c;就读聚观365资讯简报。 整理丨Cutie 4月02日消息 蔚来推出油车置换补贴 iPhone 16 Pro细节曝光 小米SU7创始版第二轮追加开售 OpenAI将在日本设立办事…

二百二十九、离线数仓——离线数仓Hive从Kafka、MySQL到ClickHouse的完整开发流程

一、目的 为了整理离线数仓开发的全流程&#xff0c;算是温故知新吧 离线数仓的数据源是Kafka和MySQL数据库&#xff0c;Kafka存业务数据&#xff0c;MySQL存维度数据 采集工具是Kettle和Flume&#xff0c;Flume采集Kafka数据&#xff0c;Kettle采集MySQL数据 离线数仓是Hi…

分布式任务调度框架XXL-JOB

1、概述 XXL-JOB是一个分布式任务调度平台&#xff0c;其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线&#xff0c;开箱即用。 官方文档&#xff1a;https://www.xuxueli.com/xxl-job/#%E4%BA%8C%E3%80%81%E5%BF%AB%E9%80%9F%E…

ENSP DHCP 配置不同网段

配置不同网段。 配置&#xff1a;192.168.80.254 192.168.10.254 192.168.20.254 给绑定信息选择网卡&#xff0c;出端口编号改为2&#xff0c;勾选双向通道&#xff0c;点击增加。 接下来把vmnet 1和vmnet 2 都按上图所示。 打开路由器&#xff0c;就开始配置。

文本自动粘贴编辑器:支持自动粘贴并筛选手机号码,让信息处理更轻松

在信息时代的浪潮中&#xff0c;文本处理已成为我们日常工作与生活的重要组成部分。无论是商务沟通、社交互动还是个人事务处理&#xff0c;手机号码的筛选与粘贴都显得尤为关键。然而&#xff0c;传统的文本处理方式效率低下、易出错&#xff0c;已无法满足现代人的高效需求。…

MegaSeg Pro for Mac v6.3.1 注册激活版 音视频DJ混音工具

MegaSeg Pro for Mac是一款专业的DJ和广播自动化软件&#xff0c;旨在为音乐专业人士提供强大的音乐播放和演播功能。这款软件具有多种功能&#xff0c;包括强大的音乐库管理&#xff0c;支持导入和组织大量音乐文件&#xff0c;可以轻松管理你的音乐收藏。它支持广泛的音频格式…

将excel数据拆分成多个excel文件

一、背景&#xff1a; 平时在日常工作中&#xff0c;经常需要将excel的文件数据进行拆分&#xff0c;拆分成多个excel文件&#xff0c;然而用人工来处理这个既耗时&#xff0c;又费精力&#xff0c;眼睛会疲劳&#xff0c;时间长了操作上会出现失误&#xff0c;导致数据拆分错…