vsh
ist ein interaktives HashiCorp Vault-Shell- und CLI-Tool. Es verfügt über mehrere allgemeine Vorgänge und behandelt Pfade wie Verzeichnisse und Dateien. Kernfunktionen sind:
cp
, rm
, mv
grep
(Teilzeichenfolge oder regulärer Ausdruck)replace
vsh -c "<cmd>"
)append
brew install vsh
nix-env -i vsh
Laden Sie die neuesten statischen Binärdateien von der Release-Seite herunter.
Um ein gültiges Token zu erhalten, verwendet vsh
den TokenHelper-Mechanismus von Vault. Das bedeutet, dass vsh
das Festlegen von Vault-Tokens über ~/.vault-token
, VAULT_TOKEN
und externe token-helper unterstützt.
Fügen Sie ein TLS-Zertifikat für den Server hinzu, indem Sie die Umgebungsvariable VAULT_CACERT
auf den pem
Zertifikatpfad setzen.
vsh
erfordert List
für die betriebenen Pfade. Dies ist notwendig, um festzustellen, ob ein Pfad auf einen Knoten oder ein Blatt im Pfadbaum zeigt. Darüber hinaus ist es erforderlich, Daten zur automatischen Vervollständigung zu sammeln.
Befehle, die die Daten ändern, wie z. B. cp
oder mv
, erfordern zusätzlich Read
und Write
auf den betriebenen Pfaden.
Um alle verfügbaren Backends zuverlässig zu erkennen, verfügt das von vsh
verwendete Vault-Token idealerweise über List
Berechtigung für sys/mount
. Dies ist jedoch keine zwingende Anforderung. Wenn das Token keine List
Berechtigung für sys/mount
hat, kennt vsh
die verfügbaren Backends nicht im Voraus. Das bedeutet, dass es zunächst keine automatische Pfadvervollständigung auf der obersten Ebene (Backend) gibt. Unabhängig davon wird vsh
mit der Best-Effort-Strategie versuchen, die KV-Version jedes eingegebenen Pfads zuverlässig zu ermitteln.
export VAULT_ADDR=http://localhost:8080
export VAULT_TOKEN=root
export VAULT_PATH=secret/ # VAULT_PATH is optional
./vsh
http://localhost:8080 /secret/>
Hinweis: Das angegebene Token wird für die automatische Vervollständigung verwendet, dh List()
Abfragen werden mit diesem Token durchgeführt, auch wenn Sie nichts rm
oder mv
ausführen. vsh
speichert List()
Ergebnisse zwischen, um die Anzahl der Abfragen zu reduzieren. Allerdings wird nach der Ausführung jedes Befehls der Cache geleert, um eine korrekte Tab-Vervollständigung durchzuführen. Wenn Ihr Token nur eine begrenzte Anzahl von Verwendungsmöglichkeiten hat, sollten Sie den nicht interaktiven Modus verwenden oder die automatische Vervollständigung ausschalten, um List()
-Abfragen zu vermeiden.
Um die Anzahl der Abfragen an den Tresor zu reduzieren, können Sie die automatische Pfadvervollständigung auf zwei Arten deaktivieren:
./vsh --disable-auto-completion
./vsh
http://localhost:8080 /secret/> toggle-auto-completion
Use path auto-completion: false
http://localhost:8080 /secret/> toggle-auto-completion
Use path auto-completion: true
export VAULT_ADDR=<addr>
export VAULT_TOKEN=<token>
./vsh -c "rm secret/dir/to/remove/"
Die Arbeit an Tresorgeheimnissen kann von entscheidender Bedeutung sein und Qualität und korrektes Verhalten zu einem erstklassigen Bürger für vsh
machen. Da es sich bei vsh
jedoch noch um ein kleines Open-Source-Projekt handelt, können wir keine Garantien geben. Wir legen jedoch großen Wert auf testgetriebene Entwicklung. Jede PR wird mit einer umfangreichen Suite von Integrationstests getestet. Die überwiegende Mehrheit der Tests wird auf KV1 und KV2 ausgeführt, und jeder Test wird mit Vault 1.13.4
und 1.16.2
ausgeführt, d. h. Vault-Versionen dazwischen sind wahrscheinlich auch kompatibel.
vsh
auf eigenes Risiko. Wir übernehmen keine Verantwortung und geben keine Garantien.
Beiträge in jeglicher Form sind jederzeit willkommen! Ohne die Beiträge der Community wäre vsh
nicht das Tool, das es heute ist.
Anforderungen:
golang
( >= v1.21
)docker
für Integrationstestsmake
für vereinfachte Befehle make compile
make get-bats
make integration-tests
-v DEBUG
legt die Debug-Protokollebene fest, wodurch auch eine Datei vsh_trace.log
erstellt wird, um alle Fehlerobjekte aus der Vault-API zu protokollieren.