在Istio中,双向TLS是传输身份验证的完整堆栈解决方案,它为每个服务提供可跨集群的强大身份、保护服务到服务通信和最终用户到服务通信,以及提供密钥管理系统。本文阐述如何在不中断通信的情况下,把现存Istio服务的流量从明文升级为双向TLS。

使用场景

在部署了Istio的集群中,使用人员刚开始可能更关注功能性,服务之间的通信配置的都是明文传输,当功能逐渐完善,开始关注安全性,部署有sidecar的服务需要使用双向TLS进行安全传输,但服务不能中断,这时,一个可取的方式就是进行双向TLS的迁移。

下面通过实例演示如何进行双向TLS的迁移。

环境准备

• 已经部署好Istio的集群,没有启用双向TLS

• 创建三个命名空间,分别是 foo、bar 以及 legacy

• 在 foo、bar 中分别部署注入 Istio sidecar 的 httpbin 以及 sleep 应用,在legacy中部署未注入sidecar的sleep应用

检查部署情况

可以看到,从任意一个命名空间选一个sleep应用,发送http请求到httpbin.foo,都能请求成功。这个时候,使用的是明文传输。

检查系统中的认证策略和目标规则:

可以看到,系统中在foo、bar 以及 legacy命名空间下没有认证策略和目标规则。

下面开始通过配置服务端和客户端来升级传输过程:

1. 配置服务器

向服务端注入以下策略:

上图策略中,模式为PERMISSIVE,这个模式让服务器能够同时接收明文和双向TLS流量,具体使用哪种方式由实际配置决定。再次验证网络通信,可以看到所有请求都成功,目前使用的还是明文的方式。

2. 配置客户端

通过设置下图所示DestinationRule,为服务端添加目的地规则:

这些规则生效后,客户端sleep.foo 和 sleep.bar 就会开始使用双向 TLS 和 httpbin.foo 进行通信了,而sleep.legacy因为没有注入sidecar,因此不受DestinationRule 配置影响,还是使用明文来和httpbin.foo通信。

通过发送请求验证上述分析,可以看到三个应用都访问成功:

3. 锁定使用双向TLS(可选)

通过上述方式,可以把不同的客户端和服务端之间流量都迁移到双向TLS。当系统中的流量都迁移完毕,并且希望所有应用之间都通过双向TLS进行安全传输,我们可以将应用间的传输锁定为双向TLS。具体操作方式如下:将配置的认证策略mtls的模式修改为STRICT,这样,服务端就只运行使用双向TLS这一种方式接收流量。

锁定之后,再发送请求验证通信,可以看到,sleep.legacy 的请求失败,这是因为sleep.legacy没有注入sidecar,无法进行双向TLS传输。

总结:通过上述演示,可以了解到,将服务通信从明文流量传输迁移到双向TLS传输的过程是十分方便的,可以根据服务的实际需求按需配置,不会对服务的正常通信产生任何影响。

相关服务请访问https://support.huaweicloud.com/cce/index.html?cce_helpcenter_2019

idou老师教你学Istio 15:Istio实现双向TLS的迁移的更多相关文章

  1. idou老师教你学Istio 07: 如何用istio实现请求超时管理

    在前面的文章中,大家都已经熟悉了Istio的故障注入和流量迁移.这两个方面的功能都是Istio流量治理的一部分.今天将继续带大家了解Istio的另一项功能,关于请求超时的管理. 首先我们可以通过一个简 ...

  2. idou老师教你学Istio11 : 如何用Istio实现流量熔断

    在之前的最佳实践中,已经带大家通过一系列的实践任务领略了Istio的无穷魅力.今天,将向大家介绍如何用Istio实现流量熔断. 熔断机制是创建弹性微服务应用程序的重要模式.熔断可以帮助您自由控制故障影 ...

  3. idou老师教你学istio :基于角色的访问控制

    istio的授权功能,也称为基于角色的访问控制(RBAC),它为istio服务网格中的服务提供命名空间级别.服务级别和方法级别的访问控制.基于角色的访问控制具有简单易用.灵活和高性能等特性.本文介绍如 ...

  4. idou老师教你学Istio 17 : 通过HTTPS进行双向TLS传输

    众所周知,HTTPS是用来解决 HTTP 明文协议的缺陷,在 HTTP 的基础上加入 SSL/TLS 协议,依靠 SSL 证书来验证服务器的身份,为客户端和服务器端之间建立“SSL”通道,确保数据运输 ...

  5. idou老师教你学istio 21:基于角色的访问控制

    istio的授权功能,也称为基于角色的访问控制(RBAC),它为istio服务网格中的服务提供命名空间级别.服务级别和方法级别的访问控制.基于角色的访问控制具有简单易用.灵活和高性能等特性.本文介绍如 ...

  6. idou老师教你学istio1:如何为服务提供安全防护能力

    之前,已为大家介绍过 Istio 第一主打功能---连接服务. 凡是产生连接关系,就必定带来安全问题,人类社会如此,服务网格世界,亦是如此. 今天,我们就来谈谈Istio第二主打功能---保护服务. ...

  7. idou老师教你学Istio:如何用 Istio 实现速率限制

    使用 Istio 可以很方便地实现速率限制.本文介绍了速率限制的使用场景,使用 memquota\redisquota adapter 实现速率限制的方法,通过配置 rule 实现有条件的速率限制,以 ...

  8. idou老师教你学Istio 23 : 如何用 Istio 实现速率限制

    使用 Istio 可以很方便地实现速率限制.本文介绍了速率限制的使用场景,使用 memquota\redisquota adapter 实现速率限制的方法,通过配置 rule 实现有条件的速率限制,以 ...

  9. idou老师教你学Istio :如何用istio实现监控和日志采集

    大家都知道istio可以帮助我们实现灰度发布.流量监控.流量治理等功能.每一个功能都帮助我们在不同场景中实现不同的业务.那Istio是如何帮助我们实现监控和日志采集的呢? 这里我们依然以Bookinf ...

随机推荐

  1. 连载三:RobotFramework+Selenium+Jenkins分布式构建

    目标:Jenkins安装在服务器上,而使用Jenkins调用本机的脚本并在本机执行. 步骤: (1)需要有RobotFrameWork+Selenium的运行环境: python2.7,Robotfr ...

  2. DDS工作原理及其性能分析

    DDS工作原理及其性能分析 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 系列博客说明:此系列博客属于作者在大三大四阶段所储备的关于电子电路设计等硬件方面的 ...

  3. vue中使用axios下载文件,兼容IE11

    一.设置axios返回值为blob 二.使用a标签的down属性下载,如果是IE浏览器,可以使用navigator.msSaveBlob进行下载 // data的数据类型是blob downloadF ...

  4. talend工具整理文件并出力文件到Excel当中

    问题描述: 每天都会生成一定的txt文件,txt文件当中含有复数个个人的信息,把每个个人信息都抽出来之后放到Excel文件的一览里面. 解决思路: 1.txt文件里面的信息有多件,每一件生成一个临时的 ...

  5. C语言各数据类型大小和取值范围

  6. 报错Unsupported major.minor version 52.0的原因

    原因分析 很明显是JDK版本不一致所导致的,,我们知道Java是支持向后编译的,也就是说,在低版本(如JDK6)上编译的class文件或者jar文件可以在高版本上(如JDK8)上编译通过,但这并不意味 ...

  7. solr8.0创建core,报Can't find resource 'solrconfig.xml

    出现这个问题,主要是因为没有找到对应的配置文件, 只需要将solr_home\configsets\_default\conf下的配置文件,拷贝到自己新建的core文件夹下即可解决问题!

  8. Tomcat部署WEB应用方式

    罗列在Tomcat部署web应用的几种方法,供以后翻阅,本博文以helloapp应用为例 Tomcat目录介绍 简单目录介绍如下 bin目录:包含tomcat启动/关闭等脚本,支持linux.wind ...

  9. yum源出问题,rpmdb: BDB0113 Thread/process 17276/140338032428864 failed: BDB1507 Thread died in Berkeley DB library

    yum源出问题 cd /var/lib/rpm rm -f *db.* rpm --rebuilddb 重构了之后就可以用了

  10. Hadoop的eclipse的插件是怎么安装的?

    [学习笔记] 1)网上下载hadoop-eclipse-plugin-2.7.4.jar,将该jar包拷贝到Eclipse安装目录下的dropins文件夹下,我的目录是C:\Users\test\ec ...