Entwickler Schnellstart
Bitwarden Secrets Manager ermöglicht Entwicklern, DevOps und Cybersicherheitsteams, Geheimnisse zentral zu speichern, zu verwalten und im großen Maßstab bereitzustellen. Die Secrets Manager CLI ist Ihr Hauptinstrument, um Geheimnisse in Ihre Anwendungen und Infrastruktur über ein authentifiziertes Service-Konto einzuspeisen.
In diesem Artikel demonstrieren wir die Verwendung der Secrets Manager-CLI, indem wir uns einige Möglichkeiten ansehen, um in Ihrem Tresor gespeicherte Datenbankanmeldeinformationen abzurufen, um sie zur Containerlaufzeit für ein Bitwarden Unified Docker-Image einzufügen.
Tipp
Wenn Sie nach SDK-Informationen und Sprachwrappern für die Funktionalität des Secrets Manager suchen, verweisen Sie auf diesen Artikel.
Wenn Sie den Secrets Manager Quick Start Artikel noch nicht durchgegangen sind, empfehlen wir, dies zu tun, bevor Sie weiterlesen.
In diesem einfachsten Beispiel holen Sie Datenbank-Anmeldeinformationen aus Ihrem Tresor und speichern sie als temporäre Umgebungsvariablen auf einem Linux-System. Einmal gespeichert, injizieren Sie sie zur Laufzeit in einem docker run
Befehl. Um dies zu tun, müssen Sie folgendes installiert haben:
Der Secrets Manager CLI kann mit einem für ein bestimmtes Service-Konto generierten Zugriffs-Token angemeldet werden. Das bedeutet, dass nur Geheimnisse und Projekte, auf die das Dienstkonto Zugriff hat, mit der CLI interagiert werden dürfen (erfahren Sie mehr über Berechtigungen für Dienstkonten). Es gibt eine Reihe von Möglichkeiten, eine CLI-Sitzung zu authentifizieren, aber für die einfachste Option tun Sie dies, indem Sie eine Umgebungsvariable BWS_ACCESS_TOKEN
mit dem Wert Ihres Zugriffstokens speichern, zum Beispiel:
Bashexport BWS_ACCESS_TOKEN=0.48c78342-1635-48a6-accd-afbe01336365.C0tMmQqHnAp1h0gL8bngprlPOYutt0:B3h5D+YgLvFiQhWkIq6Bow==
Verwenden Sie als Nächstes den folgenden Befehl, um Ihren Datenbank-Benutzernamen abzurufen und ihn als temporäre Umgebungsvariable zu speichern. In diesem Beispiel stellt fc3a93f4-2a16-445b-b0c4-aeaf0102f0ff
den spezifischen Identifikator für das Geheimnis des Datenbank-Benutzernamens dar:
Bashexport SECRET_1=$(bws secret get fc3a93f4-2a16-445b-b0c4-aeaf0102f0ff | jq '.value')
Dieser Befehl wird den Wert
Ihres Geheimnisses in einer temporären Umgebungsvariable speichern, die bei einem Systemneustart, Benutzerabmeldung oder in einer neuen Shell gelöscht wird. Führen Sie jetzt denselben Befehl für das Datenbank-Passwort aus:
Bashexport SECRET_2=$(bws secret get 80b55c29-5cc8-42eb-a898-acfd01232bbb | jq '.value')
Jetzt, da Ihre Datenbank-Anmeldeinformationen als temporäre Umgebungsvariablen gespeichert sind, können sie in einen docker run
Befehl eingefügt werden. In diesem Beispiel haben wir viele der von Bitwarden Unified benötigten Variablen weggelassen, um die injizierten Geheimnisse zu betonen:
Bashdocker run -d --name bitwarden .... -env BW_DB_USERNAME=$SECRET_1 BW_BD_PASSWORD=$SECRET_2 .... bitwarden/self-host:beta
Wenn dieser Befehl ausgeführt wird, startet Ihr Docker-Container und injiziert Ihre Datenbank-Anmeldeinformationen aus den temporär gespeicherten Umgebungsvariablen, was Ihnen ermöglicht, Bitwarden Unified sicher zu starten, ohne sensible Werte als Klartext zu übergeben.
In diesem Beispiel verwenden Sie die Secrets Manager CLI in Ihrem Docker-Image, um Datenbankanmeldedaten, die in Ihrem Tresor gespeichert sind, zur Laufzeit zu injizieren. Sie erreichen dies, indem Sie Ihre Dockerfile manipulieren, um die CLI auf dem Image zu installieren, anstatt auf dem Host, und um die Datenbank-Anmeldeinformationen zur Laufzeit des Containers abzurufen. Sie werden dann Ihre Umgebungsvariablen-Datei zur Injektion vorbereiten und alles zusammenfügen, indem Sie einen Container ausführen.
Um die Secrets Manager CLI in Ihrem Docker-Image zu installieren, müssen Sie Folgendes zu Ihrer Dockerfile hinzufügen:
BashRUN curl -O https://github.com/bitwarden/sdk/releases/download/bws-v0.2.1/bws-x86_64-unknown-linux-gnu-0.2.1.zip && unzip bws-x86_64-unknown-linux-gnu-0.2.1.zip && export PATH=/this/directory:$PATH
Als nächstes müssen Sie RUN
-Anweisungen erstellen, um jedes Anmeldeinformation zu abrufen, damit sie zur Injektion verfügbar sind. Diese Aussagen werden eine Inline-Authentifizierung enthalten, jedoch ist dies nicht die einzige Methode, die Sie implementieren könnten:
BashRUN SECRET_1=$(bws secret get fc3a93f4-2a16-445b-b0c4-aeaf0102f0ff --access-token $BWS_ACCESS_TOKEN | jq '.value')
BashRUN SECRET_2=$(bws secret get 80b55c29-5cc8-42eb-a898-acfd01232bbb --access-token $BWS_ACCESS_TOKEN | jq '.value')
Diese RUN
-Anweisungen fordern Ihre Dockerfile auf, die angegebenen Geheimnisse abzurufen, wobei fc3a93f4-2a16-445b-b0c4-aeaf0102f0ff
den spezifischen Kennzeichner des Geheimnisses darstellt.
Nun, da Ihre Datenbank-Anmeldeinformationen für die Einspeisung verfügbar gemacht werden, konditionieren Sie Ihre settings.env
Datei, um diese Werte empfangen zu können. Um dies zu tun, ersetzen Sie relevante fest codierte Werte in der Datei durch die zugewiesenen Variablennamen (in diesem Fall, SECRET_1
und SECRET_2
):
Bash# Database
# Available providers are sqlserver, postgresql, mysql/mariadb, or sqlite
BW_DB_PROVIDER=mysql
BW_DB_SERVER=db
BW_DB_DATABASE=bitwarden_vault
BW_DB_USERNAME=$SECRET_1
BW_DB_PASSWORD=$SECRET_2
Jetzt, da Ihre Datenbank-Zugangsdaten bereit und für die Einspeisung vorbereitet sind, starten Sie Ihren Container und geben Sie das zu verwendende Token mit bws Zugangsdaten
als Umgebungsvariable an:
Bashdocker run -e BWS_ACCESS_TOKEN=<your-access-token> docker-unified
Wenn dieser Befehl ausgeführt wird, startet Ihr Docker-Container und injiziert Ihre Datenbank-Anmeldeinformationen aus den vom Container abgerufenen Werten, was Ihnen ermöglicht, Bitwarden Unified sicher zu starten, ohne sensible Werte als Klartext zu übergeben.
Änderungen an dieser Seite vorschlagen
Wie können wir diese Seite für Sie verbessern?
Bei technischen, Rechnungs- und Produktfragen wenden Sie sich bitte an den Support