基于角色的访问控制
在Kubernetes中,向用户或应用程序特定的服务账户授予角色是确保您的应用程序正在指定范围运行的最佳实践。有关服务账户权限的更多信息请查看 官方Kubernetes文档 。
Using RBAC Authorization | Kubernetes
从Kubernetes 1.6开始,基于角色的访问控制默认是启用的。RBAC允许您根据您组织中的用户和角色指定行为类型。
有了RBAC,您可以:
1、授权特殊操作(创建集群范围内的资源,比如新角色)给管理员
2、限制用户在指定命名空间创建资源的能力(pod,持久卷,工作负载),或者是集群范围内(资源配额,角色,自定义资源)
3、限制用户在特定命令空间或集群范围内查查看资源的能力
该指南适用于希望限制用户与Kubernetes API交互范围的管理员。
管理用户账户
所有的Kubernetes集群有两类用户:Kubernetes管理的服务账户和普通用户。
普通用户被认为是有外部独立的服务管理。一个管理员分发私钥,用户的Keystone或者Google账户,甚至用户名密码列表的文件。在这方面,Kubernetes没有表示普通用户账户的对象。普通用户无法通过API调用添加到集群中。
相反,服务账户是由Kubernetes API管理的账户。被绑定到指定的命名空间,且有API服务或手动调用API自动创建。服务账户绑定到了一组作为密钥存储的凭据。它们被挂载到pod中,允许集群内进程与Kubernetes API交互。
API请求被绑定到了普通用户或者服务账户,或者被视作匿名请求。意味着集群内或外部的每个来自人类用户使用kubectl的进程,到node的kubelet,或到control plane的成员,向API server发送请求时必须进行身份验证。否则被视为匿名用户。
角色,集群角色,角色绑定,及集群角色绑定
默认集群角色 | 默认集群角色绑定 | 描述 |
---|---|---|
cluster-admin | system:masters ?group | 允许超级用户访问任意资源并执行任意操作。在集群角色绑定中使用时,它提供了对集群和所有命名空间中的每个资源的完全控制。在角色绑定中使用时,提供了对角色绑定的命名空间的每个资源完全控制,包括命名空间本身。 |
admin | None | 允许管理员访问,旨在使用角色绑定在命名空间中授权。如果使用一个角色绑定,允许对命名空间中的大部分资源进行读、写,包括在命名空间中创建角色和角色绑定。不允许对资源配额或命名空间本身进行写操作。 |
edit | None | 允许对命名空间中大部分的对象进行读写。不允许查看或修改角色或角色绑定。 |
view | None | 允许对命名空间中大部分的对象进行读操作。不允许查看角色或角色绑定。由于密钥需要升级查看,所以不允许该角色查看。 |
————————————
仅用于本人学习
来源:Helm | Docs?