4.6. クエリー RBAC の設定
管理者は、クエリーのロールベースアクセス制御 (RBAC) を設定して、ユーザーに権限を付与した namepsace ごとにユーザーの SPAN 属性をフィルタリングできます。
クエリー RBAC を有効にすると、ユーザーは引き続きすべての namepsace からのトレースにアクセスできるようになり、service.name
属性と k8s.namespace.name
属性もすべてのユーザーに表示されます。
前提条件
cluster-admin
ロールを持つクラスター管理者によるアクティブな OpenShift CLI (oc
) セッション。ヒント-
OpenShift CLI (
oc
) のバージョンが最新であり、OpenShift Container Platform バージョンと一致していることを確認してください。 oc login
を実行します。oc login --username=<your_username>
$ oc login --username=<your_username>
Copy to Clipboard Copied!
-
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: true rbac: enabled: true queryFrontend: jaegerQuery: enabled: false
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: true
1 rbac: enabled: true
2 queryFrontend: jaegerQuery: enabled: false
3 Copy to Clipboard Copied! クラスターロールとクラスターロールバインディングを作成して、
TempoStack
CR で指定したテナントにアクセスするための権限をターゲットユーザーに付与します。以下はその例です。apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: tempo-dev-read rules: - apiGroups: [tempo.grafana.com] resources: [dev] 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:authenticated
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:authenticated
2 Copy to Clipboard Copied! ターゲットユーザーにプロジェクトの属性を読み取る権限を付与します。これを行うには、次のコマンドを実行します。
oc adm policy add-role-to-user view <username> -n <project>
$ oc adm policy add-role-to-user view <username> -n <project>
Copy to Clipboard Copied!