Spring Cloud + Hashicorp Vault Hello World-Beispiel

Blog

Die Microservices-Architektur hat mehrere Dienste, die miteinander interagieren, und externe Ressourcen wie Datenbanken. Sie benötigen außerdem Zugriff auf Benutzernamen und Passwörter, um auf diese Ressourcen zugreifen zu können. Normalerweise werden diese Anmeldeinformationen in den Konfigurationseigenschaften gespeichert. Jeder Microservice verfügt also über eine eigene Kopie der Anmeldeinformationen. Wenn sich Anmeldeinformationen ändern, müssen wir die Konfigurationen in allen Microservices aktualisieren. Wir haben zuvor eine Lösung für dieses Problem besprochen: Spring Cloud Config Nativer Server oder Spring Cloud Config Git-Server wo in der Regel gemeinsame globale Eigenschaften gespeichert sind, die sich in allen Microservices wiederholen. Das Speichern der Geheimnisse in der Konfigurationsdatei ist jedoch weiterhin ein Sicherheitsproblem. Obiger Ansatz als 2 Nachteile-



  • Kein einziger Punkt der Wahrheit
  • Sicherheitsrisiko der Offenlegung der Anmeldeinformationen

In diesem Tutorial werden Spring Cloud Config und Hashicorp Vault verwendet, um Geheimnisse zu verwalten und sensible Daten zu schützen.






Hashicorp Vault ist eine Plattform zum Sichern, Speichern und strengen Kontrollieren des Zugriffs auf Token, Passwörter, Zertifikate, Verschlüsselungsschlüssel zum Schutz sensibler Daten und anderer Geheimnisse in einer dynamischen Infrastruktur.



reagieren-native-easy-grid

Mit Vault rufen wir die Anmeldeinformationen aus dem Vault-Schlüssel-/Wertespeicher ab.



Wir werden einen einfachen Spring Boot Microservice implementieren, der Mitarbeiterdetails aus der MySql-Datenbank zurückgibt. Wir werden die Spring Boot + MySQL-Anwendung mit Spring Boot JDBC erstellen. Wir haben es schon gesehen Spring Boot MYSQL JDBC-Grundlagen in einem früheren Tutorial. In werden wir zunächst die MySql-Anmeldeinformationen in der Konfigurationsdatei speichern.






Später werden wir diese Anwendung ändern, um die MySQL-Anmeldeinformationen von HashiCorp Vault abzurufen.

Spring Boot + MySQL-Anwendung

Das Projekt wird wie folgt aussehen:

Ergänzen Sie die Spring-jdbc-Starter-Abhängigkeit .

XML

1

2

3

xsi:schemaLocation='http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd'>

4

4.0.0com.javainuse

5

boot-jdbc

6

0.0.1-SNAPSHOT

7

jarboot-jdbc

8

Demo project for Spring Boot

9

org.springframework.boot

10

spring-boot-starter-parent

elf

2.3.0.RELEASE

12

13

http://www.fox.com/activate

14

UTF-8

fünfzehn

UTF-8

16

1.8

17

18

19

org.springframework.boot

zwanzig

spring-boot-starter-web

einundzwanzig

22

2. 3

org.springframework.boot

24

spring-boot-starter-jdbc

25

26

mysql

27

mysql-connector-java

28

runtime

29

30

31

32

33

org.springframework.boot

3. 4

Vs-Code-HTML-Formatierer
spring-boot-maven-plugin

35

36

37

Geben Sie in der Datei application.properties die Datenquelleneigenschaften an

XML

1

spring.datasource.url=jdbc:mysql://localhost/bootdb?createDatabaseIfNotExist=true&autoReconnect=true&useSSL=false

2

spring.datasource.username=root

3

spring.datasource.password=root

4

spring.datasource.platform=mysql

5

spring.datasource.initialization-mode=always

Erstellen Sie die Datei schema-mysql.sql und geben Sie die Initialisierungsskripts an —

XML

1

DROP TABLE IF EXISTS employee;CREATE TABLE employee (

2

Cash-App, diese Überweisung ist fehlgeschlagen
empId VARCHAR(10) NOT NULL,

3

empName VARCHAR(100) NOT NULL

4

);INSERT INTO employee(empId,empName)values('emp001','emp1');

5

INSERT INTO employee(empId,empName)values('emp002','emp2');

6

INSERT INTO employee(empId,empName)values('emp003','emp3');

Erstellen Sie die Mitarbeiterdomänenklasse

#cloud #tutorial #frühlingsstiefel #frühlingswolke

dzone.com

Spring Cloud + Hashicorp Vault Hello World-Beispiel

Spring Cloud + Hashicorp Vault Hello World Beispiel. In diesem Frühjahrs-Cloud-Tutorial verwenden wir Hashicorp Vault, um Anmeldeinformationen für Microservices zu sichern.