4.7. 配置查询 RBAC
作为管理员,您可以设置查询基于角色的访问控制(RBAC),以便根据您授予其权限的命名空间过滤用户的 span 属性。
注意
当您启用查询 RBAC 时,用户仍然可以从所有命名空间访问 trace,service.name 和 k8s.namespace.name 属性对所有用户可见。
先决条件
集群管理员具有
cluster-admin角色的活跃 OpenShift CLI (oc) 会话。提示-
确保您的 OpenShift CLI (
oc) 版本为最新版本,并与您的 OpenShift Container Platform 版本匹配。 运行
oc login:$ oc login --username=<your_username>
-
确保您的 OpenShift CLI (
流程
在
TempoStack自定义资源(CR) 中启用多租户和查询 RBAC,例如:apiVersion: tempo.grafana.com/v1alpha1 kind: TempoStack metadata: name: simplest namespace: chainsaw-multitenancy spec: storage: secret: name: minio type: s3 storageSize: 1Gi resources: total: limits: memory: 2Gi cpu: 2000m tenants: mode: openshift authentication: - tenantName: dev tenantId: "1610b0c3-c509-4592-a256-a1871353dbfb" template: gateway: enabled: true1 rbac: enabled: true2 queryFrontend: jaegerQuery: enabled: false3 创建集群角色和集群角色绑定,为目标用户授予访问您在
TempoStackCR 中指定的租户的权限,例如:apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: tempo-dev-read rules: - apiGroups: [tempo.grafana.com] resources: [dev]1 resourceNames: [traces] verbs: [get] --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: tempo-dev-read roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: tempo-dev-read subjects: - kind: Group apiGroup: rbac.authorization.k8s.io name: system:authenticated2 为目标用户授予项目读取属性的权限。您可以运行以下命令来完成此操作:
$ oc adm policy add-role-to-user view <username> -n <project>