Service-Token
Übersicht
Mit Service-Token ist es möglich, sich bei SUSE Observability zu authentifizieren, ohne ein zugehöriges Benutzerkonto zu haben. Dies ist nützlich in Situationen, in denen Sie SUSE Observability von Headless-Diensten wie einem CI-Server aus verwenden möchten. In einem solchen Szenario möchten Sie typischerweise kein Benutzerkonto in Ihrem Identitätsanbieter bereitstellen.
Verwalten von Service-Token
Service-Token können über die sts CLI verwaltet werden. Es stehen die folgenden Befehle zur Verfügung:
> sts service-token --help
Manage service tokens.
Usage:
sts service-token [command]
Available Commands:
create Create a service token
delete Delete a service token
list List service tokens
Use "sts service-token [command] --help" for more information about a command.
Es ist auch möglich, einen neu starten-Service-Token bei der Installation von SUSE® Observability einzurichten.
Service-Token erstellen
|
Die Open Telemetry und Kubernetes StackPacks ermöglichen es Ihnen, ein Subjekt und einen Service-Token mit allen erforderlichen Berechtigungen zu erstellen. |
Um einen Service-Token für SUSE® Observability zu erstellen, können Sie die sts CLI verwenden.
sts service-token create
|
Beachten Sie, dass der Service-Token nur einmal angezeigt wird. Es ist nicht möglich, den Token erneut anzuzeigen. |
Dieser Befehl benötigt die folgenden Befehlszeilenargumente:
| Flaggen | Beschreibung |
|---|---|
|
Der Name des Service-Tokens |
|
Das Ablaufdatum des Service-Tokens, das Format ist yyyy-MM-dd. Das Ablaufdatum ist optional. |
|
Eine durch Kommas getrennte Liste von Rollen, die dem Service-Token zugewiesen werden sollen |
Zum Beispiel wird der folgende Befehl einen Service-Token mit dem Namen my-service-token und der Rolle stackstate-k8s-troubleshooter erstellen:
> sts service-token create --name my-service-token --roles stackstate-k8s-troubleshooter
✅ Service token created: svctok-aaaaa-bbbb-ccccc-ddddd
Richten Sie ein neu starten-Service-Token ein.
Beim Installieren von SUSE® Observability ist es möglich, es mit einem (temporären) neu starten-Service-Token zu initialisieren. Dies ermöglicht die Verwendung der CLI, ohne zuerst mit SUSE® Observability zu interagieren und ein API-Token aus der Benutzeroberfläche zu erhalten. Um dies einzurichten, fügen Sie den folgenden Codeausschnitt in die Konfigurationsdatei SUSE® Observability ein:
Um SUSE® Observability so zu konfigurieren, dass ein neu starten-Service-Token auf Kubernetes erstellt wird, müssen die folgenden Werte in die Datei authentication.yaml eingefügt werden. Beispiel:
stackstate:
authentication:
serviceToken:
bootstrap:
token: <token>
roles:
- stackstate-admin
ttl: 24h
Befolgen Sie die folgenden Schritte, um SUSE® Observability so zu konfigurieren, dass ein neu starten-Service-Token erstellt wird:
-
In
authentication.yaml- fügen Sie das neu starten-Service-Token hinzu:-
token - Das Token, das beim (initialen) Start von SUSE® Observability erstellt wird.
-
roles - Ein Array von Rollen, die dem neu starten-Service-Token zugewiesen sind.
-
ttl - Optional. Die Lebensdauer des Service-Tokens, als Zeitdauer angegeben.
-
-
Speichern Sie die Datei
authentication.yamlzusammen mit demvalues.yamlaus den Installationsanweisungen für SUSE® Observability. -
Führen Sie ein Helm-Upgrade aus, um die Änderungen anzuwenden.
helm upgrade \ --install \ --namespace suse-observability \ --values values.yaml \ --values authentication.yaml \ suse-observability \ suse-observability/suse-observability
|
Richten Sie das neu starten-Service-Token aus einem externen Secret ein.
Anstatt das neu starten-Token über die Helm-Werte anzugeben, können Sie das neu starten-Token auch aus einem Secret lesen, das außerhalb des Helm-Charts erstellt und verwaltet wird (ein externes Secret). Um ein neu starten-Token von einem externen Secret zu verwenden, befolgen Sie diese Schritte und fügen Sie die folgenden Daten hinzu:
kind: Secret
metadata:
name: "<custom-secret-name>"
type: Opaque
data:
bootstrap_token: <base64 of token>
Dieses Token kann neben den bereits vorhandenen Daten zum Secret hinzugefügt werden.
Service-Token verwenden
Sie verwenden Service-Token zur Authentifizierung bei der Nutzung der SUSE Observability APIs: * Bei der Verwendung des CLI * Bei der direkten Nutzung der HTTP APIs * Bei der Erfassung von Telemetriedaten
SUSE Observability sts CLI
Ein Service-Token wird zur Authentifizierung mit dem sts CLI verwendet. Für weitere Informationen siehe die CLI-Dokumentation.
SUSE Observability APIs
Um ein Service-Token direkt mit der SUSE Observability API zu verwenden, fügen Sie es auf eine der folgenden Arten zum Header der Anfrage hinzu:
-
Im
AuthorizationHeader:> curl -X GET -H "Authorization: ApiKey <TOKEN>" http://localhost:8080/api/server/status -
Im
X-API-KeyHeader:> curl -X GET -H "X-API-Key: <TOKEN>" http://localhost:8080/api/server/status
Erfassung von Telemetriedaten
Um ein Service-Token für die Erfassung von Telemetriedaten zu erstellen, müssen Sie zuerst eine Rolle erstellen:
> sts rbac create-subject --subject my-agent
✅ Created subject 'my-agent'
> sts rbac grant --subject my-agent --permission update-metrics
✅ Granted permission 'update-metrics' on 'system' to subject 'my-agent'
PERMISSION | RESOURCE
update-metrics | system
Wenn Sie das Service-Token zur Erfassung von Kubernetes RBAC-Daten verwenden möchten, müssen Sie auch update-scoped-permissions gewähren:
> sts rbac grant --subject my-agent --permission update-scoped-permissions --resource my-cluster
✅ Granted permission 'update-scoped-permissions' on 'my-cluster' to subject 'my-agent'
PERMISSION | RESOURCE
update-metrics | system
update-scoped-permissions | my-cluster
Dies wird eine neue Rolle in SUSE Observability mit dem Namen my-agent erstellen und ihr die update-metrics Berechtigung gewähren. Sie können dann ein Service-Token für diese Rolle erstellen:
> sts service-token create --name my-agent --roles my-agent
✅ Service token created: svctok-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Das neu erstellte Service-Token kann als API-Schlüssel zur Authentifizierung von Telemetriedaten von:
-
SUSE® Observability Agent (einschließlich RBAC-Agent)