Skip to content

Commit 27d949c

Browse files
committed
STAC-22208: make separation between standalone & rancher RBAC clearer
1 parent 2ca06a5 commit 27d949c

File tree

6 files changed

+37
-21
lines changed

6 files changed

+37
-21
lines changed

setup/security/authentication/oidc.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,10 @@ stackstate:
5353
secret: "<oidc-secret>"
5454
baseUrl: "<rancher-url>"
5555
```
56-
You can override and extend some of the OIDC config for Rancher with the following fields:
57-
- `discoveryUri`
58-
- `redirectUri`
59-
- `customParams`
56+
You can override and extend the OIDC config for Rancher with the following fields:
57+
* **discoveryUri** - URI that can be used to discover the OIDC provider. Normally also documented or returned when creating the client in the OIDC provider.
58+
* **redirectUri** - Optional \(not in the example\): The URI where the login callback endpoint of SUSE Observability is reachable. Populated by default using the `stackstate.baseUrl`, but can be overridden. This must be a fully qualified URL that points to the `/loginCallback` path.
59+
* **customParameters** - Optional map of key/value pairs that are sent to the OIDC provider as custom request parameters. Some OIDC providers require extra request parameters not sent by default.
6060

6161
If you need to disable TLS verification due to a setup not using verifiable SSL certificates, you can disable SSL checks with some application config (don't use in production):
6262
```yaml

setup/security/rbac/README.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ Access Management helps you manage who has access to the specific topology eleme
88

99
RBAC is an authorization system that provides fine-grained access management of SUSE Observability resources, a clean and easy way to audit user privileges and to fix identified issues with access rights.
1010

11+
There are two different ways to configure RBAC:
12+
* **Kubernetes RBAC** - Roles and RoleBindings are provisioned on both the cluster running SUSE Observability as well as any monitored cluster. The supported way to do this is by using Rancher.
13+
* **Standalone RBAC** - Configuration is done via the SUSE Observability application itself.
14+
1115
## What can I do with RBAC?
1216

1317
Here are some examples of what you can do with RBAC:
@@ -24,9 +28,7 @@ This depends a bit on how SUSE Observability is deployed. Both modes of deploym
2428
## More on RBAC configuration
2529

2630
* [Rancher RBAC](rbac_rancher.md)
27-
* [Permissions](rbac_permissions.md)
28-
* [How to set up roles](rbac_roles.md)
29-
* [Scopes](rbac_scopes.md)
31+
* [Standalone RBAC](rbac_roles.md)
3032
* [How to configure authentication](../authentication/)
3133

3234

setup/security/rbac/rbac_permissions.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ description: SUSE Observability Self-hosted
66

77
## Overview
88

9+
{% hint style="warning" %}
10+
This page only applies to "Standalone RBAC". Details on permissions in "Rancher RBAC" can be found in [Resource details](rbac_rancher.md#resource-details).
11+
{% endhint %}
12+
913
Permissions in SUSE Observability allow Administrators to manage the actions that each user or user group can perform inside SUSE Observability and the information that will be shown in their SUSE Observability UI. Only the feature set relevant to each user's active role will be presented. The actions, information and pages that a user doesn't have access to are simply not displayed in their SUSE Observability UI.
1014

1115
{% hint style="info" %}

setup/security/rbac/rbac_rancher.md

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ description: SUSE Observability Self-hosted
44

55
## Overview
66

7-
The SUSE Rancher Prime Observability Extension allows RBAC configuration of users access in SUSE Observability.
7+
The SUSE Rancher Prime Observability Extension uses Kubernetes RBAC to grant access to Rancher users in SUSE Observability.
8+
If you do not use Rancher, look at [How to set up roles](rbac_roles.md) in a standalone installation.
89

910
Two kinds of roles are used for accessing SUSE Observability:
1011
* A *scope role* (Observer) grants access to data - either all data in a SUSE Observability instance, data coming from a cluster, or just the data for a namespace. This role is provisioned in a cluster to be observed.
@@ -20,13 +21,16 @@ The observer role grants a user the permission to read topology, metrics, logs a
2021
* **Cluster Observer** - grants access to all data coming from a Cluster. This template can be used in the "Cluster Membership" section of the cluster configuration.
2122
* **Instance Observer** - grants access to all data in a SUSE Observability instance. This template can be used on the Project that includes SUSE Observability itself.
2223

24+
In order to use these observer roles, it is recommended that the following role is granted on the Project running SUSE Observability itself:
25+
* **Recommended Access** - has recommended permissions for using SUSE Observability.
26+
2327
### Instance roles
2428

25-
There are four roles predefined in SUSE Observability:
29+
There are two roles predefined in SUSE Observability, allowing for configuring the system - setting up views, monitors, notitifications etcetera:
30+
As these concern "global" settings of SUSE Observability, these roles include access to all data in an observability instance.
2631

27-
* **Recommended Access** - has recommended permissions for using SUSE Observability.
28-
* **Instance Troubleshooter** - has all permissions required to use SUSE Observability for troubleshooting, including the ability to enable/disable monitors, create custom views and use the Cli. This role includes access to all data in an observability instance.
29-
* **Instance Administrator** - has full access to all views and has all permissions. This role includes access to all data in an observability instance.
32+
* **Instance Troubleshooter** - has all permissions required to use SUSE Observability for troubleshooting, including the ability to enable/disable monitors, create custom views and use the Cli.
33+
* **Instance Administrator** - has full access to all views and has all permissions.
3034

3135
The permissions assigned to each predefined SUSE Observability role can be found below. For details of the different permissions and how to manage them using the `sts` CLI, see [Role based access control (RBAC) permissions](/setup/security/rbac/rbac_permissions.md)
3236

setup/security/rbac/rbac_roles.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,8 @@ suse-observability \
273273
suse-observability/suse-observability
274274
```
275275

276+
For details on the `topologyScope`, see [RBAC Scopes](rbac_scopes.md).
277+
276278
### Custom roles via the CLI
277279

278280
To set up a new role called `development-troubleshooter`, which will allow the same permissions as the normal troubleshooter role, but only for the `dev-test` cluster, a new subject needs to be created. Further more this subject needs to be assigned the required set of permissions:

setup/security/rbac/rbac_scopes.md

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,27 @@
22
description: SUSE Observability Self-hosted
33
---
44

5-
# Scopes
5+
# Topology Scopes
66

7-
## How do scopes work?
7+
{% hint style="warning" %}
8+
The topology scopes discussed here only apply to a *Standalone RBAC* deployment. See [Rancher RBAC](Rancher RBAC) for the available scopes in a *Rancher RBAC* deployment.
9+
{% endhint %}
810

9-
The scope is an [STQL query](../../../develop/reference/k8sTs-stql_reference.md) that's added as a prefix to every query executed in SUSE Observability. Whenever a user wants to select a view or pass a query in SUSE Observability, this prefix query is executed as a part of the user's query. This limits the results accordingly to match the user's role.
11+
## How do topology scopes work?
12+
13+
The topology scope is an [STQL query](../../../develop/reference/k8sTs-stql_reference.md) that's added as a prefix to every query executed in SUSE Observability. Whenever a user wants to select a view or pass a query in SUSE Observability, this prefix query is executed as a part of the user's query. This limits the results accordingly to match the user's role.
1014

1115
Note: Please note that function calls like `withCauseOf` and `withNeighborsOf` aren't supported as they would not be performant in this context.
1216

13-
If a user belongs to multiple groups, then this user can have multiple scopes, which translates to multiple prefixes. In this situation, the prefix is executed as an OR of all scopes that this user has.
17+
If a user belongs to multiple groups, then this user can have multiple topology scopes, which translates to multiple prefixes. In this situation, the prefix is executed as an OR of all topology scopes that this user has.
1418

1519
Users need to log out and authenticate again to SUSE Observability whenever any changes to roles or permissions are made.
1620

17-
## Why scopes?
21+
## Why topology scopes?
1822

19-
Scopes are introduced as a security feature that's mandatory for every subject within SUSE Observability. The predefined SUSE Observability users Administrator, Power User and Guest roles have no scope defined.
23+
Topology scopes are introduced as a security feature that's mandatory for every subject within SUSE Observability. The predefined SUSE Observability users Administrator, Power User and Guest roles have no scope defined.
2024

21-
It's possible to specify a scope as a query wildcard, however, this will result in access to everything and isn't recommended. If there is a need for access without a scope, it's recommended to use one of the [predefined roles](rbac_permissions.md#predefined-roles) instead.
25+
It's possible to specify a topology scope as a query wildcard, however, this will result in access to everything and isn't recommended. If there is a need for access without a topology scope, it's recommended to use one of the [predefined roles](rbac_permissions.md#predefined-roles) instead.
2226

2327
## Examples
2428

@@ -34,7 +38,7 @@ The query for this view is the same as for the others, but without any prefix:
3438
'layer = "Infrastructure" AND domain IN ("Customer1", "Customer2")'
3539
```
3640

37-
### Below user is in a group with configured subject X with the following scope:
41+
### Below user is in a group with configured subject X with the following topology scope:
3842

3943
```text
4044
'domain = "Customer1"'
@@ -48,7 +52,7 @@ Query with the prefix for this view is:
4852
'(domain = "Customer1") AND (layer = "Infrastructure" AND domain IN ("Customer1", "Customer2"))'
4953
```
5054

51-
### Another user who is a part of a group with a configured subject Y that has the following scope:
55+
### Another user who is a part of a group with a configured subject Y that has the following topology scope:
5256

5357
```text
5458
'domain = "Customer2"'

0 commit comments

Comments
 (0)