feiskyer / kubernetes-handbook

Kubernetes Handbook (Kubernetes指南) https://kubernetes.feisky.xyz

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

RBAC 如何实现用户管理?

JinsYin opened this issue · comments

在使用 rbac 实现多租户隔离的时候,发现基本没有办法实现用户管理。
比如,我对 A Group 中的 u1 用户进行了认证,但授权的时候只对 A Group 进行了授权,以及对 A Group 中的其他个别用户单独进行了授权。这时候其他管理员没有办法查看 u1 用户的权限,除非提前知道
u1 属于 A Group。一旦用户多了就需要对用户进行管理,方便管理用户权限,请教一下有没有这方面的经验可以分享一下。

问题在于认证的过程中如何管理用户,目前我采用的是客户端证书认证。

Kuberentes对用户管理的支持确实还比较弱,只提供了RBAC等授权的管理,却没有直接的用户管理功能。

关于授权的插件,可以使用 kubectl auth can-i 做一个简单的检查,但功能也是比较弱。

一种可能的用户管理方法是使用CustomResourceDefinition定义一个租户资源,然后在其中管理租户和RBAC授权的关联关系。

我最终想实现的目标是:打通 用户管理认证RBAC 授权

使用 CRD 定义一个租户资源对于 用户管理 而言是可行的,但如何关联 认证RBAC 授权 是个问题。

我目前查阅到的一种方法是使用 OpenID Connect (OIDC) 认证方式,通过第三方的 OIDC Identity Provider (比如 dex)来打通 用户管理认证,但对于如何与 RBAC 授权 一同打通还不是特别有谱。目前我仅看到企业级 Tectonic 实现了这个过程,所以要想打通这三个应该还需要自己定制才行。

@JinsYin 正解,需要根据实际需求定制开发。

Thanks.