Exercice - Sécuriser une application Java du point de vue d’un développeur Java
Dans cette unité, vous configurez l’application Spring Boot existante pour qu’elle utilise les secrets stockés dans Azure Key Vault.
Vous jouez le rôle d’un développeur Java, qui configure son projet pour lire ces secrets.
Configuration du projet Java
Azure Spring Boot Starter pour Key Vault automatise l’utilisation du kit SDK Java pour Key Vault pour les développeurs Spring Boot.
Dans la section précédente, nous avons ajouté deux variables d’environnement avec Azure CLI : AZURE_KEYVAULT_ENABLED et AZURE_KEYVAULT_URI.
Spring Boot lit ces variables d’environnement et les utilise pour l’authentification dans Azure Key Vault avec le SDK Java pour Key Vault.
Pour assurer la prise en charge d’Azure Spring Boot Starter pour Key Vault, ajoutez la dépendance suivante dans le fichier pom.xml de l’application :
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>azure-spring-boot-starter-keyvault-secrets</artifactId>
</dependency>
Quand nous avons créé le projet Java, nous avons codé en dur le nom et le mot de passe de la base de données dans le fichier src/main/resources/application.properties. Veillez à revenir à cette version qui utilise des variables fournies par 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
Avec ce changement, le code source de votre application ne contient aucun secret et les obtient à partir de l’instance Azure Key Vault que nous avons configurée dans la section précédente.
Déploiement de l’application Java dans Azure
Comme dans l’unité précédente, pour déployer l’application, vous devez d’abord l’inclure dans un package au format Jar :
./mvnw clean package
Ensuite, déployez-la avec Azure CLI. L’exécution de cette commande peut durer plusieurs minutes.
az spring app deploy \
--resource-group $AZ_RESOURCE_GROUP \
--service $AZ_SPRING_CLOUD \
--name application \
--artifact-path target/*.jar
Si vous rencontrez des erreurs, vous pouvez consulter les journaux de l’application en tapant la commande suivante :
az spring app logs \
--resource-group $AZ_RESOURCE_GROUP \
--service $AZ_SPRING_CLOUD \
--name application
L’application est maintenant disponible dans le cloud, et vous pouvez accéder à ses données avec une commande cURL :
curl https://$AZ_SPRING_CLOUD-application.azuremicroservices.io
Félicitations, vous avez créé une application Java Confiance Zéro qui utilise Azure Key Vault pour stocker des secrets.