HashiCorp Vault auf Raspberry PI mit Kali per Java zugreifen – Wie? (Teil 1)

Auf dem Raspberry Pi Zero 2 W wollte ich mal einen HashiCorp Vault installieren. Ich habe dazu ein Kali 32-Bit System verwendet, aber es läuft auch analog auf anderen Systemen.

Ziel ist es per Java und AppRole Workflow auf den Vault mit diesem Workflow zuzugreifen:

Hier die Schritte im Überblick die gezeigt werden:

Teil 1:
HashiCorp Vault laden und installieren
-User einrichten
-Vault in vault.hcl einrichten
-Quicktest
-Zertifikate für https ergänzen
-Systemservice erstellen
-Zugriff auf Vault CLI Api
-einen non root token einrichten
-Cubbyhole Secrets Engine lesen und schreiben

Teil 2:
-Vault Rollen und Rechte einrichten
-Java Zugriff mit Demo App

So jetzt läuft der Vault, und wir können über die GUI per https zugreifen mit (IP anpassen): https://7.7.7.93:8200

Nun wollen wir von der Kommandozeile aus auf die Vault CLI zugreifen. Dazu müssen wir einmalig die Adresse setzen, z.B.

So sieht der Cubbyhole-Token in der Gui aus:

Cubbyhole ist übrigens eine spezielle Secrets Engine in HashiCorp Vault, die flüchtigen, privaten Speicher pro Token bereitstellt. Jeder Token erhält seinen eigenen, komplett isolierten und nur für diesen Token zugänglichen Speicherplatz – vergleichbar mit eigenen kleinen Fächern (Cubbies) in einem Kindergarten.

Eigenschaften von Cubbyhole

– Isolation: Kein anderer Token (auch nicht der Root-Token) kann auf die Daten eines anderen Cubbyhole zugreifen.

– Lebensdauer: Sobald ein Token verfällt oder widerrufen wird, wird dessen Cubbyhole und alle darin gespeicherten Daten gelöscht.

– Keine Versionierung: Anders als die KV-Engine gibt es keine Versionen oder TTLs für die gespeicherten Daten; Cubbyhole existiert nur solange wie das Token.

– Standardmäßig aktiv: Die Cubbyhole-Engine ist von Beginn an aktiv und kann weder entfernt, verschoben noch mehrfach aktiviert werden.

Hauptanwendungsfälle

– One-Time-Secrets: Sicheres Übermitteln von einmaligen Secrets, z. B. Initialisierungstoken an Applikationen.

– Response Wrapping: Temporäre Speicherung geheimer Daten über einen sogenannten Wrapping-Token, der die Daten an Empfänger weitergibt, ohne die Werte selbst preiszugeben.

Cubbyhole ist also ein temporärer, token-gebundener Speicher, der garantiert, dass sensible Daten nur dem berechtigten Token-Inhaber und für die Lebensdauer des Tokens zur Verfügung stehen.

So, nun kommt der Zugriff über Java auf den Vault, aber das im Teil 2.