转载地址: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. 地址解析协议(ARP) 分析

    什么是ARP协议 ARP(A ddress R esolution P rotocol)- 地址解析协议 ,用于将IP地址解析为MAC地址.复杂来说,ARP用于32位IPv4地址和以太网的48位MAC ...

  2. 4-9 基于Spring JDBC的事务管理(续)

    10. 基于Spring JDBC的事务管理(续) 当需要方法是事务性的,可以使用@Transactional注解,此注解可以添加在: 接口 会使得此接口的实现类的所有实现方法都是事务性的 接口中的抽 ...

  3. 2.Android高仿网易云音乐-引导界面和广告界面实现

    效果图 效果图依次为图片广告,视频广告,引导界面. 系列文章目录导航 目录 1.实现分析 广告界面就是显示图片和视频,所以可以放一个图片控件,视频控件,然后跳过按钮,提示按钮,WiFi预加载提示都是放 ...

  4. 两个比较好用的JS方法,用来处理树形结构!

    一.平级结构转树形结构 /** * 平级结构转树形结构 * * 示例:const jsonDataTree = listTransToTreeData(jsonData, 'id', 'pid', ' ...

  5. 项目开发中Maven的单向依赖-2022新项目

    一.业务场景 工作多年,在真实的项目开发中经常会遇到将一个项目拆分成多个工程的情况,比如将一个真实的项目拆分成controller层,service层, dao层,common公共服务层等等.这样拆分 ...

  6. 2522-Shiro系列--使用缓存对认证session和授权Cache进行存储

    如何进行session的缓存? 原理: Shiro有1个类,AuthorizingRealm AuthenticatingRealm,里面有个获取认证信息的方法, AuthenticatingReal ...

  7. Docker Compose之容器编排开发初探

    1.前言 Docker Compose 是 Docker 官方编排(Orchestration)项目之一,负责快速在集群中部署分布式应用. Compose 是一个用于定义和运行多个 Docker 应用 ...

  8. 使用 DolphinScheduler 调度 Kylin 构建

    本文章经授权转载 Apache Kylin 上游通常有复杂的数据 ETL 过程,如 Hive 入库.数据清洗等:下游有报表刷新,邮件分发等.集成 Apache DolphinScheduler 后,K ...

  9. WebStorm 配置 Vue3 的文件模板

    WebStorm 默认的 Vue 模板不是 setup 函数(组合式 API)模板,而是 Options API 模板.在设置中搜索 File and Code Templates 编辑创建 vue ...

  10. 在 Linux 中安装 MongoDB 的流程

    下载 MongoDB官网下载社区版的安装包: 解压 上传至 Linux,安装位置自行选择.把压缩包解压到安装的目录下. 可重命名解压的文件夹名: mv mongodb-linux-x86_64-rhe ...