Ejercicio: Protección de una aplicación de Java desde la perspectiva de un desarrollador de Java
En esta unidad, configurará la aplicación de Spring Boot existente para usar los secretos almacenados en Azure Key Vault.
Tendrá el rol de desarrollador de Java, que configurará el proyecto para leer esos secretos.
Configuración del proyecto de Java
La aplicación de inicio Azure Spring Boot para Key Vault automatiza el uso del SDK de Java de Key Vault para los desarrolladores de Spring Boot.
En la sección anterior, se han agregado dos variables de entorno mediante la CLI de Azure: AZURE_KEYVAULT_ENABLED
y AZURE_KEYVAULT_URI
.
Spring Boot lee esas variables de entorno y las usa para autenticarse en Azure Key Vault, mediante del SDK de Java para Key Vault subyacente.
A fin de agregar compatibilidad con la aplicación de inicio Azure Spring Boot para Key Vault, agregue la dependencia siguiente en el archivo pom.xml
de la aplicación:
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>azure-spring-boot-starter-keyvault-secrets</artifactId>
</dependency>
Al crear el proyecto de Java, se ha codificado de forma rígida el nombre y la contraseña de la base de datos en el archivo src/main/resources/application.properties
. Asegúrese de revertirlo a esta versión, en la que se usan las variables proporcionadas por 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 ese cambio, el código fuente de la aplicación no contiene secretos y los obtiene de la instancia de Azure Key Vault que se ha configurado en la sección anterior.
Implementación de la aplicación Java en Azure
Como en la unidad anterior, para implementar la aplicación primero tendrá que empaquetarla como un archivo Jar:
./mvnw clean package
Después, impleméntela mediante la CLI de Azure. Este comando puede tardar varios minutos en ejecutarse.
az spring app deploy \
--resource-group $AZ_RESOURCE_GROUP \
--service $AZ_SPRING_CLOUD \
--name application \
--artifact-path target/*.jar
Si se producen errores, puede ver los registros de la aplicación si escribe el comando siguiente:
az spring app logs \
--resource-group $AZ_RESOURCE_GROUP \
--service $AZ_SPRING_CLOUD \
--name application
Ahora la aplicación está disponible en la nube y puede usar un comando cURL para acceder a sus datos:
curl https://$AZ_SPRING_CLOUD-application.azuremicroservices.io
Enhorabuena, ha creado correctamente una aplicación de Java de Confianza cero que usa Azure Key Vault para almacenar secretos.