K8S之rbac

一、简介:

RBAC 使⽤ rbac.authorization.k8s.io API Group 来实现授权决策,允许管理员通过 Kubernetes API 动态配置策略,要启⽤ RBAC ,需要在 apiserver 中添加参数 --authorization-mode=RBAC ,

如果使⽤的 kubeadm 安装的集群,1.6 版本以上的都默认开启了 RBAC ,可以通过查看 Master 节点上 apiserver 的静态 Pod 定义⽂件:

$cat  /etc/kubernetes/manifests/kube-apiserver.yaml
     --authorization-mode=Node,RBAC ...

二、Role示例

下面是一个位于 "default" 名字空间的 Role 的示例,可用来授予对 pods 的读访问权限

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: default
  name: pod-reader
rules:
- apiGroups: [""] # "" 标明 core API 组
  resources: ["pods"]
  verbs: ["get", "watch", "list"]

查看所有的role:kubectl get role

三、ClusterRole 示例

下面是一个 ClusterRole 的示例,可用来为任一特定名字空间中的 Secret 授予读访问权限, 或者跨名字空间的访问权限(取决于该角色是如何绑定的):

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  # "namespace" 被忽略,因为 ClusterRoles 不受名字空间限制
  name: secret-reader
rules:
- apiGroups: [""]
  # 在 HTTP 层面,用来访问 Secret 对象的资源的名称为 "secrets"
  resources: ["secrets"]
  verbs: ["get", "watch", "list"]

  

原文地址:https://www.cnblogs.com/wuchangblog/p/14164629.html