CLI & API
Zuletzt aktualisiert am
Voraussetzungen
Abschnitt betitelt „Voraussetzungen“- Erstellen Sie einen Service-Account für Ihr STACKIT Portal-Projekt und notieren Sie sich dessen Email-Adresse.
- Fügen Sie den Service-Account in der Sektion Berechtigungen der Gruppe
project.memberhinzu. - Erstellen Sie einen Zugriffstoken für den Service-Account.
Mit diesem Zugriffstoken können Sie entweder weiterhin die STACKIT CLI oder die API direkt verwenden, um Ihre Instanzen und Benutzer bereitzustellen.
Secrets Manager API
Abschnitt betitelt „Secrets Manager API“Wenn Sie es vorziehen, direkt mit der API zu interagieren, besuchen Sie die OpenAPI-Spezifikation.
Interaktion mit Ihrer Secrets Manager-Instanz
Abschnitt betitelt „Interaktion mit Ihrer Secrets Manager-Instanz“Vault CLI
Abschnitt betitelt „Vault CLI“Installieren Sie die CLI wie in der Vault-Dokumentation beschrieben. Legen Sie die Cluster-Adresse als Umgebungsvariable fest und melden Sie sich mit der userpass-Methode an, um Ihre Zugangsdaten über die CLI zu verwalten:
$ export VAULT_ADDR=https://prod.sm.eu01.stackit.cloudAuthentifizierung
Abschnitt betitelt „Authentifizierung“Um sich gegenüber der Vault CLI zu authentifizieren, verwenden Sie die userpass-Methode. Erstellen Sie hierfür einen neuen Benutzer in Ihrer STACKIT Secrets Manager-Instanz und verwenden Sie anschließend den Benutzernamen und das Passwort, um sich zu authentifizieren:
$ vault login -method=userpass username=<username> password="<password>"Mit dieser Authentifizierungsmethode wird ein Token in Ihrem System hinterlegt, das für zukünftige Authentifizierungen verwendet wird. Dieses Token hat eine Standard-TTL (Time-to-Live) von 15 Minuten. Sie können dieses Token auch verwalten, z. B. die TTL erhöhen, es anzeigen, löschen etc.
Weitere Informationen finden Sie in der HashiCorp token documentation.
Secrets Path @STACKIT
Abschnitt betitelt „Secrets Path @STACKIT“Wie der Name schon sagt, ist dies der Pfad, der den gewünschten Secret-Pfad beschreibt.
- HashiCorp Secrets Path:
[Secrets-Engine]/data/[Secrets-Name] - STACKIT Secrets Path:
[Secrets-Manager-ID]/data/[Secrets-Name]
Sie können Ihre Secrets auch in einer Ordnerstruktur verwalten. Dies könnte wie folgt aussehen:
SecretsFolder/SecretsName
Grundlegende Beispiele
Secret schreiben:
$ vault kv put -mount=<secrets-manager-id> app1/mysecret foo=barAusgabe:
===================== Secret Path =====================<secrets-manager-id>/data/app1/mysecret
======= Metadata =======Key Value--- -----created_time 2024-11-15T01:52:23.434633061Zcustom_metadata <nil>deletion_time n/adestroyed falseversion 5Secret lesen:
$ vault kv get -mount=<secrets-manager-id> app1/mysecretAusgabe:
======= Secret Path =======<secrets-manager-id>/data/app1/mysecret
======= Metadata =======Key Value--- -----created_time 2024-11-13T21:58:32.128442898Zcustom_metadata <nil>deletion_time n/adestroyed falseversion 3
======= Data =======Key Value--- -----foo barToken erneuern, um die Gültigkeit auf 30 Minuten zu verlängern:
$ vault token renew --increment=30mWeitere Informationen finden Sie in der HashiCorp documentation.
Vault-API
Abschnitt betitelt „Vault-API“Sie können jeden Client verwenden, der mit HashiCorp Vault KV Version 2 kompatibel ist, indem Sie
den Authentifizierungs-Endpunkt “UserPass” mit der BaseURL verwenden: https://prod.sm.eu01.stackit.cloud/auth/userpass/login/:username
Weitere Informationen finden Sie in der HashiCorp documentation.
Authentifizierung
Abschnitt betitelt „Authentifizierung“Um sich zu authentifizieren, benötigen Sie einen Benutzernamen und ein Passwort, die Sie in Ihrer STACKIT Secrets Manager-Instanz erstellen können (siehe oben). Damit können Sie den Userpass-Endpunkt verwenden, um ein Zugriffstoken zu generieren, das Sie für weitere API-Anfragen nutzen können.
curl --request POST \ --data '{ "password": "" }' \ /v1/auth/userpass/login/<username>Dieses Token ist 15 Min. gültig und kann über die API oder das CLI verlängert werden. Weitere Informationen finden Sie in der HashiCorp documentation
Grundlegende Beispiele
Abschnitt betitelt „Grundlegende Beispiele“{ "data": { "key": "", "value": "" }, "options": { "max_versions": 5 } }curl --header "X-Vault-Token: <token>" \ --request POST \ --data @payload.json \ /v1/<secrets-manager-id>/data/<secret-name>curl --header "X-Vault-Token: <token>" \ --request GET \ /v1/<secrets-manager-id>/data/<secret-name>Weitere Informationen finden Sie in der HashiCorp Dokumentation.