ABAC有时也被称为PBAC(Policy-Based Access Control)或CBAC(Claims-Based Access Control)
鉴权的作用是,决定一个用户是否有权使用 Kubernetes API 做某些事情。它除了会影响 kubectl 等组件之外,还会对一些运行在集群内部并对集群进行操作的软件产生作用,例如使用了 Kubernetes 插件的 Jenkins,或者是利用 Kubernetes API 进行软件部署的 Helm。ABAC 和 RBAC 都能够对访问策略进行配置。
ABAC,基于属性的访问控制,是一个强大的概念。然而,正如在Kubernetes实施的那样,ABAC很难管理和理解。它需要在集群的主虚拟机上进行ssh和根文件系统访问,以更改授权策略。要使权限更改生效,必须重新启动集群API服务器。
RBAC权限策略是直接使用kubectl或Kubernetes API配置的。可以授权用户使用RBAC本身来更改授权策略,这样就可以在不泄露对集群主服务器的ssh访问的情况下委派资源管理。RBAC策略很容易映射到Kubernetes API中使用的资源和操作。
因为 Kubernetes 社区的投入和偏好,相对于 ABAC 而言,RBAC 是更好的选择。RBAC角色授权详解