티스토리 뷰

azure에서는 비밀번호 등 민감정보를 소스코드에서 제외하는 keyvault를 제공한다. 

 

해당 기능도 패키지가 변경되어 새롭게 구성해야 한다.

 

현시점 최신버전은 5.10인데, 이건 해당 시점의 최신버전을 쓰면 될 듯하다.

pom.xml

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

 

프라퍼티도 아래와 같이 변경되었다. 

spring.cloud.azure.keyvault.secret.property-source-enabled=true
spring.cloud.azure.keyvault.secret.enabled=true
spring.cloud.azure.keyvault.secret.property-sources[0].endpoint=https://mykeyvault.vault.azure.net/

spring.cloud.azure.keyvault.secret.enabled 의 경우엔 keyvault 를 비활성화/활성화시킬지 결정한다. 보통 production 환경의 db pw 등은 제거하고, dev 환경은 개발자도 사용할 수 있게 코드에 박아놓는 경우가 많아 환경별로 다르게 세팅한다.

 

spring.cloud.azure.keyvault.secret.property-source-enabled 의 경우엔 application.properties에서 키볼트를 사용할 지 말지 결정한다. 

 

가장 크게 변한 것이라면 과거 코드에선 azure.keyvault.client-key, azure.keyvault.client-id 등의 프라퍼티로 키볼트의 인증정보도 추가해야 했다. 이제 Azure의 인증방식을 활용한다. 

 

일단 개인 PC에서 작업할 때는 인증에 Azure CLI라는 것을 사용한다.

 

 

Azure CLI를 설치하는 방법

Azure CLI는 Windows, macOS 및 Linux 환경에 설치할 수 있습니다. Docker 컨테이너와 Azure Cloud Shell에서도 실행할 수 있습니다.

learn.microsoft.com

 

window의 경우 azure CLI를 설치 후, powershell을 켠 후 az login을 실행하면, 로그인 창으로 이동해 로그인을 하도록 한다.

로그인이 완료 된 후, 위 자바 코드를 실행하면, DefaultAzureCredentialBuilder에서 az login에서 로그인한 계정의 정보를 받아와 인증을 실행한다. 내부적으로는 

Azure VM이나 Azure app service에서도 인증기능을 사용하고 싶을 수 있다.

이 때는 당연히 개인계정을 사용할 수 없다. 

이때는 azure의 entra id를 이용해 구성한다. VM이나 Azure app service 등의 리소스를 azure 포탈에서 조회하면 좌측에 identity 항목이 있는 것을 볼 수 있다. 자세한 사용방법은 아래 링크를 참고한다. 

 

 

관리 ID가 지원되는 Azure 서비스 - Managed identities for Azure resources

관리 ID를 지원하는 서비스 목록

learn.microsoft.com

 

 

 

과거엔 github 저장소 등에 키볼트의 id, secret 정보가 모두 기입되어 있어 사실 keyvault를 사용하는 의미가 크게 퇴색되었다. 

이제 인증정보는 azure portal에서 관리하고, 개발자는 어느 키볼트를 사용할지만 정해주면 되기 때문에 과거보다 db pw 등의 키 관리가 더 수월해졌다. 

 

 

 

 

 

 

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함