You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Authentication and authorization is provided in the Tempo Gateway service. The authentication uses OpenShift OAuth and the Kubernetes `TokenReview` API. The authorization uses the Kubernetes `SubjectAccessReview` API.
10
10
11
-
To properly define tenants and manage their read and write access, the distributed tracing stack—built on the Red Hat distribution of OpenTelemetry and Tempo—requires a well-configured authorization setup. This setup relies on Kubernetes Role-Based Access Control (RBAC) through ClusterRole and ClusterRoleBinding. By default, no users are granted read or write permissions, ensuring a secure baseline until explicit configurations are defined.
11
+
To properly define tenants and manage their read and write access, the distributed tracing stack—built on the Red Hat distribution of OpenTelemetry and Tempo—requires a well-configured authorization setup.
12
12
13
+
This setup relies on Kubernetes Role-Based Access Control (RBAC) through ClusterRole and ClusterRoleBinding. By default, no users are granted read or write permissions, ensuring a secure baseline until explicit configurations are defined.
13
14
14
-
You can install a Configure thosep permissionns from the *Administrator* view of the web console.
15
+
16
+
You can install a Configure those permissionns from the *Administrator* view of the web console or using command line CLI.
15
17
16
18
.Prerequisites
17
19
@@ -24,6 +26,7 @@ To grant users permission to read a specific tenant, follow these steps:
24
26
25
27
. Define desired tenant name and tenant Id.
26
28
. Enable tenants to read traces by adding them to a `ClusterRole` and giving them read (get) permissions
29
+
27
30
.Sample of the read RBAC configuration that allows authenticated users to read the trace data of the `dev` and `prod` tenants
28
31
[source,yaml]
29
32
----
@@ -73,8 +76,9 @@ metadata:
73
76
name: otel-collector # <1>
74
77
namespace: otel
75
78
----
76
-
. Grant the OpenTelemetry Collector write permissions by defining a ClusterRoleBinding to the previously defined role and attaching it to the ServiceAccount
77
-
the following is a sample on how to write RBAC configuration that allows the `otel-collector` service account to write the trace data for the `dev` tenant
79
+
. Grant the OpenTelemetry Collector write permissions by defining a Role with write permissions and ClusterRoleBinding to attach the OpenTelemetry Collector ServiceAccount.
80
+
81
+
The following is a sample on how to write RBAC configuration that allows the `otel-collector` ServiceAccount to write the trace data for the `dev` tenant
78
82
+
79
83
[source,yaml]
80
84
----
@@ -115,15 +119,15 @@ subjects:
115
119
* Enable TLS with a valid certificate authority file.
116
120
117
121
Trace data can be sent to the Tempo instance from the OpenTelemetry Collector that uses the service account with RBAC for writing the data.
<1> In this example, the object storage was set up as one of the prerequisites, and the object storage secret was created in step 2.
110
-
<2> Tenant mode must be set to `openshift`.
111
-
<3> The list of tenants.
112
-
<4> The tenant name. Must be provided in the `X-Scope-OrgId` header when ingesting the data.
113
-
<5> Defines a universally unique identifier of the tenant. Unlike the tenantName, which must be unique at a given time, the tenantId must be unique over the entire lifetime of the Tempo deployment. Tempo uses this ID to prefix objects in the object storage. This could be a UUID, or can match the tempoName
114
-
<6> Enables a gateway that performs authentication and authorization. The Jaeger UI is exposed at `http://<gateway-ingress>/api/traces/v1/<tenant-name>/search`.
115
-
<7> The stack deployed in this example is configured to receive Jaeger Thrift over HTTP and OpenTelemetry Protocol (OTLP), which permits visualizing the data with the Jaeger UI.
116
-
117
-
118
76
.. Apply the customized CR by running the following command:
* xref:../../../security/certificates/service-serving-certificate.adoc#understanding-service-serving_service-serving-certificate[Understanding service serving certificates]
52
52
* xref:../../../security/certificate_types_descriptions/service-ca-certificates.adoc#cert-types-service-ca-certificates[Service CA certificates]
0 commit comments