授权
授权有很多种模式,最常见的有
AlwaysAllow:即只要认证通过,API请求就正常返回
AlwaysDeny:即使认证通过,也无权限
RBAC
等等
在这里面,最重要的就是RBAC的授权策略,本节将详细地介绍。
RBAC中有四个重要的资源对象:Role
、ClusterRole
、RoleBinding
、ClusterRoleBinding
。
Role与ClusterRole是对k8s中资源的操作权限的集合,Role是命名空间级别的,ClusterRole是集群级别的。
下面是一个Role的例子
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: user-a
name: pod-reader
rules:
- apiGroups: [""] # /api/v1
resources: ["pods"]
verbs: ["get", "list"]
它所对应的API就是
GET /api/v1/namespaces/user-a/pods/<pod>
GET /api/v1/namespaces/user-a/pods
下面是一个RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: pod-reader
namespace: user-a
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: pod-reader
subjects:
- apiGroup: rbac.authorization.k8s.io
kind: User
name: user-a
Last updated
Was this helpful?