k8s rbac

RBAC基于角色的访问控制–全拼Role-Based Access Control

Service Account为服务提供了一种方便的认证机制,但它不关心授权的问题。可以配合RBAC来为Service Account鉴权

在Kubernetes中,授权有ABAC(基于属性的访问控制)、RBAC(基于角色的访问控制)、Webhook、Node、AlwaysDeny(一直拒绝)和AlwaysAllow(一直允许)这6种模式。

在RABC API中,通过如下的步骤进行授权:
1)定义角色:在定义角色时会指定此角色对于资源的访问控制的规则;
2)绑定角色:将主体与角色进行绑定,对用户进行访问授权。
Role与ClusterRole
一个角色包含了一套表示一组权限的规则。 权限以纯粹的累加形式累积(没有”否定”的规则)。
Role:角色可以由命名空间内的Role对象定义,一个Role对象只能用于授予对某一单一命名空间中资源的访问权限
ClusterRole:整个Kubernetes集群范围内有效的角色则通过ClusterRole对象实现。
简介
role:
1、允许的操作,如get,list等

2、允许操作的对象,如pod,svc等

rolebinding:

将哪个用户绑定到哪个role或clusterrole上

clusterrole:(集群角色)
clusterrolebinding:(绑定到集群)
3、如果使用rolebinding绑定到clusterrole上,表示绑定的用户只能用于当前namespace的权限





kubectl create role myrole –verb=get,list,watch –resource=pod,svc
role.rbac.authorization.k8s.io/myrole created
–verb: 相当于是权限
–resource:给什么资源使用



kubectl create rolebinding myrole-binding –role=myrole –user=soso
rolebinding.rbac.authorization.k8s.io/myrole-binding created


​https://zhuanlan.zhihu.com/p/127332919


Category k8s