Esercizio - Proteggere un'applicazione Java dal punto di vista dello sviluppatore Java

Completato

In questa unità si configurerà l'applicazione Spring Boot esistente per usare i segreti archiviati in Azure Key Vault.

Si assumerà il ruolo di uno sviluppatore Java, che configurerà il progetto per leggere tali segreti.

Configurazione del progetto Java

L'avvio di Azure Spring Boot per Key Vault automatizza l'utilizzo dell'SDK Java Key Vault per gli sviluppatori Spring Boot.

Nella sezione precedente sono state aggiunte due variabili di ambiente usando l'interfaccia della riga di comando di Azure: AZURE_KEYVAULT_ENABLED e AZURE_KEYVAULT_URI. Spring Boot legge queste variabili di ambiente e le usa per eseguire l'autenticazione in Azure Key Vault usando Java SDK per Key Vault.

Per aggiungere il supporto per l'avvio di Azure Spring Boot per Key Vault, aggiungere la dipendenza seguente nel file dell'applicazionepom.xml:

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

Quando è stato creato il progetto Java, il nome e la password del database sono stati hardcoded nel file src/main/resources/application.properties. Assicurarsi di ripristinare questa versione, che usa le variabili fornite da Azure Key Vault:

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

Con questa modifica, il codice sorgente dell'applicazione non contiene segreti e li otterrà dall'istanza di Azure Key Vault configurata nella sezione precedente.

Distribuire l'applicazione Java in Azure

Come nell'unità precedente, per distribuire l'applicazione è prima necessario crearne il pacchetto come file JAR:

./mvnw clean package

Distribuirla quindi usando l'interfaccia della riga di comando di Azure. L'esecuzione di questo comando può richiedere alcuni minuti.

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

Se si riscontrano errori, è possibile esaminare i log dell'applicazione digitando il comando seguente:

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

L'applicazione è ora disponibile nel cloud e sarà possibile accedere ai dati usando un comando cURL:

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

Congratulazioni, è stata creata correttamente un'applicazione Java Zero Trust che usa Azure Key Vault per archiviare i segreti.