Table of Contents
Spring Cloud Vault 연동하기
Spring Boot 버전 체크
아래 내용은 버전 2.7.4 에서 테스트되었습니다.
2.4, 2.5 버전중에 변동사항이 크기때문에 버전을 체크해야 합니다.
의존성 추가
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-configuration-processor'
implementation 'org.springframework.cloud:spring-cloud-starter-vault-config:3.1.1'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
application.yml
반드시 application.yml 에 내용을 추가해야 하고,
profile 설정 및 활성화가 되어야 합니다.
application-dev.yml 같은 파일명을 사용하면 안됩니다.
# 중요!!! 활성화된 프로파일을 지정해 주어야 한다.
spring:
config:
activate:
on-profile: "dev"
import: vault://team1/foo
spring.cloud.vault:
fail-fast: true
authentication: APPROLE
app-role:
role-id: 2067e81e-be8e-49ef-3XXXXXXXXXX
secret-id: c8d69559-77fe-359e-XXXXXXXXXXXXXX
uri: http://43.201.XXX.XXX:8200
connection-timeout: 5000
read-timeout: 15000
---
spring:
config:
activate:
on-profile: "prod"
import: vault://team1/foo
spring.cloud.vault:
fail-fast: true
authentication: APPROLE
app-role:
role-id: 2067e81e-be8e-49ef-3XXXXXXXXXX
secret-id: c8d69559-77fe-359e-XXXXXXXXXXXXXX
uri: http://43.201.XXX.XXX:8200
connection-timeout: 5000
read-timeout: 15000
데이타 가져오기
모든 설정이 이루어지면 아래처럼 환경변수에서 값을 가져오는 것과 동일한 방식으로,
vault 에서 비밀번호를 가져올 수 있습니다.
환경변수명에 중복이 있는 경우,
다른 환경변수값을 가져올 수 있다.
@RestController
@SpringBootApplication
@RequiredArgsConstructor
public class VaultTestApplication {
private final Environment env;
@RequestMapping("/")
public String home() {
System.out.println(env.getProperty("password"));
return "OK!";
}
public static void main(String[] args) {
SpringApplication.run(VaultTestApplication.class, args);
}
}