主题
角色与权限对照
平台按作用域划分角色。一个账号可以同时拥有多个作用域的角色,最终权限取并集。内置角色由平台预置,不可编辑;需要更细的权限时,用「角色管理」创建自定义角色。
内置角色共 17 个:platform 6 个、cluster 2 个、nodegroup 2 个、workspace 4 个、namespace 3 个。另有 2 个基础模板随登录或角色勾选生效,不单独作为角色分配,见下文「基础模板(非角色)」。
作用域
| 作用域 | 作用对象 | 内置角色 |
|---|---|---|
| platform | 整个平台 | 平台管理员、平台查看者、平台普通用户、平台自助用户、用户管理员、工作空间代管员 |
| cluster | 单个集群 | 集群管理员、集群查看者 |
| nodegroup | 单个节点组 | 节点组管理员、节点组查看者 |
| workspace | 单个工作空间(租户) | 工作空间管理员、工作空间查看者、工作空间普通成员、项目创建者 |
| namespace | 单个项目(命名空间) | 项目管理员、项目操作员、项目查看者 |
下表中的「标识」是角色模板名。Boss「角色管理」列表第二行显示的是按作用域对象生成的 IAMRole 名称,形如 workspace-<对象>-viewer-<摘要>,两者不是同一个字符串。
产品讨论中的叫法与本节对照:租户管理员 = 工作空间管理员,租户成员 = 工作空间普通成员,租户 viewer = 工作空间查看者,项目成员 = 项目操作员,项目 viewer = 项目查看者,平台只读/审计管理员 = 平台查看者。
平台角色
| 角色 | 标识 | 说明 | 主要权限 |
|---|---|---|---|
| 平台管理员 | platform-admin | 平台全部资源的读写与管理 | 全部 API 资源和非资源 URL;全部权限点(*) |
| 平台查看者 | platform-viewer | 平台非敏感资源只读 | 节点、命名空间、容器组、服务、事件、持久卷和存储声明、工作负载、任务、工作空间、集群、节点组、集群检索(Clusterpedia)聚合视图、平台汇总计数的只读;不含 Secret、ServiceAccount、用户等敏感资源 |
| 平台普通用户 | platform-regular | 登录、个人信息与插件提供的个人自助功能 | 仅查询自己的权限树;插件可聚合个人 API 密钥、模型试用等自助权限点 |
| 平台自助用户 | platform-self-provisioner | 可创建工作空间并自动成为其管理员 | 创建工作空间、列出集群、查询自身权限树;不含平台级工作空间列表 |
| 用户管理员 | users-manager | 管理平台用户与登录记录 | 用户和登录记录的增删改查;查询自身权限树;不含工作空间和集群权限 |
| 工作空间代管员 | workspaces-manager | 代管全部工作空间 | 工作空间的创建、修改、删除和查看;查询自身权限树;不含集群、平台设置和角色绑定管理 |
说明:
platform-admin的模板依赖platform-viewer,但自身*已覆盖全部权限。platform-viewer使用显式只读清单,不包含 Secret、ServiceAccount 等敏感资源。产品口径要求覆盖全部业务域只读,代码尚未补齐各业务域的.view键,详见「代码现状与产品口径差异」。platform-self-provisioner只给创建工作空间和列出集群,不给平台级工作空间列表,避免看到全部租户。platform-regular自身权限点为空,登录后的个人自助能力由插件模板聚合提供。
集群角色
| 角色 | 标识 | 说明 | 主要权限 |
|---|---|---|---|
| 集群管理员 | cluster-admin | 集群全部资源的读写与管理 | 集群内全部 API 资源;/oapis/tenant/v1/clusters/* 非资源请求;权限点覆盖 core.rise.io/*、storage.k8s.io/*、集群设置和成员管理 |
| 集群查看者 | cluster-viewer | 集群资源只读 | 节点、命名空间、容器组、服务、配置映射、事件、工作负载、任务只读 |
集群角色按集群绑定。账号只看到被授权的集群。
节点组角色
| 角色 | 标识 | 说明 | 主要权限 |
|---|---|---|---|
| 节点组管理员 | nodegroup-admin | 节点组资源与成员管理 | 节点组查看和删除(不含创建);节点加入和查看;命名空间绑定和解绑;成员增删;角色只读 |
| 节点组查看者 | nodegroup-viewer | 节点组资源与成员只读 | 节点组、节点、命名空间绑定、成员和角色只读 |
节点组角色保留,但当前菜单入口隐藏,主要在 API 和后台使用。
工作空间角色(Console)
| 角色 | 标识 | 说明 | 主要权限 |
|---|---|---|---|
| 工作空间管理员 | workspace-admin | 工作空间全部资源的读写与管理 | 工作空间内全部资源和设置;/oapis/tenant/v1/workspaces/* 非资源请求;权限点覆盖 scope.rise.io/*、core.rise.io/*、空间设置和成员管理 |
| 工作空间查看者 | workspace-viewer | 工作空间资源只读 | 项目列表、容器组、服务、配置、密钥、事件、工作负载、任务只读;工作空间成员和角色只读 |
| 工作空间普通成员 | workspace-regular | 工作空间基础使用权限 | 容器组、服务、配置、事件、部署只读;是加入项目的前提身份 |
| 项目创建者 | workspace-self-provisioner | 可在工作空间内创建项目 | 创建工作空间内的项目(命名空间);查看资源配额和限制范围 |
项目角色(Console)
| 角色 | 标识 | 说明 | 主要权限 |
|---|---|---|---|
| 项目管理员 | namespace-admin | 项目内全部资源的读写与管理 | 项目内全部资源;项目设置和成员管理 |
| 项目操作员 | namespace-operator | 项目内工作负载、配置、网络的读写 | 容器组、服务、配置、密钥、存储声明、事件、工作负载、任务、入站流量、网络策略的增删改查;容器终端(pods/exec) |
| 项目查看者 | namespace-viewer | 项目资源只读 | 容器组及日志、服务、配置、事件、存储声明、工作负载、任务只读 |
内置角色权限明细
「依赖模板」列取自模板注解 iam.theriseunion.io/dependencies;「接受插件聚合」表示该角色聚合的模板带 iam.rise.io/aggregate-by-labels 标志,可以接收第三方贡献。「代表性权限点」取自模板的 UIPermissions,未逐条列全;* 表示通配。菜单和按钮最终显示受插件聚合与对象范围影响,以实际界面为准。
| 作用域 | 角色(标识) | 依赖模板 | 接受插件聚合 | 代表性权限点 |
|---|---|---|---|---|
| platform | 平台管理员(platform-admin) | platform-viewer | 否 | * |
| platform | 平台查看者(platform-viewer) | — | 是 | scope.rise.io/workspaces.view、scope.rise.io/clusters.view、console.rise.io/platform-resources.view |
| platform | 平台普通用户(platform-regular) | role-template-view-basic | 是 | 自身为空;聚合后含 ai-gateway.rise.io/my-api-keys.manage、playground.rise.io/playground-models.view 等个人自助权限点 |
| platform | 平台自助用户(platform-self-provisioner) | platform-regular | 否 | scope.rise.io/workspaces.create |
| platform | 用户管理员(users-manager) | platform-regular | 否 | iam.rise.io/users.manage、iam.rise.io/users.view |
| platform | 工作空间代管员(workspaces-manager) | platform-regular | 否 | scope.rise.io/workspaces.manage、scope.rise.io/workspaces.view、scope.rise.io/workspaces.create |
| cluster | 集群管理员(cluster-admin) | cluster-viewer | 是 | core.rise.io/*、storage.k8s.io/*、console.rise.io/settings.manage、iam.rise.io/members.manage |
| cluster | 集群查看者(cluster-viewer) | — | 是 | core.rise.io/nodes.view、core.rise.io/pods.view、core.rise.io/deployments.view |
| nodegroup | 节点组管理员(nodegroup-admin) | nodegroup-viewer | 否 | core.rise.io/nodes.view、core.rise.io/nodes.manage、iam.rise.io/members.manage |
| nodegroup | 节点组查看者(nodegroup-viewer) | — | 否 | core.rise.io/nodes.view |
| workspace | 工作空间管理员(workspace-admin) | workspace-viewer | 是 | scope.rise.io/*、core.rise.io/*、console.rise.io/settings.manage、iam.rise.io/members.manage |
| workspace | 工作空间查看者(workspace-viewer) | — | 是 | scope.rise.io/projects.view、core.rise.io/pods.view、core.rise.io/secrets.view(代码现状)、core.rise.io/events.view |
| workspace | 工作空间普通成员(workspace-regular) | — | 是 | 自身为空;聚合后含 storage.rise.io/storagevolumes.view、registry.rise.io/registries.view、ai-gateway.rise.io/my-api-keys.manage 等公共资产和个人自助权限点 |
| workspace | 项目创建者(workspace-self-provisioner) | — | 是 | scope.rise.io/projects.create |
| namespace | 项目管理员(namespace-admin) | namespace-viewer | 是 | core.rise.io/*、console.rise.io/settings.manage、iam.rise.io/members.manage |
| namespace | 项目操作员(namespace-operator) | namespace-viewer | 是 | core.rise.io/workloads.manage、core.rise.io/configurations.manage、core.rise.io/persistentvolumeclaims.manage、core.rise.io/pods.execute |
| namespace | 项目查看者(namespace-viewer) | — | 是 | core.rise.io/workloads.view、core.rise.io/configmaps.view、core.rise.io/persistentvolumeclaims.view、core.rise.io/events.view |
基础模板(非角色)
| 模板 | 标识 | 作用 | 生效方式 |
|---|---|---|---|
| 基础访问 | role-template-view-basic | 查询自己的权限树(iam.theriseunion.io 的 permissions get/list) | 创建或编辑角色时自动带入;不单独分配 |
| 控制台基础读取 | console-shell-reader | 读取导航(modules/navigation)和控制台安全装配视图(console/plugins) | 自动绑定所有已登录用户,无需分配 |
继承与叠加
- 依赖关系记录在模板注解
iam.theriseunion.io/dependencies中。它有两个作用:一是「创建/编辑角色」对话框自动勾选依赖模板;二是 IAMRole 控制器聚合角色时递归合并依赖模板的 Rules 和 UIPermissions。最终权限是合并后的并集,不是 RBAC 的主体继承。 - 由于依赖会被递归合并,角色实际包含依赖模板的权限。各管理员角色(
*-admin)的规则已覆盖对应查看者模板的权限,因此实际权限不变;namespace-operator依赖namespace-viewer,会额外获得容器组日志(pods/log)等只读项。 - 管理员角色与查看者角色的依赖:
platform-admin→platform-viewer,cluster-admin→cluster-viewer,nodegroup-admin→nodegroup-viewer,workspace-admin→workspace-viewer,namespace-admin→namespace-viewer、namespace-operator→namespace-viewer。基础角色platform-regular依赖role-template-view-basic,platform-self-provisioner、users-manager、workspaces-manager依赖platform-regular。 - 平台角色之间没有 RBAC 意义上的运行时继承(产品口径,2026-10-27)。
platform-admin通过*覆盖全部权限,其余平台角色按各自权限点生效;模板依赖只参与权限合并,不改变这一结论。 - 平台、集群、节点组、工作空间、项目各自独立绑定,权限取并集。
- 插件聚合使用标签
iam.rise.io/aggregate-to-<目标模板名>: "true",被聚合模板的 Rules 和 UIPermissions 会一起并入目标角色。聚合要求贡献模板与目标角色的作用域严格相等,作用域不一致时不会并入。 - 当前接受插件聚合的内置角色:
platform-viewer、platform-regular、cluster-admin、cluster-viewer、workspace-admin、workspace-viewer、workspace-regular、workspace-self-provisioner、namespace-admin、namespace-operator、namespace-viewer。节点组角色、平台管理员、用户管理员、工作空间代管员、平台自助用户不接受插件聚合。 - 平台模板的聚合口径存在代码与产品差异:代码自 2026-10-27(rise-global#1915)起让
platform-viewer接受聚合,2026-11-02(rise-global#2111)起让platform-regular接受聚合;产品 2026-10-27 的口径是「platform 模板不参与聚合」。当前以代码为准,安装带aggregate-to-platform-viewer或aggregate-to-platform-regular标签的插件模板后,对应权限会自动并入这两个内置角色。 - 工作空间角色不自动授予项目权限。产品口径是加入项目前先成为工作空间成员,
workspace-regular是前提身份,加入项目时自动授予;代码现状是成员接口未校验工作空间成员身份,也未自动授予,详见「代码现状与产品口径差异」。
业务域管理员
Boss 侧不新增固定内置角色(产品口径,2026-10-27)。需要按业务域管理时:
- 在「角色管理」创建自定义角色,作用域选择 platform。
- 在权限页签勾选目标业务域的插件模板。
- 把角色绑定给用户。
常见业务域包括租户中心、资源中心、算力中心、K8S 仪表盘、Token 网关、监控中心、告警中心、日志中心和计费管理。
平台角色的聚合通道只覆盖 platform-viewer 和 platform-regular 的既定权限,不会把业务域管理权限自动授予其他平台角色。业务域管理员仍需手工创建自定义角色。
两侧边界
- Boss 角色不授予 Console 的数据权限。租户和项目的数据边界仍由 workspace 和 namespace 角色决定。
users-manager和workspaces-manager可以进入 Boss 侧,但只看到自己有权限的菜单(产品口径,2026-10-27 维持)。platform-viewer可以查看平台资源,但不能修改。- 节点组角色当前没有可见菜单入口,绑定后主要通过 API 生效。
代码现状与产品口径差异
以下差异按 rise-global 提交 ed5dcd262 和 rise-global-extension 提交 6aaac93c5 的代码核对,产品口径来自 freeland#3101 的评论(2026-10-23、2026-10-27)。
| 项目 | 代码现状 | 产品口径 |
|---|---|---|
| 平台查看者覆盖范围 | 显式只读清单,覆盖集群、工作空间、节点组、工作负载和平台汇总;插件已聚合部分业务域只读权限(如存储、镜像仓库、监控、K8S 仪表盘) | 2026-10-27:全业务域只读,需要补齐各业务域 .view 键。监控中心「全局概览」「集群概览」、平台配置和平台组件维持 platform-admin 独占 |
| platform 模板聚合 | platform-viewer、platform-regular 接受插件聚合(rise-global#1915、#2111) | 2026-10-27:platform 模板不参与聚合,属于断言级设计约束 |
| 平台角色的依赖 | platform-admin 依赖 platform-viewer;platform-regular 依赖 role-template-view-basic;platform-self-provisioner、users-manager、workspaces-manager 依赖 platform-regular。IAMRole 控制器会递归合并依赖模板 | 2026-10-27:平台角色之间互不继承,platform-admin 通过 * 覆盖全部权限 |
| 租户查看者读取 Secret | workspace-viewer 的 Rules 和 UIPermissions 都包含 Secret | 2026-10-23:租户 viewer 不得读取 Secret |
| 加入项目前的成员校验 | 成员接口未校验工作空间成员身份,也未自动授予 workspace-regular | 2026-10-23:加入项目前必须先成为该工作空间成员;加入项目时自动授予 workspace-regular |
| 工作空间代管员的成员管理 | workspaces-manager 只有 workspaces 规则,未授予角色和绑定 CRUD | 名称和界面描述为「代管全部工作空间及其成员」;成员管理待 scope-aware 成员 API 落地 |
| 租户查看者查看项目成员 | workspace-viewer 规则包含工作空间成员和角色只读(2026-10-30 起);项目成员列表的界面入口以实际界面为准 | 2026-10-23:租户 viewer 可以查看项目成员列表,只读 |
自定义角色
- 内置角色不可编辑;自定义角色可以随时修改权限,修改后对已绑定用户立即生效。
- 自定义角色基于权限点勾选,勾选某项会自动带出依赖项。
- 角色模板用于给插件和业务域提供可复用的权限集合;模板分类用于组织模板。
- 删除或修改自定义角色前,先确认没有用户仍在使用。