繁体   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