在k8s集群中Kubernetes仪表板dashboard使用RABC机制限制指定用户针对指定名称空间中的资源进行管理实践...

2023-11-09

公众号关注「WeiyiGeek

设为「特别关注」,每天带你玩转网络安全运维、应用开发、物联网IOT学习!

44c5ad5fe59bfb5951341832266daced.png


本章目录:Dashboard-利用rbac机制限制指定用户针对指定名称空间中的资源进行UI管理


原文地址: https://blog.weiyigeek.top/2021/12-1-583.html


(2) Dashboard-利用rbac机制限制指定用户针对指定名称空间中的资源进行UI管理。

描述: 有时可能我们会遇到如下场景, 在进行持续CI/CD后,开发人员可能会需要查看部署应用的启动日志,如果都是我们运维人员手动去截图发给他们, 那这样的效率简直是在浪费生命,所有为了节约时间同时保证防止开发人员误操作集群, 此时我们只赋予其指定名称空间下的某些资源浏览权限即可.

在 Kubernetes 集群中我们可以使用 rbac 授权机制, 做用户角色权限分离,可以指定那些资源,我们可以进行那些操作,然后把该角色赋予给指定的用户,最好利用该用户的Token进行登陆Kubernetes-Dashborad界面进行相应管理。

步骤 01.创建一个服务用户此处我们可以采用两种方式创建资源清单或者命令行。

# 方式1
kubectl create serviceaccount -n devtest devtest-ns-viewonly

# 方式2
tee > devtest-ns-viewonly-sa.yaml <<'EOF'
apiVersion: v1
kind: ServiceAccount
metadata:
  name: devtest-ns-viewonly
  namespace: devtest
EOF

步骤 02.准备名称为dashboard-viewonly角色相关资源权限操作的资源清单。

tee > dashboard-namespace-viewonly.yaml <<'EOF'
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: dashboard-viewonly
  namespace: devtest
rules:
- apiGroups: [""]
  resources: ["pods","pods/exec"]
  verbs: ["get","list","watch","delete"]
- apiGroups:
  - ""
  resources:
  - configmaps
  - endpoints
  - persistentvolumeclaims
  - persistentvolumeclaims/status
  - replicationcontrollers
  - replicationcontrollers/scale
  - serviceaccounts
  - services
  - services/status
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - bindings
  - events
  - limitranges
  - namespaces/status
  - pods/log
  - pods/status
  - replicationcontrollers/status
  - resourcequotas
  - resourcequotas/status
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - ""
  resources:
  - namespaces
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - apps
  resources:
  - controllerrevisions
  - daemonsets
  - daemonsets/status
  - deployments
  - deployments/scale
  - deployments/status
  - replicasets
  - replicasets/scale
  - replicasets/status
  - statefulsets
  - statefulsets/scale
  - statefulsets/status
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - extensions
  resources:
  - daemonsets
  - daemonsets/status
  - deployments
  - deployments/scale
  - deployments/status
  - ingresses
  - ingresses/status
  - networkpolicies
  - replicasets
  - replicasets/scale
  - replicasets/status
  - replicationcontrollers/scale
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - batch
  resources:
  - cronjobs
  - cronjobs/status
  - jobs
  - jobs/status
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - networking.k8s.io
  resources:
  - ingresses
  - ingresses/status
  - networkpolicies
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - metrics.k8s.io
  resources:
  - pods
  - nodes
  verbs:
  - get
  - list
  - watch
EOF
kubectl apply -f dashboard-namespace-viewonly.yaml

步骤 03.绑定 dashboard-viewonly 角色给 ServiceAccount 的 devtest-ns-viewonly 用户.

tee dashboard-viewonly-RoleBinding<<'EOF'
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: devtest-ns-viewonly
  namespace: devtest
roleRef:
  kind: Role
  name: dashboard-viewonly
  apiGroup: rbac.authorization.k8s.io
subjects:
- kind: ServiceAccount
  name: devtest-ns-viewonly
EOF

# 或者一条命令搞定
kubectl create rolebinding -n devtest devtest-ns-viewonly --role=devtest:dashboard-viewonly --serviceaccount=devtest-ns-viewonly

温馨提示: ClusterRole 与 ClusterRoleBinding 均不支持指定名称空间。

步骤 04.查看 devtest-ns-viewonly 用户存在 secrets 中的认证Token。

kubectl describe secrets -n devtest devtest-ns-viewonly-token-gxgps | grep "^token:" | awk '{print $2}'

步骤 05.使用获取到的Token访问登陆,我们搭建的kubernetes-dashboard Web UI,此处使用浏览器访问(https://devops.weiyigeek.top/dashboard/#/workloads?namespace=devtest),可以看到该使用Token认证的用户只能访问devtest名称空间下的特定资源。

c76c25ab116aab4a1a2e622a5fff743f.png

本文至此完毕,更多技术文章,尽情期待下一章节!


原文地址: 


欢迎各位志同道合的朋友一起学习交流,如文章有误请在下方留下您宝贵的经验知识,个人邮箱地址【master#weiyigeek.top】或者个人公众号【WeiyiGeek】联系我。

更多文章来源于【WeiyiGeek Blog 个人博客 - 为了能到远方,脚下的每一步都不能少 】

个人主页: 【 https://weiyigeek.top】

博客地址: 【 https://blog.weiyigeek.top 】

专栏书写不易,如果您觉得这个专栏还不错的,请给这篇专栏 【点个赞、投个币、收个藏、关个注,转个发,留个言】(人间六大情),这将对我的肯定,谢谢!。

58218293bdffe9a5419f0a809efcc324.png

  • echo  "【点个赞】,动动你那粗壮的拇指或者芊芊玉手,亲!"

  • printf("%s", "【投个币】,万水千山总是情,投个硬币行不行,亲!")

  • fmt.Printf("【收个藏】,阅后即焚不吃灰,亲!")  

  • console.info("【转个发】,让更多的志同道合的朋友一起学习交流,亲!")

  • System.out.println("【关个注】,后续浏览查看不迷路哟,亲!")

  • cout << "【留个言】,文章写得好不好、有没有错误,一定要留言哟,亲! " << endl;

e0de702b6df61137b8deb18f670402fe.png 往期相关文章af50f741c2c2a30c65b53390fdae8bd6.png

【转载】使用 RBAC 模型限制对 Kubernetes 资源的访问原理浅析

1.还不会部署高可用的kubernetes集群?看我手把手教你使用二进制部署v1.23.6的K8S集群实践(上)

2.还不会部署高可用的kubernetes集群?看我手把手教你使用二进制部署v1.23.6的K8S集群实践(下)

K9s之Kubernetes集群管理交互工具实践

3a98dd3f55abf99e0a5c3e7330ee6a83.png

07ff4714e4c08e4b3b20a3955e6cf9e9.gif

更多网络安全、系统运维、应用开发、全栈文章,尽在【个人博客 - https://blog.weiyigeek.top】站点,谢谢支持!

↓↓↓ 更多文章,请点击下方阅读原文。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在k8s集群中Kubernetes仪表板dashboard使用RABC机制限制指定用户针对指定名称空间中的资源进行管理实践... 的相关文章

随机推荐

  • jmap命令详解

    JVM常见命令之jmap jmap命令详解 jmap是一个很重要的命令 可以查看JVM内存使用情况 jmap帮助文档 参数解释 option 选项参数 pid 需要打印配置信息的进程ID executable 产生核心dump的Java可执
  • Linux学习笔记——例说makefile 头文件查找路径

    0 前言 从学习C语言开始就慢慢开始接触makefile 查阅了很多的makefile的资料但总感觉没有真正掌握makefile 如果自己动手写一个makefile总觉得非常吃力 所以特意借助博客总结makefile的相关知识 通过例子说明
  • Python os模块相关简介

    Python里os path isdir 等函数的作用和用法 一 用法和概念 Python里的os模块用于和系统进行交互 其里 os listdir 用于返回一个由文件名和目录名组成的列表 需要注意的是它接收的参数需要是一个绝对的路径 os
  • 使用 Docker 快速上手中文版 LLaMA2 开源大模型

    本篇文章 我们聊聊如何使用 Docker 容器快速上手朋友团队出品的中文版 LLaMA2 开源大模型 国内第一个真正开源 可以运行 下载 私有部署 并且支持商业使用 写在前面 感慨于昨天 Meta LLaMA2 模型开放下载之后 GitHu
  • C++中随机数的生成

    一 伪随机数 在C 中要生成随机数 首先要include一个文件
  • 手机屏幕测试html,华为手机屏幕检测代码是什么

    类型 系统工具大小 1 4M语言 中文 评分 10 0 标签 立即下载 华为手机很多操作代码用户记住后是可以快捷使用的 有小伙伴想要进行屏幕检测 那华为手机屏幕检测代码是什么 西西小编来为大家介绍 华为手机屏幕检测代码是什么 华为手机屏幕检
  • C语言最大子序列和三种常用解决方法

    注 看不懂评论区提问 有问必答 问题 给定K个整数组成的序列 N 1 N 2 N K 连续子列 被定义为 N i N i 1 N j 其中 1 i j K 最大子列和 则被定义为所有连续子列元素的和中最大者 例如给定序列 2 1 3 4 1
  • BGP一网双平面实验

    实验说明 1 A面 顶面 路由器在AS2 B面 底面 路由器在AS3 宁波路由器在AS1 西安路由器在AS4 2 IP设计 协议号设计如图所示 3 宁波办公路由IP 10 100 1 1 业务路由IP10 100 2 2 西安办公路由IP1
  • Windows 注册表(Registry) 学习

    目录 一 注册表 Registry 介绍 1 注册表简介 2 开启 禁用 注册表编辑器 3 注册表位置 二 注册表的结构 三 修改注册表实现 应用程序开机自启动 一 注册表 Registry 介绍 1 注册表简介 注册表是windows系统
  • 【安装文档】TRex流量分析仪保姆级安装指南--基于VMware虚拟机(ubantu18.04@Intel 82545EM

    前言 DPDK 网络数据开发中文网开发中文网致力于整理收录dpdk spdk ovs vpp dpvs virtiohost sdn ovn qemu等方向 的github开源项目 资料文档 书籍 讲解视频 各大企业招聘信息 23 1 12
  • react hooks useCallback useMemo的区别

    最近在看react hooks useState和useEffect较好理解 到useCallback和useMemo的时候 看官网不太懂 后来通过查阅资料 算是搞明白了 下面实例都是基于react native 不过原理和react是一样
  • Oracle ADG自动切换脚本分享

    为大家分享一个 Oracle ADG自动切换 的脚本 由云和恩墨工程师HongyeDBA编写 支持Switchover Failover 下载链接 https www modb pro download 5 DG环境需求 DG使用服务名必须
  • Python之匿名函数lambda使用方法

    文章目录 一 lambda函数介绍 1 1 语法 1 2 特性 1 3 示例 二 结合内置函数 map filter 使用 2 1 python内置的map 2 2 python内置的filter 一 lambda函数介绍 1 1 语法 在
  • golang面试题:json包变量不加tag会怎么样?

    问题 json包里使用的时候 结构体里的变量不加tag能不能正常转成json里的字段 怎么答 如果变量首字母小写 则为private 无论如何不能转 因为取不到反射信息 如果变量首字母大写 则为public 不加tag 可以正常转为json
  • Android 如何从活动向碎片传递数据

    踩了些坑 做个笔记 方便以后看 方法一 利用碎片的setArguments 方法传递bundle 首先 先穿插一个活动间传递数据的方法 活动间传递数据 两种方法 方法一 直接使用intent提供的put方法 如putString putpu
  • Java操作pdf的工具类itextpdf

    一 什么是iText 在企业的信息系统中 报表处理一直占比较重要的作用 iText是一种生成PDF报表的Java组件 通过在服务器端使用Jsp或JavaBean生成PDF报表 客户端采用超链接显示或下载得到生成的报表 这样就很好的解决了B
  • TS学习(二) :安装ts与ts配置

    一 安装TypeScript npm i g typescript 二 安装完成后 创建ts 使用ts语法 可能遇到的报错问题 在啥都没配置的默认情况下 TS会做出下面几种假设 假设当前的执行环境是dom 如果 代码中没有使用模块化语句 i
  • vscode-server离线安装及配置

    vscode server离线安装及配置 八字环 博客园 cnblogs com 获取当前版本vscode的commit id Help gt About gt Commit 根据commit id下载对应版本的vscode server
  • 保留IP地址

    保留IP地址不会在互联网中使用 其主要被用在企业机构内部作为局域网地址使用 例如 我们经常用到192 168 1 等 保留地址主要在以下四类 A类 10 0 0 0 10 255 255 255 长度相当于1个A类IP地址 A类 100 6
  • 在k8s集群中Kubernetes仪表板dashboard使用RABC机制限制指定用户针对指定名称空间中的资源进行管理实践...

    公众号关注 WeiyiGeek 设为 特别关注 每天带你玩转网络安全运维 应用开发 物联网IOT学习 本章目录 Dashboard 利用rbac机制限制指定用户针对指定名称空间中的资源进行UI管理 原文地址 https blog weiyi