lgyK零S
目前想改动权限访问范围,比如用户绑定的是platform-regular角色,但是我这边新加了个借口,/apis/device.kubesphere.io/v1alpha2/device/list,我该如何修改相关role呢,目前代码跳的比较多,不太明白,也看了权限校验的相关代码
目前想改动权限访问范围,比如用户绑定的是platform-regular角色,但是我这边新加了个借口,/apis/device.kubesphere.io/v1alpha2/device/list,我该如何修改相关role呢,目前代码跳的比较多,不太明白,也看了权限校验的相关代码
API 的定义是需要符合规范的,鉴权的大致流程为: 对请求意图进行解析 -> 根据资源所在的层级,对请求进行分层鉴权, 如果熟悉 K8s 原生的RBAC这些都很好理解。
如果你定义的资源API 为 /apis/device.kubesphere.io/v1alpha2/devices, 那么解析的request info 对应为list devices in
api group device.kubesphere.io
只需要kubectl edit globalrole platform-regular
在rules 中加上,便可以授权该资源的访问权限
- apiGroups:
- device.kubesphere.io
resources:
- 'devices'
verbs:
- get
- watch
- list
如果说我要新添加权限的话是不是需要新创建对应的view和manage的RBAC文件呢,前端也会添加响应的页面
lgy 首先,你是可以自定义角色的。你所问的问题分两个部分:
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
RolandMa1986 还有个问题想请教,我现在整合kubeedge的crd,看着文档是通过kubebuilder生成api和client,但是我看网上比较浅,这边有相关资料吗,我现在是跟着kubesphere编写相关文件,但是查询列表时为空,也不报错
hack/generate_client.sh主要是这个脚本 ks里面大部分使用的是code-generator去生成这些client的 可以看看这个文档 如果kubeedge已经有了 你可以 直接引用他们的 不用整合过来 https://www.jianshu.com/p/b2ceb9aff597
lgy 可以分享一下你的场景和主要功能吗? 先有场景讨论再讨论实现中遇到的问题可能会更容易些。
RolandMa1986 目前已经整合完,就是需要把边缘设备管理集成进来,后面还会做成华为云IEF那种
如果我创建拥有platform-admin角色的用户,请问下在哪里创建的用户名+cluster-admin的clusterrolebindings文件呢
代码在创建用户的时候没看到这层逻辑,只有globalrolebindings创建流程
RolandMa1986 请教个问题,我主要是看ks-apiserver和改这个,关于上一个问题,没太明白在创建相关权限时,controller那层是如何触发创建相关资源的,比如新建工作空间,相应的会自动创建工作空间的权限模板资源类的,这个是如何监控或者触发
lgy 看Wansir 大神,一图讲明workspace相关的关系:kubesphere/kubesphere#3179 (comment)
RolandMa1986 了解下,kubesphere是否考虑过多集群下针对每个集群可以指定单独的管理员的角色
lgy 是有这个考虑, 相关的 issue: kubesphere/kubesphere#2974