k8s有一套基于RBAC的权限系统,这里的RBAC和Security里的那个RBAC是一个模型,一切行为是基于角色。
角色、权限、用户、分配。
Role:一组权限的集合,Role可以包含列出Pod权限及列出Deployment权限,Role用于给某个NameSpace中的资源进行鉴权。
ClusterRole:也是一组权限的集合,与Role不同的是,ClusterRole可以在包括所有NameSpace和集群级别的资源或非资源类型进行鉴权。
Subject:有三种Subjects,分别是Service Account、User Account、Groups,User Account针对人,Service Accounts针对运行在Pods中运行的进程。
RoleBinding与ClusterRoleBindin:将Subject绑定到Role或ClusterRole。区别在于,RoleBinding将使规则在命名空间内生效,而ClusterRoleBinding将使规则在所有命名空间中生效。
所以,整个流程大概是就是,角色限定了操作和范围,角色通过Binding关联给了Subject
具体操作起来,细节还很多,此处只讨论思路