簡體   English   中英

RBAC:具有多個名稱空間的角色

[英]RBAC: roles with multiple namespaces

嘗試編寫我的第一組RBAC角色。 因此,嘗試找出對多個命名空間組件具有2個角色的最佳方法。

管理員角色(3個命名空間的RW表示默認值,ns1和ns2)用戶角色(3個命名空間的只讀的說默認值,ns1和ns2)

正在考慮將需要一個具有2個clusterRoles的服務帳戶,用於管理員/用戶

apiVersion: rbac.authorization.k8s.io/v1
kind: ServiceAccount
metadata:
  name: sa
  namespace: default

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: admin-master
rules:
- apiGroups:
    - batch
  resources:
    - pods
  verbs:
    - create
    - delete
    - deletecollection
    - get
    - list
    - patch
    - update
    - watch

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: user-master
rules:
- apiGroups:
    - batch
  resources:
    - pods
  verbs:
    - get
    - list
    - watch

然后使用roleBindings:

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: admin-rw
  namespace: ns1
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: admin-master
subjects:
  - kind: ServiceAccount
    name: sa
    namespace: default
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: user-readonly
  namespace: ns1
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: user-master
subjects:
  - kind: ServiceAccount
    name: sa
    namespace: default

但是不確定如何將角色admin-rw / user-readonly與名稱空間2(ns2)綁定的最佳方法?

角色是作用域的,可以綁定到特定的名稱空間,也可以在群集范圍內。 對於命名空間范圍的角色, 您只需將同一角色部署在多個命名空間中即可

其背后的想法是在群集中具有分區權限,盡管這意味着需要更多的管理工作,但是是更安全的做法。

此外,在定義中,您嘗試將權限綁定到特定的名稱空間,但是,您使用的是ClusterRole ,它是一個群集作用域的資源 如果需要名稱空間范圍的權限,則可能需要將其更改為Role

您可能會發現這篇CNCF文章在此問題上很有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM