3.3. 配置权限和租户.


在安装 TempoStackTempoMonolithic 实例之前,您必须定义一个或多个租户并配置其读写访问权限。您可以使用 Kubernetes 基于角色的访问控制(RBAC)的集群角色和集群角色绑定来配置这样的授权设置。默认情况下,没有用户授予读取或写入权限。如需更多信息,请参阅"配置租户的读取权限"和"配置租户的写入权限"。

注意

红帽构建的 OpenTelemetry 收集器可以使用带有 RBAC 的服务帐户来编写数据,将 trace 数据发送到 TempoStackTempoMonolithic 实例。

Expand
表 3.2. 认证和授权
组件Tempo Gateway 服务OpenShift OAuthTokenReview APISubjectAccessReview API

身份验证

X

X

X

 

授权

X

  

X

3.3.1. 为租户配置读取权限

您可以从 web 控制台或命令行的 Administrator 视图为租户配置读取权限。

先决条件

  • 以具有 cluster-admin 角色的用户身份登录到 OpenShift Container Platform Web 控制台。
  • 对于 Red Hat OpenShift Dedicated,您必须使用具有 dedicated-admin 角色的帐户登录。

流程

  1. 使用您选择的值添加到 TempoStack 自定义资源 (CR),通过添加 tenantNametenantId 参数来定义租户:

    TempoStack CR 中的租户示例

    apiVersion: tempo.grafana.com/v1alpha1
    kind: TempoStack
    metadata:
      name: redmetrics
    spec:
    # ...
      tenants:
        mode: openshift
        authentication:
          - tenantName: dev 
    1
    
            tenantId: "1610b0c3-c509-4592-a256-a1871353dbfa" 
    2
    
    # ...
    Copy to Clipboard Toggle word wrap

    1
    用户选择的 tenantName 值。
    2
    用户选择的 tenantId 值。
  2. 将租户添加到具有读取(get)权限的集群角色,以读取 trace。

    ClusterRole 资源中的 RBAC 配置示例

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      name: tempostack-traces-reader
    rules:
      - apiGroups:
          - 'tempo.grafana.com'
        resources: 
    1
    
          - dev
          - prod
        resourceNames:
          - traces
        verbs:
          - 'get' 
    2
    Copy to Clipboard Toggle word wrap

    1
    在本示例中列出租户 devprod,这通过上一步中的 tenantName 参数来定义。
    2
    为列出的租户启用读取操作。
  3. 通过为上一步中的集群角色定义集群角色绑定,授予经过身份验证的用户对 trace 数据具有读取权限。

    ClusterRoleBinding 资源中的 RBAC 配置示例

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: tempostack-traces-reader
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: tempostack-traces-reader
    subjects:
      - kind: Group
        apiGroup: rbac.authorization.k8s.io
        name: system:authenticated 
    1
    Copy to Clipboard Toggle word wrap

    1
    授予所有经过身份验证的用户的 trace 数据读取权限。

3.3.2. 为租户配置写入权限

您可以从 web 控制台或命令行的 Administrator 视图为租户配置写入权限。

先决条件

  • 以具有 cluster-admin 角色的用户身份登录到 OpenShift Container Platform Web 控制台。
  • 对于 Red Hat OpenShift Dedicated,您必须使用具有 dedicated-admin 角色的帐户登录。
  • 已安装 OpenTelemetry Collector,并将其配置为使用具有权限的授权服务帐户。如需更多信息,请参阅 Red Hat build of OpenTelemetry 文档中的"自动创建所需的 RBAC 资源"。

流程

  1. 创建用于 OpenTelemetry Collector 的服务帐户。

    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: otel-collector
      namespace: <project_of_opentelemetry_collector_instance>
    Copy to Clipboard Toggle word wrap
  2. 将租户添加到具有 write (create)权限的集群角色中来编写 trace。

    ClusterRole 资源中的 RBAC 配置示例

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      name: tempostack-traces-write
    rules:
      - apiGroups:
          - 'tempo.grafana.com'
        resources: 
    1
    
          - dev
        resourceNames:
          - traces
        verbs:
          - 'create' 
    2
    Copy to Clipboard Toggle word wrap

    1
    列出租户。
    2
    启用写入操作。
  3. 通过定义集群角色绑定来附加 OpenTelemetry Collector 服务帐户,为 OpenTelemetry Collector 授予写入权限。

    ClusterRoleBinding 资源中的 RBAC 配置示例

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: tempostack-traces
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: tempostack-traces-write
    subjects:
      - kind: ServiceAccount
        name: otel-collector 
    1
    
        namespace: otel
    Copy to Clipboard Toggle word wrap

    1
    上一步中创建的服务帐户。客户端在导出 trace 数据时使用它。
  4. 配置 OpenTelemetryCollector 自定义资源,如下所示:

    • bearertokenauth 扩展和有效令牌添加到追踪管道服务。
    • otlp/otlphttp exporters 中添加租户名称,作为 X-Scope-OrgID 标头。
    • 使用有效的证书颁发机构文件启用 TLS。

      OpenTelemetry CR 配置示例

      apiVersion: opentelemetry.io/v1beta1
      kind: OpenTelemetryCollector
      metadata:
        name: cluster-collector
        namespace: <project_of_tempostack_instance>
      spec:
        mode: deployment
        serviceAccount: otel-collector 
      1
      
        config: |
            extensions:
              bearertokenauth: 
      2
      
                filename: "/var/run/secrets/kubernetes.io/serviceaccount/token" 
      3
      
            exporters:
              otlp/dev: 
      4
      
                endpoint: sample-gateway.tempo.svc.cluster.local:8090
                tls:
                  insecure: false
                  ca_file: "/var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt" 
      5
      
                auth:
                  authenticator: bearertokenauth
                headers:
                  X-Scope-OrgID: "dev" 
      6
      
              otlphttp/dev: 
      7
      
                endpoint: https://sample-gateway.<project_of_tempostack_instance>.svc.cluster.local:8080/api/traces/v1/dev
                tls:
                  insecure: false
                  ca_file: "/var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt"
                auth:
                  authenticator: bearertokenauth
                headers:
                  X-Scope-OrgID: "dev"
            service:
              extensions: [bearertokenauth]
              pipelines:
                traces:
                  exporters: [otlp/dev] 
      8
      
      
      # ...
      Copy to Clipboard Toggle word wrap

      1
      配置具有写入权限的服务帐户。
      2
      Bearer Token 扩展,以使用服务帐户令牌。
      3
      服务帐户令牌。客户端将令牌发送到追踪管道服务,作为 bearer 令牌标头。
      4
      指定 OTLP gRPC Exporter (otlp/dev)或 OTLP HTTP Exporter (otlphttp/dev)。
      5
      使用有效的服务 CA 文件启用 TLS。
      6
      带有租户名称的标头。
      7
      指定 OTLP gRPC Exporter (otlp/dev)或 OTLP HTTP Exporter (otlphttp/dev)。
      8
      您在 CR 的 exporters 部分指定的导出器。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat