HashiCorp Vault ist die Standardlösung für die Speicherung, Zugriffskontrolle und Prüfung von Geheimnissen, Passwörtern, Tokens, SSH-Schlüsseln und Zertifikaten. Im Jahr 2025 lässt sich Vault in CI/CD-Pipelines, Kubernetes-Cluster und serverlose-Plattformen integrieren und bietet ein richtlinienzentriertes Sicherheitsmodell. Für diejenigen, die die Infrastruktur leiten, ist die Entscheidung, sie einzuführen, im Wesentlichen die Entscheidung, Anmeldeinformationen aus verstreuten Konfigurationsdateien und Umgebungsvariablen zu entnehmen und sie einem einzigen Kontroll- und Prüfsystem zu unterwerfen.
Warum Vault verwenden?
Fünf Eigenschaften unterstützen den Adoptionsfall. Zentralisierung schafft einen einzigen Wahrheitspunkt für alle Geheimnisse und eliminiert verstreute Kopien. Verschlüsselung im Ruhezustand und während der Übertragung mit von Vault selbst verwalteten Schlüsseln stellt sicher, dass Daten außerhalb des autorisierten Kontexts unbrauchbar bleiben. Detaillierte Zugriffsrichtlinien steuern, wer über welchen Weg und für wie lange auf was zugreift. Autorotate generiert temporäre Anmeldeinformationen für Banken, Clouds und Dienste und verkürzt so das Offenlegungsfenster für alle Anmeldeinformationen. Und das vollständige Audit protokolliert jedes Lesen und Schreiben mit Datum, Uhrzeit und Identität, eine wesentliche Voraussetzung für die Untersuchung von Vorfällen und den Nachweis der Compliance.
Typische Architektur
Eine typische Implementierung ist in vier Elemente unterteilt. Der Vault-Server arbeitet im Hochverfügbarkeitsmodus, unterstützt durch integrierten Speicher oder Consul, sodass die Nichtverfügbarkeit des Secret Managers die von ihm abhängigen Anwendungen niemals zum Absturz bringt. Authentifizierung Methoden definieren, wie jeder Client nachweist, wer er ist, AppRole für Anwendungen, native Kubernetes-Authentifizierung für geclusterte Lasten sowie Optionen wie GitHub und TLS. Die Secrets-Engines bestimmen, wie Geheimnisse gespeichert oder generiert werden: die Schlüsselwert-Engine für statische Geheimnisse und dynamische Engines für Datenbanken, AWS, SSH und PKI. Und in HCL geschriebene Richtlinien werden auf Token oder Entitäten angewendet und übersetzen das Prinzip der geringsten Privilegien in konkrete Regeln.
Der allgemeine Ablauf ist wie folgt: Eine Anwendung authentifiziert sich beim Vault (z. B. über AppRole) und erhält ein kurzfristiges Token; Mit diesem Token lesen Sie die Ihnen zustehenden Geheimnisse, Bankzugangsdaten und Cloud-Schlüssel, immer im Rahmen Ihrer Police. Auf Kubernetes ausgeführte Lasten werden mit der nativen Methode des Clusters authentifiziert. Jede Interaktion generiert einen Prüfdatensatz, der zur Korrelation an ein SIEM weitergeleitet werden kann. Anstelle von fest codierten Anmeldeinformationen erhalten Anwendungen diese jetzt auf Anfrage mit einem Ablaufdatum und Rückverfolgbarkeit.
Konfigurieren des Tresors
In einer Testumgebung kann Vault im Entwicklungsmodus ausgeführt werden, der auf einem kurzlebigen Server mit bereits verfügbarem Root-Token und der gebrauchsfertigen Schlüsselwert-Engine ausgeführt wird. Dies ist für schnelle Experimente und niemals für die Produktion nützlich. In der Produktion erfolgt die Initialisierung bewusst, wobei der Operator-Init-Prozess die Entsiegelungsschlüssel und das anfängliche Root-Token generiert und der Speicher im Hochverfügbarkeitsmodus konfiguriert ist. Der Unterschied zwischen den beiden Modi ist im Wesentlichen der Unterschied zwischen Komfort und echter Sicherheit.
Authentifizierung über AppRole
AppRole ist die empfohlene Methode zur Authentifizierung von Anwendungen. Die Idee besteht darin, eine Rolle zu erstellen, die mit einer Richtlinie und Gültigkeitsgrenzen, der Token-Lebensdauer, der maximalen Zeit und der Gültigkeit der geheimen Kennung verknüpft ist. Die Anwendung erhält zwei Faktoren: eine RoleID, die die Rolle identifiziert, und eine dynamisch generierte SecretID, die als Nutzungsanmeldeinformation fungiert. Mit diesem Paar erhält die Anwendung ein kurzfristiges Token für den Betrieb. Durch die Trennung der beiden Faktoren können sie über unterschiedliche Kanäle verteilt werden, wodurch das Risiko einer gleichzeitigen Kompromittierung verringert wird.
Geheimnisse lesen
Nach der Authentifizierung verweist die Anwendung auf die Vault-Serveradresse und liest das Geheimnis in dem Pfad, auf den sie Zugriff hat, und empfängt beispielsweise den Satz von Konfigurationsschlüsseln, die für diesen Dienst gespeichert sind. Die Einfachheit der Lesart ist beabsichtigt: Die Komplexität konzentriert sich auf Politik und Authentifizierung, nicht auf den Konsum von Geheimnissen.
Integration mit Kubernetes
In Kubernetes ist das am häufigsten verwendete Muster der Vault Agent Injector, der Geheimnisse als Sidecar-Container einfügt. Die Konfiguration erfolgt durch Hinweise im Manifest des Pods, die angeben, dass die Injektion aktiviert ist, welche Rolle verwendet werden soll und welche Geheimnisse gemountet werden sollen. Der Injektor erstellt innerhalb des Pods temporäre Dateien mit den angeforderten Geheimnissen, die die Anwendung liest, als wären sie lokale Dateien. Der Entwickler muss keine Authentifizierungslogik in den Anwendungscode einbetten, die Plattform erledigt dies transparent.
Zugriffsrichtlinien
Richtlinien sind das Herzstück des Vault-Sicherheitsmodells. Sie sind in HCL geschrieben und verleihen bestimmten Pfaden bestimmte Fähigkeiten. Eine gut konzipierte Richtlinie für eine Anwendung gewährt beispielsweise nur Lesezugriff auf die Geheimnisse dieser App und die Möglichkeit, das Token selbst abzufragen, mehr nicht. Diese Strenge ist die praktische Umsetzung des geringsten Privilegs: Jede Identität sieht nur das, was für ihre Funktion unbedingt erforderlich ist, und jeder Zugriffsversuch außerhalb dieses Bereichs wird abgelehnt und aufgezeichnet.
Automatische Rotation der Datenbankanmeldeinformationen
Eine der wertvollsten Funktionen von Vault ist die Generierung von Bankzugangsdaten mit kurzer Gültigkeitsdauer auf Abruf. Die Verbindung zur Bank wird konfiguriert und eine Rolle definiert, die beschreibt, wie temporäre Benutzer mit Standard- und Maximallaufzeiten erstellt werden. Wenn eine Anwendung Zugriff anfordert, erstellt Vault einen Benutzer in der Bank, der für diesen Zeitraum gültig ist, und verwirft ihn, wenn er abläuft. Das Ergebnis ist, dass keine statischen Bankzugangsdaten mehr im Umlauf sind, sondern dass für jeden Zugriff ein kurzlebiger Zugangsdatensatz verwendet wird, was die Auswirkungen eines möglichen Lecks drastisch reduziert.
Überwachung und Protokollierung
Die Überwachung wird über ein Überwachungsgerät ermöglicht, das in einer Datei aufzeichnen oder an Syslog senden kann. Jeder Datensatz enthält die Anforderungskennung, Authentifizierungsdaten, den Pfad, auf den zugegriffen wurde, und etwaige Fehler. Diese Protokolle sind die Grundlage für die Untersuchung von Vorfällen und den Nachweis der Compliance. Ohne zuverlässige Prüfung wird die Zugriffskontrolle zu einem nicht überprüfbaren Versprechen.
Gute Sicherheitspraktiken
Fünf Praktiken unterstützen den sicheren Vault-Betrieb. Die erste besteht darin, gegenseitiges TLS zwischen Clients und Server zu fordern, um die Authentizität auf beiden Seiten zu gewährleisten. Die zweite besteht darin, Namespaces nach Umgebung zu trennen und so die Entwicklung von der Produktion zu isolieren. Die dritte besteht darin, die geringsten Privilegien auf alle Richtlinien anzuwenden, ohne Ausnahmen aus Bequemlichkeit. Die vierte besteht darin, den Root-Token regelmäßig zu rotieren und ihn als Anmeldeinformation mit sehr hohem Risiko zu behandeln. Und die fünfte besteht darin, konsistente Backups des Speichers zu erstellen, damit der Verlust des Geheimmanagers nicht zu einem katastrophalen Vorfall wird.
Checkliste für die Bereitstellung
Eine gut durchgeführte Bereitstellung folgt normalerweise dieser Reihenfolge: Vault im Hochverfügbarkeitsmodus installieren; TLS und Zertifikate konfigurieren; Aktivieren Sie die erforderlichen Authentifizierungsmethoden (AppRole, Kubernetes); Erstellen Sie die geheimen Engines (Schlüsselwert, Datenbank, AWS); Definieren Sie detaillierte Zugriffsrichtlinien. Aktivieren Sie das Prüfgerät. Testen Sie die automatische Rotation der Anmeldeinformationen. Dokumentieren Sie den Token-Erhalt-Ablauf. und Vault in die CI/CD-Pipeline integrieren.
Fazit
HashiCorp Vault bietet ein robustes Framework für die Verwaltung von Geheimnissen, reduziert die Angriffsfläche und erleichtert die Compliance. Durch die Einführung starker Authentifizierung, Richtlinien zur geringsten Berechtigung und vollständiger Prüfung schützt ein Unternehmen wichtige Anmeldeinformationen und automatisiert die Geheimrotation in modernen Umgebungen, wodurch die Geheimverwaltung vom blinden Fleck zur überprüfbaren Kontrolle wird.
Verwenden Sie Vault bereits in Ihrem Stack? Teilen Sie Ihre Tipps und Herausforderungen in den Kommentaren!
Lesen Sie auch
- Anwendungsarchitektur: Vollständiger Leitfaden für skalierbare Systeme
- GitOps mit ArgoCD: Deklarative Bereitstellungsautomatisierung
- Kubernetes in der Produktion: Was Ihnen niemand vor der Migration sagt
- Edge Computing-Architektur: Strategien für die verteilte Verarbeitung
- Beobachtbarkeit in verteilten Systemen: Protokolle, Metriken und Ablaufverfolgung
- Datenverschlüsselung: Wie man sie in der täglichen Entwicklung anwendet
