볼트(Valut)를 사용한 정보 관리하기
들어가며
개발을 하다보면 properties,yml파일에 개인정보등이나 비밀번호 등을 작성한다. 하지만 이런 비밀정보가 그대로 노출되어 악의적인 곳에 사용할수있다. 그래서 볼트를 통해서 정보를 관리하는 방법을 알아보자.
프로젝트환경
springboot -version : 2.6.3
bulid : gradlejava -version : 11
IDE : IntelliJ _Ultimate
볼트 다운로드 및 실행
자신의 운영체제의 맞게 다운로드를 한다.(windows 기준으로 작성)
다운 받은 zip 파일을 압축하여 자신의 사용하고자하는 위치에 두고 저장을한다.
그후에 Vault.conf 파일을 작성하여 추가한다.
Vault.conf
backend "inmem" {
}
listener "tcp" {
address = "0.0.0.0:8200"
tls_disable = 1
}
disable_mlock = true
실행하기
cmd창에서 볼트를 파일이 위치한 디렉토리로 이동하여 아래 명령어를 실행
vault server -config Vault.conf
아래와 같이 나오면 성공!
새로운 cmd 창을 열어 다음과같은 환경변수를 작성한다.
set VAULT_ADDR=http://localhost:8200
기본적으로 볼트는 사용 할수 없게 봉인되어 있다. 봉인을 해제하려면 다음과 같은 명령어를 작성해서 키를 생성한다.
vault operator init
사진처럼 key5개와 Root Token이 나와있다.
vault status 실행해보면
Unseal Nonce보면 봉인을 해제하려면 3개의 비밀키가 필요하다고 나와있다.
비밀키를 통해 봉인을 해제하는 방법은
vault operator unseal <비밀키>
비밀키 5개중 아무거나3개를 입력하고
set VAULT_TOKEN=<루트 토큰>
루트토큰을 입력하여 봉인을 해제하면
봉인이 해제되었다고 로그가 나오게된다. 이제 볼트를 사용할 준비가 되었다.
이제 볼트 비밀 엔진을 활성화 해야한다.
vault secrets enable -path=secret kv
vault write secret/[사용할 폴더명] [사용할 비밀번호 이름]=[실제 비밀번호]
ex) vault write secret/test mysqlPassword=1234
※ 현재 설정한 방식은 메모리방식이여서 실행중은 볼트 터미널창을 닫게되면 설정한 정보들이 초기화되서 다시 시작해야한다. 서버에 적용하고싶다면 공식 문서를 참고해서 하면 충분히 할수 있다. ※
스프링부트 설정
볼트의 의존성을 추가(gradle)
implementation 'org.springframework.cloud:spring-cloud-starter-vault-config'
properties 파일에 볼트 설정 추가
spring.cloud.vault.token=[root Token 작성]
spring.cloud.vault.authentication=token
spring.cloud.vault.host=localhost
spring.cloud.vault.port=8200
spring.config.import=vault://secret/[만든 폴더명]
spring.cloud.vault.scheme=http
spring.application.name=[사용할 비밀번호 이름]
//datasource 사용한다면
spring.datasource.password=${password}
설정을 추가하고 실행하면 정상적으로 작동하는것을 볼수있다.
참고자료
'Spring > SpringBoot' 카테고리의 다른 글
[SpringBoot] SSE를 이용한 실시간 알림 구현하기! (0) | 2024.06.13 |
---|---|
[SpringBoot] Custom @Vailid 어노테이션 만들기 (0) | 2024.05.10 |
[Spring-Boot] Srpingdoc OpenApi 스웨거(Swagger) 사용하기 (0) | 2024.04.24 |
[SpringBoot] JAR(JAVA Archive) 파일 생성 하는법 (0) | 2023.12.08 |
[Spring Boot] RESTfull API 버저닝 (0) | 2023.12.06 |