Hashicorp Vault kann eingerichtet werden, um Datenbank-Passwörter bei Bedarf bereitzustellen; Jedes Passwort kann für eine bestimmte "Leasing" -Periode (z. B. 1 Stunde) verwendet werden, bevor es erneuert wird, und es kann eine maximale Nutzungsdauer eingestellt werden, nach der das Passwort verworfen und ein neues erhalten werden muss. Im Spring-Boot wird die JDBC-Verbindung beim Start der Anwendung konfiguriert, und es wird davon ausgegangen, dass das JDBC-Passwort in der Datei application.properties codiert ist (oder alternativ über Spring Cloud Config oder gleichwertig zum Startzeitpunkt der Anwendung erhalten wird). und für immer benutzt.Spring boot JDBC mit Passwort lease/renew (wie in Vault)
FRAGE: Wie kann ich einen Weg im Spring Boot implementieren, um das JDBC-Passwort durch Zugriff auf Vault zurückzusetzen, wenn ein Verbindungsversuch aufgrund eines abgelaufenen Passworts fehlschlägt?
Gibt es eine Möglichkeit festzulegen, dass eine Art von Handler aufgerufen wird, wenn die Verbindung aufgrund eines alten Passworts fehlschlägt, und sie auf einen neuen Wert zurücksetzt?
Dieses Projekt eine der Frühling Boot-Konfiguration in Vault sicher speichern können, aber es scheint nicht überhaupt das Passwort zu adressieren Leasing/erneuern Funktionalität. –
Es gibt noch keine neue Funktionalität. Das Aktualisieren von statischen Geheimnissen ist keine große Sache, aber das Aktualisieren von Datenbank-/Dienstgeheimnissen ist ein Problem. Datenbanken behandeln Benutzeränderungen auf verschiedene Arten. MySQL ist es egal, wenn Sie einen Benutzer löschen, sobald eine Verbindung hergestellt wurde, während eine DB2-Datenbank ausflippt. Ich denke, das Aktualisieren der Datenquelle/des Pools ist machbar. Sie sollten auf der sicheren Seite bleiben, indem Sie mit dem Ablauf umgehen, indem Sie Ihren Dienst von Zeit zu Zeit neu starten. Wir müssen sorgfältig prüfen, wie wir das Verfalls-/Verlängerungsfeature in einer Weise nutzen können, ohne Ihre App zu zerstören, daher haben wir noch keine Unterstützung dafür hinzugefügt. – mp911de