kubesphere 3.1版本。
下面操作全部通过接口调用完成:
- 使用admin创建一个platform-regular的用户test-user。
- 使用admin创建一个test-ws的企业空间。admin作为管理者。
- 使用admin,把test-user加入test-ws,权限是test-ws-viewer
- 这时使用test-user获取token(调用oauth/token接口),
- 通过接口 POST http://{{Kubesphere_API}}:{{Nodeport}}/kapis/tenant.kubesphere.io/v1alpha2/workspaces/test-ws/namespaces 创建namesapce。 这时是没有权限,符合预期。
- 但是,使用test-user的token,可以调用PUT http://{{Kubesphere_API}}:{{Nodeport}}/kapis/iam.kubesphere.io/v1alpha2/workspaces/test-ws/workspacemembers/test-user接口,把权限更新为 test-ws-admin。
- 再执行第5步操作,就可以创建namespace了。
第6步的操作应该被禁止,防止权限提升才对。包括namespace下的role权限也可以自己通过接口提升。
刚开始读kubephere的代码,没找到怎么修复,请大神指点或者修复。