Menu Close

4.6.3. RBAC 要求

要使用 Service Binding Operator 公开后端服务绑定数据,您需要特定的基于角色的访问控制(RBAC)权限。在 ClusterRole 资源 的规则 字段下指定特定的动词,以授予后备服务资源的 RBAC 权限。在定义 这些规则 时,允许 Service Binding Operator 在集群中读取后备服务资源的绑定数据。

Service Binding Operator 使用专用服务帐户对 Kubernetes API 执行请求。默认情况下,此帐户具有将服务绑定到工作负载的权限,它们都由以下标准 Kubernetes 或 OpenShift 对象表示:

  • Deployments
  • DaemonSets
  • ReplicaSet
  • StatefulSets
  • DeploymentConfig

Operator 服务帐户绑定到一个聚合的集群角色,允许 Operator 供应商或集群管理员将自定义服务资源绑定至工作负载。要在 ClusterRole 中授予所需的权限,请使用 servicebinding.io/controller 标志对其进行 标记,并将标记值设置为 true。以下示例演示了如何允许 Service Binding Operator 获取监视和 列出 Crunchy PostgreSQL Operator 的自定义资源(CR):

示例:启用到 Crunchy PostgreSQL Operator 置备的 PostgreSQL 数据库实例绑定

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: postgrescluster-reader
  labels:
     servicebinding.io/controller: "true"
rules:
- apiGroups:
    - postgres-operator.crunchydata.com
  resources:
    - postgresclusters
  verbs:
    - get
    - watch
    - list
  ...

此集群角色可以在安装后备服务 Operator 期间部署。