[英]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.