Übung: Schützen einer Java-Anwendung aus der Perspektive von Java-Entwickler*innen

Abgeschlossen

In dieser Lerneinheit konfigurieren Sie die vorhandene Spring Boot-Anwendung für die Verwendung der in Azure Key Vault gespeicherten Geheimnisse.

Sie übernehmen die Rolle eines Java-Entwicklers, der sein Projekt konfiguriert, um diese geheimen Schlüssel zu lesen.

Konfigurieren des Java-Projekts

Der Azure Spring Boot-Starter für Key Vault automatisiert die Verwendung des Key Vault-Java-SDK für Spring Boot-Entwickler*innen.

Im vorherigen Abschnitt haben Sie mithilfe der Azure CLI die Umgebungsvariablen AZURE_KEYVAULT_ENABLED und AZURE_KEYVAULT_URI hinzugefügt. Spring Boot liest diese Umgebungsvariablen und verwendet sie zum Authentifizieren bei Azure Key Vault unter dem Java SDK für Key Vault.

Damit der Azure Spring Boot-Starter für Key Vault unterstützt wird, müssen Sie der Anwendungsdatei pom.xml die folgende Abhängigkeit hinzufügen:

<dependency>
  <groupId>com.azure.spring</groupId>
  <artifactId>azure-spring-boot-starter-keyvault-secrets</artifactId>
</dependency>

Als Sie das Java-Projekt erstellt haben, haben Sie den Datenbanknamen und das Kennwort in der Datei src/main/resources/application.properties hartcodiert. Machen Sie das in dieser Version rückgängig, die von Azure Key Vault bereitgestellte Variablen verwendet:

logging.level.org.springframework.jdbc.core=DEBUG

spring.datasource.url=jdbc:postgresql://${azureDatabaseName}.postgres.database.azure.com:5432/demo
spring.datasource.username=${azureDatabaseUsername}@${azureDatabaseName}
spring.datasource.password=${azureDatabasePassword}

spring.sql.init.mode=always

Durch diese Änderung enthält der Anwendungsquellcode keine Geheimnisse mehr, sondern ruft diese aus der Azure Key Vault-Instanz ab, die Sie im vorherigen Abschnitt konfiguriert haben.

Bereitstellen der Java-Anwendung in Azure

Um die Anwendung bereitzustellen, müssen Sie sie wie in der vorherigen Lerneinheit zunächst als JAR-Datei packen:

./mvnw clean package

Stellen Sie sie dann mithilfe der Azure CLI bereit. Die Ausführung dieses Befehls kann mehrere Minuten dauern.

az spring app deploy \
   --resource-group $AZ_RESOURCE_GROUP \
   --service $AZ_SPRING_CLOUD \
   --name application \
   --artifact-path target/*.jar

Wenn Fehler auftreten, können Sie sich die Anwendungsprotokolle ansehen, indem Sie den folgenden Befehl eingeben:

az spring app logs \
   --resource-group $AZ_RESOURCE_GROUP \
   --service $AZ_SPRING_CLOUD \
   --name application

Die Anwendung ist jetzt in der Cloud verfügbar, und Sie können mithilfe eines cURL-Befehls auf ihre Daten zugreifen:

curl https://$AZ_SPRING_CLOUD-application.azuremicroservices.io

Sie haben erfolgreich eine Java-Anwendung nach dem Zero-Trust-Konzept erstellt, die Azure Key Vault zum Speichern von Geheimnissen verwendet.