K8S-RBAC
前文说明:
基于K8S官网对RBAC的介绍以及自己的一些理解进行一些记录
RBAC介绍
• RBAC 鉴权机制使用 rbac.authorization.k8s.io API 组来驱动鉴权决定, 允许你通过 Kubernetes API 动态配置策略
• 要启用 RBAC,apiserver必须配置 --authorization-mode 参数,设置为一个逗号分隔的列表并确保其中包含 RBAC
示例: --authorization-mode=RBAC,XXXX,XXXX
• RBAC api rbac.authorization.k8s.io 声明了四种 Kubernetes 对象:Role、ClusterRole、RoleBinding 和 ClusterRoleBinding
• RBAC授权逻辑通过将用户与角色绑定来决定是否可以执行某项操作。主体(User/ServiceAccount)与角色关联,角色与资源权限关联

• RBAC 的 Role 或 ClusterRole 中包含一组代表相关权限的规则。 这些权限是纯粹累加的(不存在拒绝某操作的规则)
• 一个 RoleBinding 可以引用同一的名字空间中的任何 Role。 或者,一个 RoleBinding 可以引用某 ClusterRole 并将该 ClusterRole 绑定到 RoleBinding 所在的名字空间。 如果你希望将某 ClusterRole 绑定到集群中所有名字空间,你要使用 ClusterRoleBinding
• RoleBinding 也可以引用 ClusterRole,以将对应 ClusterRole 中定义的访问权限授予 RoleBinding 所在名字空间的资源。这种引用使得你可以跨整个集群定义一组通用的角色, 之后在多个名字空间中复用
Role示例
apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: namespace: default name: pod-reader rules: - apiGroups: [""] # "" 标明 core API 组 resources: ["pods"] verbs: ["get", "watch", "list"]
apiGroups简要说明:

命令查看: kubectl api-resources -o wide
kubectl api-versions
api扩展: https://kubernetes.io/zh-cn/docs/reference/using-api/
备注
RoleBinding 或者 ClusterRoleBinding 可绑定角色到某 主体(Subject) 上。 主体可以是组,用户或者服务账户。

浙公网安备 33010602011771号