Übung: Schützen einer Java-Anwendung aus der Perspektive von Java-Entwickler*innen
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.