HashiCorp Vault als Zertifizierungsstelle nutzen
Gepostet am 24. Februar 2023 (Zuletzt geändert am 19. März 2023 )
4 Minuten • 698 Wörter
Zertifikatsverwaltung mit Vault PKI vereinfachen
HashiCorp Vault ist eine weit verbreitete Lösung für das Credential-Management, die einen sicheren, zentralen Ort bietet, um sensible Daten wie API-Schlüssel, Passwörter und Token aufzubewahren und zu verwalten. In diesem Blog-Beitrag beschreibe ich die Verwendung von HashiCorp Vault als Zertifizierungsstelle (Certification Authority, CA) erläutere, wie die Vault PKI (Public Key Infrastructure) dazu beitragen kann, den Prozess der Zertifikatsverwaltung zu vereinfachen.
HashiCorp Vault als Zertifizierungsstelle
Eine Zertifizierungsstelle (CA) ist eine vertrauenswürdige Instanz, die digitale Zertifikate ausstellt, um die Authentizität und Integrität von öffentlichen Schlüsseln in einer Public-Key-Infrastruktur zu gewährleisten. Vault kann als interne CA verwendet werden, um private Zertifikate innerhalb einer Organisation auszustellen und zu verwalten.
Vault PKI-Secrets-Engine
Die PKI-Secrets-Engine von Vault ist dafür verantwortlich, die Zertifikatsverwaltung zu erleichtern. Sie ermöglicht das Ausstellen, Verwalten und Widerrufen von X.509-Zertifikaten und automatisiert dabei viele der manuellen Prozesse, die mit herkömmlichen CAs verbunden sind.
Einrichtung von Vault als Zertifizierungsstelle
Aktivieren der PKI-Secrets-Engine: Zunächst muss die PKI-Secrets-Engine in Vault aktiviert werden. Dies kann über das Vault CLI oder die API erfolgen:
vault secrets enable pki
Root- oder Zwischenzertifikat erstellen: Zunächst muss festgelegt werden, ob Vault als Root-CA oder als Intermediate-CA agieren soll. Eine Root-CA ist die oberste Zertifizierungsstelle in einer Hierarchie, während eine Intermediate-CA von einer anderen CA signiert wird. Vault kann sowohl selbstsignierte Root-Zertifikate als auch Zwischenzertifikate erstellen, die von einer externen CA signiert werden. Es ist auch möglich mehrere PKI-Secrets-Engines zu konfigurieren, bei der eine die Root-Ca und die andere(n) die Intermediate CA(s) darstellen.
Konfigurieren von Rollen: Rollen in der PKI-Secrets-Engine in Vault definieren die Zertifikatsparameter, wie z.B. Gültigkeitsdauer, erlaubte Domänen und Schlüsselverwendung. Rollen werden verwendet, um unterschiedliche Anforderungen für verschiedene Anwendungen und Dienste abzubilden. Über Vault Policies können die Rollen Benutzern zugeordnet werden und so für jeden Benutzer individuell festgelegt werden, welche Arten von Zertifikaten dieser ausstellen darf.
Um eine neue Zertifikatsrolle zu erstellen, wird das folgende Kommando im Vault CLI verwendet:
vault write pki/roles/meine-rolle \ allowed_domains=example.com \ allow_subdomains=true \ max_ttl=72h
Die obige Anweisung erstellt eine Rolle namens
meine-rolle
mit den folgenden Parametern:allowed_domains
: Die Liste der Domänen, für die Zertifikate ausgestellt werden können. In diesem Beispiel ist dies “example.com”.allow_subdomains
: Wenn dieser Wert auf true gesetzt ist, können auch Zertifikate für Subdomänen von “example.com” ausgestellt werden.max_ttl
: Die maximale Gültigkeitsdauer für ausgestellte Zertifikate. In diesem Beispiel beträgt die maximale Gültigkeitsdauer 72 Stunden (3 Tage).Zertifikate ausstellen und verwalten: Mit Vault können nun Zertifikate ausgestellt, erneuert und widerrufen werden. Dabei können die automatisierten Prozesse von Vault genutzt werden, um die manuelle Verwaltung zu reduzieren und die Sicherheit zu erhöhen.
Um den vorhandenen CSR an Vault zu übergeben und das Zertifikat auszustellen, verwendet man den folgenden Befehl im Vault CLI:
vault write pki/sign/meine-rolle \ csr=@server.csr \ common_name=server.example.com \ ttl=24h
In diesem Befehl gilt:
pki/sign/meine-rolle
: Gibt die Rolle “meine-rolle” an, die für das Ausstellen des Zertifikats verwendet werden soll.csr
: Der Pfad zur CSR-Datei. In diesem Beispiel verwenden wir die Datei “server.csr”, die zuvor erstellt wurde.ttl
: Die gewünschte Gültigkeitsdauer des auszustellenden Zertifikats. In diesem Beispiel beträgt die Gültigkeitsdauer 24 Stunden (1 Tag).
Vorteile der Verwendung von Vault als CA
Zentrale Verwaltung: Vault bietet eine zentrale Plattform für die Verwaltung von Zertifikaten und Geheimnissen, wodurch die Komplexität reduziert und die Sicherheit verbessert wird.
Automatisierung: Vault automatisiert viele Aspekte der Zertifikatsverwaltung, einschließlich Ausstellung, Erneuerung und Widerruf, was zu einer effizienteren Verwaltung und höheren Sicherheit führt.
Zugriffskontrolle: Fein abgestimmte Zugriffskontrollen ermöglichen es, den Zugriff auf Zertifikate und Schlüssel auf Benutzer- und Anwendungsebene einzuschränken und zu überwachen.
Audit-Protokollierung: Vault protokolliert alle Aktivitäten im Zusammenhang mit der Zertifikatsverwaltung, was eine verbesserte Nachverfolgbarkeit und Compliance gewährleistet.
Skalierbarkeit: Vault ist in der Lage, mit den wachsenden Anforderungen einer Organisation zu skalieren und bietet eine hohe Verfügbarkeit und Leistung.
Integrationen: Vault lässt sich nahtlos in bestehende DevOps-Tools und -Prozesse integrieren, was die Einführung und Nutzung von Vault in der Organisation erleichtert.
Fazit
Die Verwendung von HashiCorp Vault als Zertifizierungsstelle bietet zahlreiche Vorteile. Vault PKI vereinfacht die Zertifikatsverwaltung und ermöglicht es Organisationen, den manuellen Aufwand zu reduzieren und gleichzeitig ein hohes Maß an Sicherheit zu gewährleisten. In einer Zeit, in der Datenschutz und Sicherheit von größter Bedeutung sind, ist Vault eine ausgezeichnete Lösung, um die Verwaltung von Zertifikaten und Geheimnissen effizient und sicher zu gestalten.