3.3. 権限とテナントの設定


TempoStack または TempoMonolithic インスタンスをインストールする前に、1 つ以上のテナントを定義し、テナントの読み取りおよび書き込みアクセス権を設定する必要があります。このような認可設定は、Kubernetes のロールベースアクセス制御 (RBAC) のクラスターロールとクラスターロールバインディングを使用して設定できます。デフォルトでは、どのユーザーにも読み取り権限または書き込み権限は付与されません。詳細は、「テナントの読み取り権限の設定」および「テナントの書き込み権限の設定」を参照してください。

注記

Red Hat build of OpenTelemetry の OpenTelemetry Collector は、データの書き込み用のサービスアカウントと RBAC を使用して、トレースデータを TempoStack または TempoMonolithic インスタンスに送信できます。

表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. 任意の値を指定した tenantName および tenantId パラメーターを TempoStack カスタムリソース (CR) に追加して、テナントを定義します。

    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

    1
    ユーザーが選択した tenantName 値。
    2
    ユーザーが選択した tenantId 値。
  2. トレースを読み取るための読み取り (get) 権限を持つクラスターロールにテナントを追加します。

    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

    1
    この例では、前のステップで tenantName パラメーターを使用して定義したテナント (dev および prod) をリストします。
    2
    リストしたテナントの読み取り操作を有効にします。
  3. 上記ステップのクラスターロールのクラスターロールバインディングを定義して、認証されたユーザーにトレースデータの読み取り権限を付与します。

    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

    1
    認証されたユーザー全員に、トレースデータの読み取り権限を付与します。

3.3.2. テナントの書き込み権限の設定

テナントの書き込み権限は、Web コンソールの Administrator ビューまたはコマンドラインから設定できます。

前提条件

  • cluster-admin ロールを持つクラスター管理者として、OpenShift Container Platform Web コンソールにログインしている。
  • Red Hat OpenShift Dedicated の場合、dedicated-admin ロールを持つアカウントを使用してログインしている。
  • OpenTelemetry Collector をインストールし、権限を持つ許可済みのサービスアカウントを使用するように 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
  2. トレースを書き込むための書き込み (create) 権限を持つクラスターロールにテナントを追加します。

    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

    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

    1
    前のステップで作成したサービスアカウント。これは、クライアントがトレースデータをエクスポートするときに使用されます。
  4. OpenTelemetryCollector カスタムリソースを次のように設定します。

    • トレーシングパイプラインサービスに、bearertokenauth エクステンションと有効なトークンを追加します。
    • otlp/otlphttp エクスポーターにテナント名を 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

      1
      書き込み権限が設定されたサービスアカウント。
      2
      サービスアカウントトークンを使用するためのベアラートークンエクステンション。
      3
      サービスアカウントトークン。このトークンは、ベアラートークンヘッダーとして、クライアントによりトレーシングパイプラインサービスに送信されます。
      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

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat