연습 - 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_ENABLED
및 AZURE_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 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
축하합니다. Azure Key Vault를 사용하여 비밀을 저장하는 제로 트러스트 Java 애플리케이션을 성공적으로 만들었습니다.