idou老师教你学istio :基于角色的访问控制
istio的授权功能,也称为基于角色的访问控制(RBAC),它为istio服务网格中的服务提供命名空间级别、服务级别和方法级别的访问控制。基于角色的访问控制具有简单易用、灵活和高性能等特性。本文介绍如何在服务网格中为服务进行授权控制。
·前置条件·
•安装istio的k8s集群,启用认证功能、双向TLS认证
•部署bookinfo示例应用
下面基于bookinfo应用实例具体介绍如何启用授权并配置访问控制策略:
1. 创建service accout,启用访问控制
我们在service account的基础上启用访问控制,为了给不同的微服务授予不同的访问权限,需要建立不同的service account,在本例中:
创建Service account: bookinfo-productpage,并用它部署 productpage;
创建 Service account:bookinfo-reviews,并用它部署 reviews(其中包含 reviews-v2 和 reviews-v3 两个版本)。
清理所有现存RBAC规则:
此时,用浏览器打开bookinfo的productpage页面,会看到:
2. 启用Istio授权
使用 RbacConfig 对象启用 Istio Authorization:
此时,bookinfo的productpage页面,会看到:
3. 设置命名空间级的访问控制
这一策略创建service-viewer 的 ServiceRole,通过constraints指定了允许访问的服务范围:
创建 ServiceRoleBinding 对象,用来把 service-viewer 角色指派给所有 istio-system 和 default 命名空间的服务:
用浏览器打开bookinfo的productpage页面,会看到完整的页面:
4. 配置服务级的访问控制
清除命名空间级的访问控制
下面在bookinfo中逐步为服务加入访问:
1) 允许到productpage服务的访问
这条策略中创建了名称为 productpage-viewer的ServiceRole,它允许到 productpage 服务的读取访问,并创建命名为 productpage-viewer的 ServiceRole,将 productpage-viewer 角色赋予给所有用户和服务
此时,用浏览器打开bookinfo的productpage页面,会显示 Error fetching product details 和 Error fetching product reviews 的错误信息:
出现上述现象是因为我们还没有给productpage授权访问details 和 reviews 服务,下面两步修复这个问题。
2) 允许对details和reviews服务的访问
details-reviews-viewer:允许对 details 和 reviews 服务进行只读访问
bind-details-review: 把 details-reviews-viewer 角色授予给productpage 服务的 Service account
3) 允许对ratings服务的访问
ratings-viewer: 允许对ratings服务的访问
rind-ratings: 将ratings-viewer角色指派给bookinfo-reviews这个Service account
此时,用浏览器打开bookinfo的productpage页面,会看到完整的页面。
总结:通过上述步骤,我们可以快捷的启用授权功能,并灵活定制访问控制策略来满足不同的安全访问需求。
idou老师教你学istio :基于角色的访问控制的更多相关文章
- idou老师教你学istio 21:基于角色的访问控制
istio的授权功能,也称为基于角色的访问控制(RBAC),它为istio服务网格中的服务提供命名空间级别.服务级别和方法级别的访问控制.基于角色的访问控制具有简单易用.灵活和高性能等特性.本文介绍如 ...
- idou老师教你学Istio 07: 如何用istio实现请求超时管理
在前面的文章中,大家都已经熟悉了Istio的故障注入和流量迁移.这两个方面的功能都是Istio流量治理的一部分.今天将继续带大家了解Istio的另一项功能,关于请求超时的管理. 首先我们可以通过一个简 ...
- idou老师教你学Istio 17 : 通过HTTPS进行双向TLS传输
众所周知,HTTPS是用来解决 HTTP 明文协议的缺陷,在 HTTP 的基础上加入 SSL/TLS 协议,依靠 SSL 证书来验证服务器的身份,为客户端和服务器端之间建立“SSL”通道,确保数据运输 ...
- idou老师教你学Istio 27:解读Mixer Report流程
1.概述 Mixer是Istio的核心组件,提供了遥测数据收集的功能,能够实时采集服务的请求状态等信息,以达到监控服务状态目的. 1.1 核心功能 •前置检查(Check):某服务接收并响应外部请求前 ...
- idou老师教你学Istio 26:如何使用Grafana进行可视化监控
使用Grafana插件进行监控是Istio提供的监控能力之一.Istio提供丰富的监控能力,Grafana插件在Istio对Prometheus支持的基础上,为用户提供基于网页仪表面板的可视化监控效果 ...
- idou老师教你学Istio 24:如何在Istio使用Prometheus进行监控
使用Prometheus进行监控是Istio提供的监控能力之一.Istio提供丰富的监控能力,为网格中的服务收集遥测数据.Mixer是负责提供策略控制和遥测收集的Istio组件. Istio通过Mix ...
- idou老师教你学Istio 22 : 如何用istio实现调用链跟踪
大家都知道istio可以帮助我们实现灰度发布.流量监控.流量治理等一些功能. 每一个功能都帮助我们在不同场景中实现不同的业务.那么其中比如流量监控这种复杂的功能Istio是如何让我们在不同的应用中实现 ...
- idou老师教你学Istio 19 : Istio 流量治理功能原理与实战
一.负载均衡算法原理与实战 负载均衡算法(load balancing algorithm),定义了几种基本的流量分发方式,在Istio中一共有4种标准负载均衡算法. •Round_Robin: 轮询 ...
- idou老师教你学Istio 18 : 如何用istio实现应用的灰度发布
Istio为用户提供基于微服务的流量治理能力.Istio允许用户按照标准制定一套流量分发规则,并且无侵入的下发到实例中,平滑稳定的实现灰度发布功能. 基于华为云的Istio服务网格技术,使得灰度发布全 ...
随机推荐
- 【转】Java学习---算法那些事
[更多参考] LeetCode算法 每日一题 1: Two Sum ----> 更多参考[今日头条--松鼠游学] 史上最全的五大算法总结 Java学习---7大经典的排序算法总结实现 程序员都应 ...
- 树莓派踩坑备忘录 -- 使用 Linux
目录 一,工欲善其事,必先利其器 二,开机必备 三,更新 apt-get 源与软件搜索 四,安装 .NET Core 五,文件传输 六,搜索与安装软件 七,常见缺少的 xxx.so 八,小技巧与工具 ...
- 乘风破浪:LeetCode真题_025_Reverse Nodes in k-Group
乘风破浪:LeetCode真题_025_Reverse Nodes in k-Group 一.前言 将一个链表按照一定的长度切成几部分,然后每部分进行翻转以后再拼接成一个链表是比较困难的,但是这也能锻 ...
- Fix_And_Hold 使用及存在问题
RTKLIB中使用FIXANDHOLD没有对各个卫星的方差进行排序,仅仅是使用了截止高度角.而大软件中进行了排序后,使用30°的截止角作为hold条件. 1.总卫星数与hold卫星数,及ratio,全 ...
- 数据库事务总结(一)-ACID
概述 数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作. 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源.通过将 ...
- Python3 下找不到urllib2的问题
Python 3.* 用urllib.request来代替原来的urllib2,因此调用的时候改为: >>> import urllib.request >>> u ...
- SAP BPC方案介绍
refer to http://sapper.blog.sohu.com/166039991.html SAP/BPC简介: 全面预算管理是联系公司战略目标与日常运营的重要纽带,它上到战略层面.下到执 ...
- centos限制远程尝试密码次数
CentOS中有一个pam_tally2.so的PAM模块,来限定用户的登录失败次数,如果次数达到设置的阈值,则锁定用户.编译PAM的配置文件 # vim /etc/pam.d/login添加: au ...
- Linux核心-hc课堂笔记
windows系统:分区 linux系统:树形结构 <鸟哥的私房菜>关于分区.linux命令.基础篇 服务器篇 关于文件夹: /boot 引导分区,操作系统启动时要到该目录下 ...
- Python2.7-robotparser
robotparser 模块,用于解析网站的 robots.txt 文件,robots.txt 文件是用于指定搜索引擎爬虫的访问权限的,此模块在 python3 中重命名为 urllib.robotp ...