Vault CLI - Kurzanleitung
Kompakte Anleitung für die wichtigsten Vault CLI-Befehle.
Grundkonfiguration
bash
# Server-Adresse setzen (Linux/macOS)
export VAULT_ADDR='https://vault.iteas.cloud'
# Server-Adresse setzen (Windows PowerShell)
$env:VAULT_ADDR = 'https://vault.iteas.cloud'
# Login
vault login <token>
# oder mit OIDC
vault login -method=oidc -path=oidcSecrets lesen (read)
bash
# Secret komplett anzeigen
vault kv get secret/path/to/secret
# Nur bestimmtes Feld anzeigen
vault kv get -field=password secret/path/to/secret
# Als JSON ausgeben
vault kv get -format=json secret/path/to/secret
# Secrets in einem Pfad auflisten
vault kv list secret/pathSecrets schreiben (write)
Wichtig
Bei vault kv put (bzw. vault write für KV v2) wird das komplette Secret ersetzt!
Wenn ein Secret bereits existiert und Sie nur ein einzelnes Feld ändern möchten, müssen Sie alle anderen Felder ebenfalls angeben, sonst gehen diese verloren.
Neues Secret erstellen
bash
# Einfaches Secret mit mehreren Feldern
vault kv put secret/myapp/config \
username="admin" \
password="secret123" \
api_key="xyz789"Bestehendes Secret aktualisieren
bash
# 1. Zuerst aktuelles Secret lesen
vault kv get -format=json secret/myapp/config
# 2. ALLE Felder beim Update angeben (auch die unveränderten!)
vault kv put secret/myapp/config \
username="admin" \
password="NEUES_PASSWORT" \
api_key="xyz789"oder in Datei pipen, ändern und zurückspielen
bash
# 1. Zuerst aktuelles Secret lesen und als json zwischenspeichern
vault read -format=json auth/oidc/role/default_role | jq '.data' > role.json
# 2. Datei ändern und speichern (nano oder edit)
nano role.json
# 3. Geänderte Werte zurückschreiben
vault write auth/oidc/role/default_role @role.jsonFalsch (❌ - andere Felder gehen verloren):
bash
# NUR das Passwort setzen - username und api_key werden gelöscht!
vault kv put secret/myapp/config password="NEUES_PASSWORT"Secret mit patch aktualisieren
Für KV v2 gibt es auch kv patch, das nur einzelne Felder ändert:
bash
# Nur password ändern, andere Felder bleiben erhalten
vault kv patch secret/myapp/config password="NEUES_PASSWORT"Secret aus Datei schreiben
bash
# JSON-Datei einlesen
vault kv put secret/myapp/config @config.json
# Dateiinhalt als Wert
vault kv put secret/myapp/ssl cert=@certificate.pemMehrzeilige Werte
bash
# Mit Heredoc
vault kv put secret/myapp/ssl cert=- <<EOF
-----BEGIN CERTIFICATE-----
MIIDXTCCAkWgAwIBAgIJAKZ...
-----END CERTIFICATE-----
EOFSecret-Versionen (KV v2)
bash
# Bestimmte Version lesen
vault kv get -version=2 secret/myapp/config
# Versionshistorie anzeigen
vault kv metadata get secret/myapp/config
# Ältere Version wiederherstellen
vault kv rollback -version=2 secret/myapp/config
# Secret löschen (soft delete, kann wiederhergestellt werden)
vault kv delete secret/myapp/config
# Version unwiderruflich löschen
vault kv destroy -versions=1,2 secret/myapp/config
# Secret endgültig löschen (inkl. Metadaten)
vault kv metadata delete secret/myapp/configHäufige Workflows
Secret kopieren
bash
# 1. Altes Secret lesen
OLD_SECRET=$(vault kv get -format=json secret/old/path | jq -r .data.data)
# 2. An neuen Ort schreiben
echo $OLD_SECRET | vault kv put secret/new/path -Secret-Feld ändern (sicher)
bash
# 1. Aktuelles Secret als JSON holen
CURRENT=$(vault kv get -format=json secret/myapp/config | jq -r .data.data)
# 2. Feld in JSON ändern
UPDATED=$(echo $CURRENT | jq '.password = "neues_passwort"')
# 3. Zurückschreiben
echo $UPDATED | vault kv put secret/myapp/config -Alle Secrets in einem Pfad sichern
bash
# Recursive list (benötigt jq)
vault kv list -format=json secret/myapp | jq -r '.[]' | while read secret; do
vault kv get -format=json "secret/myapp/$secret" > "backup_${secret}.json"
doneToken-Verwaltung
bash
# Token-Info anzeigen
vault token lookup
# Token erneuern
vault token renew
# Token widerrufen
vault token revoke <token>
# Neuen Token mit Policy erstellen
vault token create -policy=myapp-policy -ttl=24hPolicies
bash
# Policy anzeigen
vault policy read myapp-policy
# Policy schreiben
vault policy write myapp-policy policy.hcl
# Policies auflisten
vault policy list
# Capabilities prüfen
vault token capabilities secret/myapp/configStatus & Diagnose
bash
# Vault Status
vault status
# Seal Status
vault operator seal-status
# Server Health (ohne Authentifizierung)
curl https://vault.iteas.cloud/v1/sys/healthBeispiel-Workflow
bash
# 1. Umgebungsvariable setzen
export VAULT_ADDR='https://vault.iteas.cloud'
# 2. Einloggen
vault login -method=oidc -path=oidc
# 3. Neues Secret erstellen
vault kv put secret/prod/webapp \
db_host="db.iteas.cloud" \
db_user="webapp" \
db_password="secure_pass_123" \
api_key="abc123xyz"
# 4. Secret lesen
vault kv get secret/prod/webapp
# 5. Nur Passwort anzeigen
vault kv get -field=db_password secret/prod/webapp
# 6. Ein Feld ändern (mit patch)
vault kv patch secret/prod/webapp db_password="neues_passwort_456"
# 7. Oder mit put (alle Felder angeben!)
vault kv put secret/prod/webapp \
db_host="db.iteas.cloud" \
db_user="webapp" \
db_password="neues_passwort_456" \
api_key="abc123xyz"