权限资源访问的问题
lgyK零S
如果说我要新添加权限的话是不是需要新创建对应的view和manage的RBAC文件呢,前端也会添加响应的页面
RolandMa1986K零S
- 已编辑
lgy 首先,你是可以自定义角色的。你所问的问题分两个部分:
- 对于后端API鉴权,就像@hongming 提到的两篇文档一样,只要你创建符合 K8S规范API定义的 role 和rolebinding 就有对应的资源的访问权限。
- 前端鉴权,前端与后端的鉴权需求不一样。 后端鉴权以GVK 为单位,可以对每个Verb 单独授权。这样的设计是前端不能接受的,前端完成一个动作通常需要很多API的配合,而且前端主要以菜单和按钮的动作为单位进行授权。但这通常需要一些列的API调用才能完成。因此在Kubesphere中以 Role为基础添加了以下 Annotation和labels 作为前端交互的控制协议:
metadata: annotations: iam.kubesphere.io/dependencies: '["role-template-view-groups","role-template-view-roles"]' iam.kubesphere.io/module: Access Control iam.kubesphere.io/role-template-rules: '{"groups": "manage"}' kubesphere.io/alias-name: Workspace Groups Management labels: iam.kubesphere.io/role-template: "true" name: role-template-manage-groups
- iam.kubesphere.io/role-template: “true” 定义了前端为完成一个操作做需要的全部后端 API 权限的集合。前端授权以role-template为基本单位。role-template, 并不会直接与用户绑定,这个角色的权限最终会汇集在用户自定义role,或者预定义role中。
- - iam.kubesphere.io/role-template-rules: ‘{“groups”: “manage”}’ 定义了前端对应菜单的key与动作类型。 前端抽象出了 view, create,edit,delete,manage等基本操作,manage表示其包含了view, create,edit,delete等所有的权限。
- - iam.kubesphere.io/dependencies: ‘[]’ 依赖的其他role template,参考一下前端 权限管理。
lgyK零S
RolandMa1986 还有个问题想请教,我现在整合kubeedge的crd,看着文档是通过kubebuilder生成api和client,但是我看网上比较浅,这边有相关资料吗,我现在是跟着kubesphere编写相关文件,但是查询列表时为空,也不报错
yuswiftK零S
- 已编辑
hack/generate_client.sh主要是这个脚本 ks里面大部分使用的是code-generator去生成这些client的 可以看看这个文档 如果kubeedge已经有了 你可以 直接引用他们的 不用整合过来 https://www.jianshu.com/p/b2ceb9aff597
RolandMa1986K零S
lgy 可以分享一下你的场景和主要功能吗? 先有场景讨论再讨论实现中遇到的问题可能会更容易些。
lgyK零S
RolandMa1986 目前已经整合完,就是需要把边缘设备管理集成进来,后面还会做成华为云IEF那种
lgyK零S
如果我创建拥有platform-admin角色的用户,请问下在哪里创建的用户名+cluster-admin的clusterrolebindings文件呢
代码在创建用户的时候没看到这层逻辑,只有globalrolebindings创建流程
lgyK零S
RolandMa1986 请教个问题,我主要是看ks-apiserver和改这个,关于上一个问题,没太明白在创建相关权限时,controller那层是如何触发创建相关资源的,比如新建工作空间,相应的会自动创建工作空间的权限模板资源类的,这个是如何监控或者触发
RolandMa1986K零S
lgy 看Wansir 大神,一图讲明workspace相关的关系:kubesphere/kubesphere#3179 (comment)
lgyK零S
RolandMa1986 了解下,kubesphere是否考虑过多集群下针对每个集群可以指定单独的管理员的角色
hongmingK零SK壹S
lgy 是有这个考虑, 相关的 issue: kubesphere/kubesphere#2974