istio 认证:对等身份认证+服务请求认证

istio 中有两种不同的身份认证方式:

  1. 基于 mTLS 的对等身份认证 PeerAuthentication
  2. 基于 JWT(JSON Web Token)令牌的服务请求认证 RequestAuthentication

对等身份认证 PeerAuthentication

概念

  • 提供服务到服务的认证
  • 服务网格的主要场景就是服务到服务的认证
  • 基于双向 TLS 实现对等身份认证

证书获取流程

在这里插入图片描述

  1. Envoy 向 pilot-agent 发起一个 SDS (Secret Discovery Service) 请求,要求获取自己的证书和私钥
  2. Pilot-agent 生成私钥和 CSR(Certificates Signing Request,证书签名请求),向 Istiod 发送证书签发请求,请求中包含 CSR 和该 pod 中服务的身份信息
  3. Istiod 根据请求中服务的身份信息(Service Account)为其签发证书,将证书返回给 Pilot-agent
  4. Pilot-agent 将证书和私钥通过 SDS 接口返回给 Envoy

配置定义

apiVersion: security.istio.io/v1beta1
kind: PeerAuthentication
metadata:
  name: test
  namespace: test
spec:
  selector:
    matchLabels:
      app: test
  mtls:
    mode: STRICT
  portLevelMtls:
    3001:
      mode: STRICT

  • selector 选择器

    • istio 通过 selector 选择认证策略作用的负载
    • selector 可以为空,表示该认证策略配置给指定命名空间或服务网格全局
    selector:
      matchLabels:
        app: test
    
  • mtls 认证配置
    PeerAuthentication 核心配置,定义双向认证的模式,支持以下三种模式:

    • STRICT:典型用法,只接收双向 TLS 的流量
    • PERMISSIVE(istio 默认策略):既可以接收双向 TLS 流量,也可以接收飞加密流量
    • DISABLE:禁用双向 TLS
    • UNSET:继承上一级范围内配置的模式
    mtls:
      mode: STRICT
    
  • portLevelMtls
    给负载的端口配置认证策略(一个负载有多个端口,可以灵活配置端口粒度的认证策略)

    protLevelMtls:
      3001:
        mode: STRICT
    

作用范围

istio 中可以定义多种范围的认证策略,分别是全服务网格范围、命名空间范围、工作负载范围,默认全服务网格范围和命名空间范围的认证策略只能配置一个,如果多个则以最早定义的策略为准(工作负载同上)

  • 服务网格统一认证策略
    根命名空间:istio-system,selector 为空
    apiVersion: security.istio.io/v1beta1
    kind: PeerAuthentication
    metadata:
      name: mesh_tls
      namespace: istio-system
    spec:
      mtls:
        mode: STRICT
    
  • 命名空间统一认证策略
    指定命名空间:test,selector
    apiVersion: security.istio.io/v1beta1
    kind: PeerAuthentication
    metadata:
      name: test_tls
      namespace: test
    spec:
      mtls:
        mode: STRICT
    
  • 负载粒度认证策略
    apiVersion: security.istio.io/v1beta1
    kind: PeerAuthentication
    metadata:
      name: test_tls
      namespace: test
    spec:
      selector:
        matchLabels:
          app: test
      mtls:
        mode: STRICT
    
  • 多粒度认证策略叠加
    对于一个工作负载同时只有一个认证策略生效,如果存在多个生效的策略,则优先级为:负载范围 > 命名空间范围 > 全服务网格范围
    举例:如果要使大多数负载启用双向 TLS,个别禁用双向 TLS,可以使用如下的多粒度叠加策略
    以下两个策略,第一个表示 test 命名空间所有负载启用双向 TLS,第二个表示 label 为 enable 的负载禁用双向 TLS。不用一个一个为需要双向 TLS 的负载添加认证策略
    apiVersion: security.istio.io/v1beta1
    kind: PeerAuthentication
    metadata:
      name: enable_tls
      namespace: test
    spec:
      mtls:
        mode: STRICT
    ---
    apiVersion: security.istio.io/v1beta1
    kind: PeerAuthentication
    metadata:
      name: disable_tls
      namespace: test
    spec:
      selector:
        matchLabels:
          app: enable
      mtls:
        mode: STRICT
    
  • 端口粒度认证策略
    以下示例表示只在3001端口定义 STRICT 模式
    apiVersion: security.istio.io/v1beta1
    kind: PeerAuthentication
    metadata:
      name: port_tls
      namespace: test
    spec:
      selector:
        matchLabel:
          app: port
      protLevelMtls:
        3001:
          mode: STRICT
    

服务请求认证 RequestAuthentication

  • 提供对最终用户的认证,用于认证请求的最终用户或者设备
  • 在 istio 中一般通过 JWT 方式实现请求级别的验证

istio JWT 的认证流程

在这里插入图片描述

  1. 客户端连接授权/认证服务,提供账号密码
  2. 服务端验证账号密码,生成 JWT 令牌,使用私钥签名,向客户端返回生成的 JWT 令牌

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

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

相关文章

循环神经网络中的梯度消失或梯度爆炸问题产生原因分析

循环神经网络中,通过时间反向传播(backpropagation through time,BPTT)实际上是循环神经网络中反向传播技术的一个特定应用。 (1)它要求我们将循环神经网络的计算图以此展开一个时间步,以获得模…

Redis BitMap(位图)

这里是小咸鱼的技术窝(CSDN板块),我又开卷了 之前经手的项目运行了10多年,基于重构,里面有要实现一些诸如签到的需求,以及日历图的展示,可以用将签到信息存到传统的关系型数据库(MyS…

BBS项目--登录

BBS阶段性测试总要求 django登录报错 Error: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试。 原因分析:出现这种情况在Windows中很常见,就是端口被占用 解决措施:这时我们只需改一下端口便可以了 登录前端页面(HTML…

网络技术基础与计算思维实验教程_3.2_无线局域网与以太网互连实验

实验内容 实验目的 实验原理 实验步骤 打开上一个实验的文件 切换到物理工作区 导航到城市家园 放置一台交换机 和两台台式机 直通线连接 把AP0链接到交换机的端口3上 切换回逻辑工作区 选择DHCP自动获取网络信息 PC1同样 然后 验证通信过程 laptop0和PC0 laptop1和PC1 验…

AcWing算法进阶课-1.1.2Dinic/ISAP求最大流

算法进阶课整理 CSDN个人主页:更好的阅读体验 原题链接 题目描述 给定一个包含 n n n 个点 m m m 条边的有向图,并给定每条边的容量,边的容量非负。 图中可能存在重边和自环。求从点 S S S 到点 T T T 的最大流。 输入格式 第一行包…

CentOS6.10 卸载MySQL8.0.34升级至8.0.35

准备要更新的MySQL安装包,下载地址:MySQL :: Download MySQL Community Server 查看当前MySQL版本 备份数据库 mysqldump -uroot -p -B > /opt/backup/20231220_mysql.sql 检查备份文件 查看所有服务项: service --status-all 可以看到我们注册的MySQL服务是mysqld 停止…

2023年中国数据智能管理峰会(DAMS上海站2023)-核心PPT资料下载

一、峰会简介 数据已经成为企业的核心竞争力!谁掌控数据、更好的利用数据、实现资产化,谁就会真正率先进入大数据时代。 1、数据智能管理趋势和挑战 在峰会上,与会者讨论了数据智能管理的最新趋势和挑战。随着数据量的不断增加&#xff0c…

FMCW雷达仿真:基于L形阵列4D点云获取

摘要:本期内容为3D点云目标获取的延续工作,在距离、速度、方位角估计的基础上,通过设计L型阵列结构,进一步实现目标俯仰角的估计,最终实现目标4-D点云的获取。首先,通过中频信号建立仿真信号模型&#xff0…

【Chrome】ERR_SSL_PROTOCOL_ERROR问题

文章目录 前言一、下载二、使用步骤总结 前言 Edge升级最新版后,有的https访问不了,报如下错误 发现新版Chrome以及Chromium内核访问nginx ssl时报错,顺着这个思路接着查看到大佬的结论:服务器nginx使用的openssl版本过低&#…

MyBatis关联查询(一、一对一查询)

MyBatis关联查询(一、一对一查询) 需求:查询账户信息,关联查询用户信息。 分析:因为一个账户信息只能供某个用户使用,所以从查询账户信息出发关联查询用户信息为一对一查询。 在第一个mybatis项目并读取数…

【网络编程】poll和epoll服务器的设计

文章目录 前言一、poll二、epoll 1.epoll初识2.epoll服务器的设计3.epoll的工作原理4.epoll的优点5.epoll的工作模式总结 前言 poll和select一样,也是一种linux中的多路转接的方案。而poll解决了select的两个问题: 1.select的文件描述符有上限的问题。…

[计网02] 数据链路层 笔记 总结 详解

目录 数据链路层概述 主要功能 封装成帧 透明传输 差错检测 冗余码 差错控制 检错编码 纠错编码 奇偶效验法 CRC循环冗余码 静态分配信道 频分多路复用FDM 时分多路复用TDM 波分多路复用WDM 码分多路复用CDM 随机访问介质的访问控制 ALOHA CSMA CSMA/CD CSMA/…

Weblogic Server工具WLST的使用

1.Weblogic脚本工具WLST介绍 可以用命令行来操作 Weblogic scripting tools 2.Weblogic WLST三种工作模式 2.1 wlst.sh tips:weblogic的T3 协议与HTTP/HTTPS 协议 操作如下:wlst在 common目录下 weblogic14c/wlserver/common/bin/ [weblogicfysedu32 weblogic]$…

【hadoop】解决浏览器不能访问Hadoop的50070、8088等端口?!

【hadoop】解决浏览器不能访问Hadoop的50070、8088等端口?!😎 前言🙌【hadoop】解决浏览器不能访问Hadoop的50070、8088等端口?!查看自己的配置文件:最终成功访问如图所示: 总结撒花…

C# SQLite基础工具类

目录 1、安装System.Data.SQLite工具包 2、创建数据库 3、数据库的连接与断开 4、执行一条SQL语句 5、批量执行sql语句 6、返回首行首列值 7、执行sql语句返回datatable 1、安装System.Data.SQLite工具包 2、创建数据库 /// <summary> /// 数据库路径 …

深度学习模型压缩方法:知识蒸馏方法总结

本文将介绍深度学习模型压缩方法中的知识蒸馏,内容从知识蒸馏简介、知识的种类、蒸馏机制、师生网络结构、蒸馏算法以及蒸馏方法等六部部分展开。 一、知识蒸馏简介 知识蒸馏是指用教师模型来指导学生模型训练,通过蒸馏的方式让学生模型学习到教师模型的知识。在模型压缩中,…

在RT-Thread中使用SystemView进行调试分析

一、SystemView SystemView is a toolkit for visual analysis of any embedded system. SystemView gives complete insight into an application, to gain a deep understanding of the runtime behavior, going far beyond what a debugger is offering. This is particula…

VUE实现购物商城网站前端源码

文章目录 1.设计来源1.1 登录注册页面1.2 主界面1.3 列表界面1.4 详细界面1.5 购物车界面 2.源码2.1源码目录结构2.2源码下载 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43151418/article/details/135054910 VUE实现购物商城网站前端源码&…

thinkphp的生命周期

1.入口文件 index.php 用户通过入口文件&#xff0c;发起服务请求&#xff0c;是整个应用的入口与七点 定义常量&#xff0c;加载引导文件&#xff0c;不要放任何业务处理代码 2.引导文件 start.php; 加载常量->加载环境变量->注册自动加载->注册错误与异常->加…

在modelsim中查看断言

方法一&#xff1a;单纯的modelsim环境 &#xff08;1&#xff09;编译verilog代码时按照system verilog进行编译 vlog -sv abc.v 或者使用通配符编译所有的.v或者.sv文件 &#xff08; vlog -sv *.sv *.v&#xff09; &#xff08;2&#xff09;仿真命令加一个-assert…