授权作用域(RBAC Scopes)
本页介绍 Kuboard 授权作用域(Scope):三级作用域各自管控什么、如何把角色授权给一组用户、授权后如何校验效果。配置授权需要平台级权限,面向管理员。
三级作用域
作用域规定「一个角色(Role)绑定给一个用户组(Group)之后,权限在哪个范围内生效」,一共三级:
| 作用域 | 层级 | 管控的对象 |
|---|---|---|
| kuboard | Kuboard 平台级 | Kuboard 自身的对象:用户、用户组、角色、系统配置、审计、授权文件、集群接入等 |
| cluster | Kubernetes 集群级 | 某个集群内、跨名称空间的资源:节点、名称空间、存储类、CRD 等 |
| namespace | Kubernetes 名称空间级 | 某个集群下某个名称空间内的资源:工作负载、Service、ConfigMap、Helm Release 等 |
权限如何组织与生效
用户 → 用户组 → 角色(带作用域类型) → 权限(绑定到具体集群 / 名称空间)其中两个「作用域」含义不同:
| 概念 | 是什么 | 在哪里确定 |
|---|---|---|
| 作用域类型 | 角色自身的层级,创建角色时在 UI 下拉中选择,详情页只读展示 | 创建角色时 |
| 绑定作用域 | 把角色绑定到用户组时,具体生效到哪个集群 / 名称空间 | 绑定角色到用户组时 |
一个用户的最终权限 = 其所属所有用户组绑定的所有角色的权限并集,同一用户可同时拥有不同作用域的授权,互不影响。例如:张三所属 dev-group 绑定 admin-namespace(管理 A 集群 dev 名称空间资源)、ops-group 绑定 viewer-cluster(只读查看所有集群级资源),两者权限并集生效。
界面在哪里配置
| 页面 | 界面路径 | 用途 | 文档 |
|---|---|---|---|
| 用户管理 | 系统管理 → 用户与权限 → 用户 | 创建用户、把用户加入用户组、查看用户最终权限 | 用户 |
| 用户组管理 | 系统管理 → 用户与权限 → 用户组 | 批量授权:为组绑定角色、查看组权限 | 用户组 |
| 角色管理 | 系统管理 → 用户与权限 → 角色 | 创建角色、配置权限规则 | 角色 |
给一组人授权,典型操作在用户组详情页完成:
进入 系统管理 → 用户与权限 → 用户组,点击用户组进入详情页,打开「关联角色」页签。
点击「新增用户组角色绑定」,弹出绑定对话框。
选择作用域类型,并按类型选择绑定对象:
作用域类型 需要选择 可选值 kuboard 无需选择 — cluster 关联集群 多选:具体集群,或勾选「任意集群」 namespace 关联集群 + 关联名称空间 先选集群,再勾选多个名称空间,均可选「任意」 选择角色。下拉只列出与所选作用域类型匹配的角色:kuboard 级角色只能以 kuboard 作用域绑定,cluster 级只能绑定到集群,namespace 级只能绑定到「集群 + 名称空间」。
点击「确定」。绑定记录出现在列表中,该用户组的所有成员立即获得相应权限。
使用建议:什么场景用哪一级
| 场景 | 建议作用域 | 做法 |
|---|---|---|
| 平台管理员(管用户、角色、系统配置、接入集群) | kuboard | 绑定内置 admin-kuboard 角色,无需选择集群 |
| 集群运维(管理某集群的节点、名称空间、存储等) | cluster | 绑定内置 admin-cluster / viewer-cluster,绑定到具体集群或「任意集群」 |
| 业务团队(只在自己的名称空间内干活) | namespace | 每个团队绑定到自己的集群与名称空间 |
| 只读审计 / 报表 | 任一 | 绑定对应 viewer-* 角色(如 viewer-namespace),只读查看 |
命名空间级授权的典型做法(一个团队一个名称空间):
- 创建用户组,例如
dev-team,把团队成员加入该组。 - 使用内置的
admin-namespace角色,或按团队职责创建自定义的 namespace 级角色。 - 在用户组详情页「关联角色」中,选择 namespace 作用域 → 集群
cluster-a→ 名称空间dev-a、dev-b→ 角色。 - 组内成员登录后,只能看到
cluster-a下dev-a、dev-b两个名称空间的资源;其他集群、其他名称空间不可见。
谨慎使用「任意」
「任意集群」「任意名称空间」是通配符:选中后授权会对所有当前及未来接入的集群 / 名称空间生效。只在确有需要(如平台管理员、全局只读)时使用,避免越权风险。
与 K8s RBAC 的关系
| 对比项 | Kuboard 授权作用域 | 集群 K8s RBAC |
|---|---|---|
| 管什么 | 谁能用 Kuboard 管理哪些集群 / 名称空间 | 集群内部谁能对哪些资源执行哪些操作 |
| 配置位置 | 系统管理 → 用户与权限(Kuboard 界面) | 集群资源 → 集群 RBAC(Kuboard 只是管理入口) |
| 生效对象 | Kuboard 登录用户 | 集群内的 ServiceAccount / 用户 |
两者相互独立、可以叠加:Kuboard 作用域决定你在 Kuboard 界面里能看到、能操作哪个范围内的对象;集群 K8s RBAC 决定集群侧对访问的控制。Kuboard 把集群 RBAC 作为一类集群级资源展示和管理——为某人分配 K8s RBAC 管理权限,本身就是一次 cluster 作用域的授权。
效果校验
- 重新登录后,左侧菜单按作用域裁剪:kuboard 作用域的菜单(用户与权限、系统设置 等)只有获得平台级授权才可见;cluster / namespace 作用域的菜单只按授权覆盖的集群 / 名称空间显示,未授权的集群不出现在集群选择器中。
- 页面按钮按操作显隐:角色规则里的 get / list / create / update / delete 决定用户在每个资源页看到详情、创建、编辑、删除按钮。
- 「拥有权限」页签核对规则:在用户详情页(或用户组详情页)打开「拥有权限」,按作用域类型 + 集群 → 名称空间分组列出最终规则,悬停可查看每条权限的授权来源(来自哪个用户组 / 角色),便于排查。
- 权限变更即时生效:保存角色权限或调整组绑定后,成员的下一次请求即按新规则判定,无需重启。