3.3. 권한 및 테넌트 구성


TempoStack 또는 TempoMonolithic 인스턴스를 설치하기 전에 하나 이상의 테넌트를 정의하고 읽기 및 쓰기 액세스를 구성해야 합니다. Kubernetes 역할 기반 액세스 제어(RBAC)에 대한 클러스터 역할 및 클러스터 역할 바인딩을 사용하여 이러한 권한 부여 설정을 구성할 수 있습니다. 기본적으로 사용자에게는 읽기 또는 쓰기 권한이 부여되지 않습니다. 자세한 내용은 "테넌트에 대한 읽기 권한 구성" 및 "테넌트에 대한 쓰기 권한 구성"을 참조하세요.

참고

Red Hat 빌드의 OpenTelemetry Collector는 RBAC를 사용하여 데이터를 쓰는 서비스 계정을 사용하여 TempoStack 또는 TempoMonolithic 인스턴스에 추적 데이터를 보낼 수 있습니다.

Expand
표 3.2. 인증 및 권한 부여
ComponentTempo Gateway 서비스OpenShift OAuth토큰리뷰 APISubjectAccessReview API

인증

X

X

X

 

권한 부여

X

  

X

3.3.1. 테넌트에 대한 읽기 권한 구성

웹 콘솔의 관리자 보기나 명령줄에서 테넌트의 읽기 권한을 구성할 수 있습니다.

사전 요구 사항

  • cluster-admin 역할을 사용하여 클러스터 관리자로 OpenShift Container Platform 웹 콘솔에 로그인되어 있습니다.
  • 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 ) 권한이 있는 클러스터 역할에 테넌트를 추가합니다.

    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
    이 예제에서는 이전 단계에서 tenantName 매개변수를 사용하여 정의된 테넌트( devprod) 를 나열합니다.
    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 Toggle word wrap

    1
    인증된 모든 사용자에게 추적 데이터에 대한 읽기 권한을 부여합니다.

3.3.2. 테넌트에 대한 쓰기 권한 구성

웹 콘솔의 관리자 보기나 명령줄에서 테넌트의 쓰기 권한을 구성할 수 있습니다.

사전 요구 사항

  • cluster-admin 역할을 사용하여 클러스터 관리자로 OpenShift Container Platform 웹 콘솔에 로그인되어 있습니다.
  • Red Hat OpenShift Dedicated의 경우 dedicated-admin 역할이 있는 계정을 사용하여 로그인해야 합니다.
  • OpenTelemetry Collector를 설치하고 권한이 있는 서비스 계정을 사용하도록 구성했습니다. 자세한 내용은 OpenTelemetry Red Hat 빌드 문서에서 "필요한 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. 추적을 작성하기 위한 쓰기( 생성 ) 권한이 있는 클러스터 역할에 테넌트를 추가합니다.

    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
    이전 단계에서 만든 서비스 계정입니다. 클라이언트는 추적 데이터를 내보낼 때 사용합니다.
  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 Toggle word wrap

      1
      쓰기 권한이 구성된 서비스 계정입니다.
      2
      서비스 계정 토큰을 사용하기 위한 Bearer Token 확장입니다.
      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의 수출자 섹션에 지정한 수출자입니다.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat