Exercício – Proteger um aplicativo Java da perspectiva de um desenvolvedor de Java

Concluído

Nesta unidade, você vai configurar o aplicativo Spring Boot existente para usar os segredos armazenados no Azure Key Vault.

Você assume a função de um desenvolvedor Java, que configura o projeto para ler esses segredos.

Como configurar o projeto Java

O kit de início do Azure Spring Boot para Key Vault automatiza o uso do SDK do Java para Key Vault para desenvolvedores do Spring Boot.

Na seção anterior, adicionamos duas variáveis de ambiente usando a CLI do Azure: AZURE_KEYVAULT_ENABLED e AZURE_KEYVAULT_URI. O Spring Boot lê essas variáveis de ambiente e as usa para autenticação no Azure Key Vault, com o uso subjacente no SDK do Java para Key Vault.

Para adicionar suporte ao kit de início do Azure Spring Boot para Key Vault, adicione a seguinte dependência ao arquivo pom.xml do aplicativo:

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

Quando criamos o projeto Java, embutimos em código o nome do banco de dados e a senha no arquivo src/main/resources/application.properties. Não se esqueça de revertê-lo para esta versão, que usa as variáveis fornecidas pelo 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

Com essa alteração, o código-fonte do aplicativo não contém nenhum segredo e obtém os segredos da instância do Azure Key Vault que configuramos na seção anterior.

Implantar o aplicativo Java no Azure

Como na unidade anterior, para implantar o aplicativo, primeiro, você precisará empacotá-lo como um arquivo JAR:

./mvnw clean package

Em seguida, implante-o usando a CLI do Azure. Esse comando pode levar vários minutos para ser executado.

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

Se você encontrar falhas, poderá analisar os logs do aplicativo digitando o seguinte comando:

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

O aplicativo agora está disponível na nuvem e você pode acessar os dados dele usando um comando do cURL:

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

Parabéns! Você criou com sucesso um aplicativo Java de Confiança Zero que usa o Azure Key Vault para armazenar os segredos.