Hashicorp Vault ist ein flexibler verschlüsselter Speicher mit einem umfangreichen Rechte-Management.
HTTP ohne SSL! Die nachfolgende Anleitung ist nicht für den produktiven Einsatz geeignet, weil die Vault-HTTP-Kommunikation unverschlüsselt erfolgt. Im produktiven Betrieb sollte Vault HTTPS verwenden.
service vault start
export VAULT_ADDR='http://127.0.0.1:8200'
vault operator init -address=http://127.0.0.1:8200
vault operator unseal # Use unseal key 1
vault operator unseal # Use unseal key 2
vault operator unseal # Use unseal key 3
🔑 Die Unseal-Keys werden i.d.R. an fünf Personen im Unternehmen vergeben. Drei von fünf Personen müssen dann den Unseal-Prozess mit ihren Schlüsseln durchführen, damit der Vault entsperrt wird.
Speichern Sie alle generierten Token an einem sicheren Ort. Ohne diese Tokens können Sie die Datenbank nicht entschlüsseln. Ein Wiederherstellen verlorener Tokens ist nicht möglich.
KV Secret-Storage anlegen
# Login with initial root token
root@master:~# vault login
Token (will be hidden): *****
root@master:~# vault secrets enable -path=secret kv
root@master:~# vault secrets list
Vault Policies anlegen
# Policy for reading and writing manually to the vaultvaultpolicywritesecret-rw-<<EOFpath "secret/*" { capabilities = ["create", "read", "update", "delete", "list"]}EOF# Policy for the salt mastervaultpolicywritesalt-master-<<EOFpath "*" { capabilities = ["read","list"]}path "auth/*" { capabilities = ["read", "list", "sudo", "create", "update", "delete"]}EOF# Policy for the minionsvaultpolicywritesaltstack/minions-<<EOFpath "secret/*" { capabilities = ["read", "list"]}EOFvaultpolicylist
In den Vault schreiben und daraus lesen
User-Token generieren
root@master:~# vault token create -policy=secret-rw
# Log in with the create token
root@master:~# vault login
Token (will be hidden): *****
root@master:~# vault kv put secret/upstream-api user=susanne password=pwd__12345
Success! Data written to: secret/upstream-api
root@master:~# vault kv get secret/upstream-api
====== Data ======
Key Value
--- -----
password pwd__12345
user susanne