연습 - Java 개발자 관점에서 Java 애플리케이션 보호

완료됨

이 단원에서는 Azure Key Vault에 저장된 비밀을 사용하도록 기존 Spring Boot 애플리케이션을 구성합니다.

여러분에게는 이러한 비밀을 읽도록 프로젝트를 구성하는 Java 개발자의 역할이 있습니다.

Java 프로젝트 구성

Key Vault용 Azure Spring Boot Starter는 Spring Boot 개발자를 위한 Key Vault Java SDK의 사용을 자동화합니다.

이전 섹션에서는 Azure CLI를 사용하여 두 개의 환경 변수인 AZURE_KEYVAULT_ENABLEDAZURE_KEYVAULT_URI를 추가했습니다.

이러한 환경 변수는 Spring Boot에서 읽으며, Key Vault용 Java SDK에서 Azure Key Vault의 인증을 받는 데 사용됩니다.

Key Vault용 Azure Spring Boot Starter에 대한 지원을 추가하려면 애플리케이션의 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 인스턴스에서 비밀을 가져옵니다.

Azure에 Java 애플리케이션 배포

이전 단원과 같이 애플리케이션을 배포하려면 먼저 Jar 파일로 패키지해야 합니다.

./mvnw clean package

그런 다음, Azure CLI를 사용하여 배포합니다.

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

잘못된 경우 다음 명령을 입력하여 애플리케이션 로그를 볼 수 있습니다.

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

그러면 클라우드에서 애플리케이션을 사용할 수 있으며 cURL 명령을 사용하여 해당 데이터에 액세스할 수 있습니다.

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

축하합니다. Azure Key Vault를 사용하여 비밀을 저장하는 제로 트러스트 Java 애플리케이션을 성공적으로 만들었습니다.