K8S之rbac
阿新 • • 發佈:2020-12-23
一、簡介:
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:kubectlgetrole
三、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"]