HashiCorp Vault für lokale KI
Was dieser Artikel über HashiCorp Vault behandelt
- Was Vault ist und wofür es sich eignet.
- Wie man Vault lokal mit Docker betreibt.
- Wie Secrets gespeichert, gelesen und rotiert werden.
- Wie dynamische Credentials funktionieren.
- Wie Vault mit KI-Agenten und Self-Hosting-Tools integriert wird.
Einleitung: HashiCorp Vault für lokale KI
HashiCorp Vault ist ein Enterprise-Tool zur Verwaltung von Secrets, Zugangsdaten und Verschlüsselungsschlüsseln. Es bietet verschlüsselten Speicher, dynamische Credentials, automatische Rotation und feingranulare Zugriffssteuerung. Auch für lokale KI-Projekte kann Vault sinnvoll sein, wenn viele API-Keys, Datenbankpasswörter oder Zertifikate verwaltet werden müssen.
Für kleine Homelabs ist Vault oft überdimensioniert. Sobald aber mehrere Agenten, Tools und Container Secrets benötigen, lohnt sich ein zentraler Secret-Manager. Vault ist besonders wertvoll, wenn dynamische Datenbank-Credentials oder zeitlich begrenzte Zugriffstokens benötigt werden.
Wichtige Begriffe
- KV Engine: Key-Value-Speicher für Secrets.
- Dynamic Secrets: Kurzlebige, automatisch erzeugte Credentials.
- PKI Engine: Ausstellung und Verwaltung von Zertifikaten.
- Transit Engine: Verschlüsselung als Service.
- Policy: Regelt, wer auf welche Pfade zugreifen darf.
- Token: Kurzlebiger Zugriffsschlüssel.
- AppRole: Authentifizierungsmethode für Anwendungen.
- Unseal: Freischalten des Vault-Speichers.
Warum Vault für lokale KI?
- Zentrale Verwaltung: Ein Ort für alle Secrets.
- Keine hartkodierten Keys: Anwendungen holen sich Secrets zur Laufzeit.
- Audit-Logs: Wer hat wann auf welches Secret zugegriffen.
- Rotation: Automatischer Austausch von Datenbankpasswörtern.
- Zeitlich begrenzte Tokens: Reduziert das Risiko bei Leaks.
Installation mit Docker
Eine einfache Testinstallation läuft mit Docker Compose:
services:
vault:
image: hashicorp/vault:latest
container_name: vault
ports:
- "8200:8200"
environment:
- VAULT_DEV_ROOT_TOKEN_ID=MEIN_DEV_TOKEN
- VAULT_DEV_LISTEN_ADDRESS=0.0.0.0:8200
volumes:
- vault-data:/vault/file
cap_add:
- IPC_LOCK
command: server -dev -dev-root-token-id="MEIN_DEV_ROOT_TOKEN"
volumes:
vault-data:
Starten:
docker compose up -d
Die Weboberfläche ist unter http://localhost:8200 erreichbar.
Produktives Setup
Für den produktiven Betrieb sollte Vault nicht im Dev-Modus laufen:
- Festplattenbasierten Storage verwenden.
- TLS aktivieren.
- Mehrere Unseal-Keys anlegen.
- Authentifizierung über AppRole, TLS-Zertifikate oder LDAP.
- Audit-Logging einschalten.
Erstes Secret speichern
Nach dem Start meldest Du Dich an:
export VAULT_ADDR='http://localhost:8200'
export VAULT_TOKEN='MEIN_DEV_TOKEN'
Ein Secret speichern:
vault kv put secret/ollama-api-key key=MEIN_KEY
Ein Secret auslesen:
vault kv get secret/ollama-api-key
Integration in Anwendungen
Anwendungen können Secrets über die REST-API oder ein SDK abrufen:
import requests
headers = {"X-Vault-Token": "MEIN_DEV_TOKEN"}
resp = requests.get("http://localhost:8200/v1/secret/data/ollama-api-key", headers=headers)
data = resp.json()
print(data["data"]["data"]["key"])
In Produktion sollte statt des Root-Tokens ein AppRole oder ein maschinenauthentifizierter Pfad genutzt werden.
Policies
Vault verwendet Pfade und Policies, um Zugriff zu steuern:
path "secret/data/ollama/*" {
capabilities = ["read"]
}
Policies werden an Tokens oder Rollen gebunden.
Dynamische Datenbank-Credentials
Einer der stärksten Features ist die Erzeugung kurzlebiger Datenbank-Nutzer:
vault secrets enable database
vault write database/config/my-postgres \
plugin_name=postgresql-database-plugin \
allowed_roles="readonly" \
connection_url="postgresql://{{username}}:{{password}}@db:5432/postgres" \
username="vaultadmin" \
password="vaultpass"
Eine Rolle anlegen:
vault write database/roles/readonly \
db_name=my-postgres \
creation_statements="CREATE ROLE \"{{name}}\" WITH LOGIN PASSWORD '{{password}}' VALID UNTIL '{{expiration}}'; \
GRANT SELECT ON ALL TABLES IN SCHEMA public TO \"{{name}}\";" \
default_ttl="1h" \
max_ttl="24h"
Anwendungen fragen nun Credentials an, die nach einer Stunde ablaufen.
Vault und KI-Agenten
KI-Agenten wie OpenClaw oder OpenHands brauchen oft API-Keys. Statt diese in .env-Dateien zu hinterlegen, können sie sie aus Vault holen:
- Agent startet mit einem Vault-Token.
- Er liest API-Keys vor der Verwendung.
- Tokens werden kurzlebig gehalten.
- Rotation passiert zentral.
Das vereinfacht den Umgang mit vielen Providern und verringert das Risiko.
Typische Stolpersteine
- Dev-Modus in Produktion: Daten gehen bei Neustart verloren.
- Root-Token überall verwenden: Sicherheitsrisiko.
- Kein TLS: Kommunikation unverschlüsselt.
- Unseal-Keys verlieren: Vault lässt sich nicht mehr entsperren.
- Zu offene Policies: Jeder darf alles lesen.
- Fehlende Backups: Vault-Daten müssen gesichert werden.
Weiterführende Links und Infos
- BotServ.de Secret-Management
- BotServ.de Umgebungsvariablen
- BotServ.de Secret Rotation
- BotServ.de API-Schlüssel sicher verwalten
FAQ: HashiCorp Vault lokal
Ist Vault für ein kleines Homelab zu viel?
Oft ja. Für wenige Secrets reichen .env-Dateien oder Infisical. Vault lohnt sich bei vielen Agenten und dynamischen Credentials.
Kann ich Vault ohne Docker installieren? Ja, es gibt Binaries für Linux, macOS und Windows.
Was passiert bei Datenverlust? Im Dev-Modus gehen alle Daten bei Neustart verloren. Im produktiven Modus müssen Backups und Unseal-Keys vorhanden sein.
Wie sicher ist Vault? Sehr sicher, wenn TLS, starke Authentifizierung und gute Policies genutzt werden.
Kann Vault Secrets automatisch rotieren? Ja, besonders bei dynamischen Datenbank-Credentials und einigen Cloud-Providern.
Quellen und weiterführende Literatur
- HashiCorp Vault Docs: https://developer.hashicorp.com/vault/docs
- Vault Docker Image: https://hub.docker.com/r/hashicorp/vault/
- Vault Learn: https://developer.hashicorp.com/vault/tutorials
Zusammenfassung: HashiCorp Vault für lokale KI
HashiCorp Vault ist ein leistungsfähiger Secret-Manager, der auch in lokalen KI-Setups wertvoll ist. Mit Docker lässt es sich schnell testen, für den dauerhaften Betrieb braucht es aber TLS, Backups, Unseal-Keys und sorgfältige Policies. Besonders bei vielen API-Keys, Agenten und Datenbanken zahlt sich Vault durch zentrale Verwaltung, Audit-Logs und dynamische Credentials aus. Wer die Komplexität beherrscht, bekommt ein professionelles Geheimnismanagement im eigenen Netzwerk.


