Упражнение. Защита приложения Java с точки зрения разработчика Java

Завершено

В этом уроке вы настроите существующее приложение Spring Boot для использования секретов, хранящихся в Azure Key Vault.

Вы принимаете роль разработчика Java, который настраивает свой проект для чтения этих секретов.

Настройка проекта Java

Начальный пакет Azure Spring Boot для Key Vault автоматизирует использование пакета SDK Java для Key Vault для разработчиков Spring Boot.

В предыдущем разделе мы добавили две переменные среды с помощью Azure CLI: AZURE_KEYVAULT_ENABLED и AZURE_KEYVAULT_URI. Spring Boot считывает эти переменные среды и использует их для проверки подлинности в Azure Key Vault, используя пакет SDK Java для Key Vault.

Чтобы добавить поддержку начального пакета Azure Spring Boot для Key Vault, добавьте следующую зависимость в файл pom.xml приложения:

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

Когда мы создавали проект Java, мы жестко закодировали имя базы данных и пароль в файле src/main/resources/application.properties. Не забудьте вернуть его к этой версии, которая использует переменные, предоставляемые 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

С этим изменением исходный код приложения не содержит секретов, и он получает их из экземпляра Azure Key Vault, который мы настроили в предыдущем разделе.

Развертывание приложения Java в Azure

Как и в предыдущем уроке, чтобы развернуть приложение, сначала необходимо упаковать его в виде JAR-файла:

./mvnw clean package

Затем разверните его с помощью Azure CLI. Эта команда может занять несколько минут.

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

Если возникают сбои, вы можете просмотреть журналы приложений, введя следующую команду:

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

Теперь приложение доступно в облаке, и вы можете получить доступ к своим данным с помощью команды cURL:

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

Поздравляем, вы успешно создали приложение Java нулевого доверия, которое использует Azure Key Vault для хранения секретов.