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) 上。 主体可以是组,用户或者服务账户

posted @ 2023-02-22 14:18  崛起的麋鹿  阅读(48)  评论(3)    收藏  举报