转载地址:https://www.kuboard.cn/learning/k8s-advanced/sec/rbac/auth-namespace.html

前提条件

  • 已安装 Kuboard v3,版本不低于 v3.1.1.0

两阶段授权

Kuboard v3 中,采用两阶段授权的方式控制用户/用户组在 Kuboard / Kubernetes 中的权限。

第一阶段授权,控制当前用户:

  • 可以操作哪个集群
  • 以什么样的身份操作该集群

第二阶段授权,控制用户:

  • 在集群内具备什么样的权限

本文描述了如何在 Kuboard 界面中为用户组 mygroup 授权,允许该用户组中的用户以 admin 角色访问集群 k8s-21 中的 default 名称空间。使用该用户组下 test 用户登录 Kuboard 后,首页界面如下所示:

假设用户 test 以及用户组 mygroup 已经实现创建好





  • test 用户所查询到的集群列表结果为空;
  • 点击右上角的用户名,可以显示当前登录用户的基本信息以及其所属的用户组;

第一阶段授权

  • 使用管理员账号登录 Kuboard 首页,并导航到 用户与权限 -> 角色 -> sso-user,如下图所示:

sso-user 为安装 Kuboard 时默认创建的第一阶段授权的角色,该角色具备 KubernetesCluster.act-as-impersonate-user 的 GET 权限,允许与此角色关联的用户/用户组以 使用 ServiceAccount kuboard-admin 扮演 的身份操作 Kubernetes 集群。

  • 切换到 关联用户/用户组(集群级别) 标签页,并点击 创建角色绑定(集群级别)



  • 此时,用 test 账号登录 Kuboard 首页,此时用户已经可以在 Kubernetes 集群列表中查看到被授权的 k8s-21 这个集群,如下图所示:

点击该集群,弹出对话框中:

-- 可以激活 使用 ServiceAccount kuboard-admin 扮演 test 这个选项

-- 名称空间列表中的所有名称空间都为不可访问的状态

第二阶段授权

  • 以管理员用户登录到 Kuboard 首页,点击集群列表中的集群 k8s-21,进入集群页面,并切换到 访问控制 -> 第一阶段授权 页面,如下图所示:

在此页面中,可以查看到该集群已经授权给 mygroup 用户组(操作步骤参考前文)

  • 切换到 访问控制 -> 第二阶段授权 -> 用户组,如下图所示:

点击图中 为新 Group 授权 按钮,并填入 mygroup 作为被授权的用户组名称,然后点击确定按钮,如下图所示:

  • 在 Group 详情页面,切换到 default 名称空间,并点击 RoleBinding 后面的 添加 按钮,如下图所示:

在弹出对话框中,关联的 ClusterRole/Role 字段选择 ClusterRole 、admin,并点击保存按钮,如下图所示:

点击保存后,可以看到该用户组在 default 名称空间中的权限,如下图所示:

进入名称空间

完成前述 第一阶段授权、第二阶段 两个步骤后,以 test 用户登录 Kuboard 界面,并点击首页的 k8s-21 集群,在弹出框中可以看到 default 名称空间已经变成了已授权的状态,点击 default 可以进入该名称空间,如下图所示:

授予用户/用户组访问 Kubernetes 的一个名称空间的更多相关文章

  1. kubernetes之创建基于名称空间的内存和cpu限额示例

    系列目录 首先我们创建一个名称空间 kubectl create namespace quota-mem-cpu-example 创建资源配额 apiVersion: v1 kind: Resourc ...

  2. django路由匹配、反向解析、无名有名反向解析、路由分发、名称空间

    目录 django请求生命周期流程图 1.Django请求的生命周期的含义 2.Django请求的生命周期图解及流程 3.Django的请求生命周期(分布解析) 路由层 1.路由匹配 2.path转换 ...

  3. Python 的名称空间和作用域

    最开始对名称空间的了解是在学习函数的时候,那时候知道了作用域的查找顺序,以及全局名称空间和局部名称空间,产生疑惑的时候为学递归的时候,那时候还没有名称空间这个概念,只知道递归有个最大深度,那时候以后递 ...

  4. Python名称空间与作用域

    什么是名称空间? 比如下图的长方形代表内存,在这个内存里我要设置一个变量100,那么这个变量得有个门牌号,就叫他a吧,但其实变量不是这么存储的,他其实的存储方式是这样的,他会有一个名称空间,这个名称空 ...

  5. C++ primer plus读书笔记——第9章 内存模型和名称空间

    第9章 内存模型和名称空间 1. 头文件常包含的内容: 函数原型. 使用#define或const定义的符号常量. 结构声明. 类声明. 模板声明. 内联函数. 2. 如果文件名被包含在尖括号中,则C ...

  6. Django框架路由分发-名称空间

    目录 一:路由分发 1.路由分发简介 2.总路由分发配置 3.总路由终极配置(不需要导应用路由,直接点应用即可) 4.子路由配置 二:名称空间 1.名称空间应用场景 3.解决方式二>>&g ...

  7. Kubernetes K8S之Pod跨namespace名称空间访问Service服务

    Kubernetes的两个Service(ServiceA.ServiceB)和对应的Pod(PodA.PodB)分别属于不同的namespace名称空间,现需要PodA和PodB跨namespace ...

  8. 利用 awk 统计nginx 中某一个用户的访问次数

    线上总是会遇到攻击,所以就需要分析 access.log 看看那些用户的访问次数不正常,针对这些不正常的用户,要做处理,以 access.log为例说明下怎么统计. 通过 access.log 日志来 ...

  9. 创建一个欢迎 cookie 利用用户在提示框中输入的数据创建一个 JavaScript Cookie,当该用户再次访问该页面时,根据 cookie 中的信息发出欢迎信息。

    创建一个欢迎 cookie 利用用户在提示框中输入的数据创建一个 JavaScript Cookie,当该用户再次访问该页面时,根据 cookie 中的信息发出欢迎信息. <html> & ...

随机推荐

  1. EFCore高级Saas系统下一个DbContext如何支持多数据库迁移

    EFCore高级玩法单DbContext支持多数据库迁移 前言 随着系统的不断开发和迭代默认的efcore功能十分强大,但是随着Saas系统的引进efcore基于表字段的多租户模式已经非常完美了,但是 ...

  2. 第十六天python3 文件IO(二)

    BytesIO操作 io模块中的类 from io import BytesIO 内存中,开辟的一个二进制模式的buffer,可以像文件对象一样操作它: 当close方法被调用的时候,这个buffer ...

  3. 乘风破浪,遇见未来新能源汽车(Electric Vehicle)之特斯拉提车必须知道的十个流程

    订车 线下门店或者官网可以咨询和下单,一般来说,订金就是1000,还算可以接受. 订单账号 特斯拉账号是以邮箱为区分的,而不是手机号,我们下单的时候需要提供一个邮箱用来注册特斯拉账号. 注意了,敲黑板 ...

  4. 如何创建一个带诊断工具的.NET镜像

    现阶段的问题 现在是云原生和容器化时代,.NET Core对于云原生来说有非常好的兼容和亲和性,dotnet社区以及微软为.NET Core提供了非常方便的镜像容器化方案.所以现在大多数的dotnet ...

  5. Win10系统下安装编辑器之神(The God of Editor)Vim并且构建Python生态开发环境(2020年最新攻略)

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_160 众神殿内,依次坐着Editplus.Atom.Sublime.Vscode.JetBrains家族.Comodo等等一众编辑 ...

  6. Gulp介绍及安装使用教程

    一.简介 gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器,不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成,使用她,我们不仅可以很愉快的编写代码 ...

  7. java-前端之HTML

    --html网页简单使用 1.html网页的基本标签 <!doctype html><!-- 声明网页版本 --> <html><!-- 唯一的跟元素 --& ...

  8. java学习第七天lo流.day17

    lo输入

  9. 自动化选课(Python + selenium

    ​ 前几天听到朋友说自己选课事情,突发奇想想要搞这样一个东西,但是由于各种原因只做到以下的完成度,具体的情况也会在解释的最后留下.这个只适用于曲师大的教务系统,因为用的这个系统来进行的一个调试,对于其 ...

  10. ASP.NET CORE在docker中的健康检查(healthcheck)

    在使用docker-compose的过程中,很多程序都提供了健康检查(healthcheck)的方法,通过健康检查,应用程序能够在确保其依赖的程序都已经启动的前提下启动,减少各种错误的发生,同时,合理 ...