Ejercicio: Protección de una aplicación de Java desde la perspectiva de un desarrollador de Java

Completado

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.