2025. 3. 13. 20:42ㆍSpring Microservice
🔐 HashiCorp Vault 구동하기
🌟 개요
Spring Cloud Config Server는 다양한 백엔드 저장소를 사용할 수 있습니다. 그중에서도 민감한 정보를 안전하게 관리할 수 있는 HashiCorp Vault의 일반적인 구동 방법을 알아봅니다.
📌 HashiCorp Vault란?
Vault는 암호, 인증서, API 키 등 접근을 제한해야 하는 민감한 정보(secrets)를 안전하게 저장하고 관리하는 도구입니다.
🐳 Docker를 사용한 Vault 설치
로컬 환경에서 Vault를 빠르게 테스트하기 위해 Docker를 사용합니다.
docker run -d -p 8200:8200 --name vault \
> -e 'VAULT_DEV_ROOT_TOKEN_ID=myroot' \
> -e 'VAULT_DEV_LISTEN_ADDRESS=0.0.0.0:8200' \
> hashicorp/vault
🔍 Docker 파라미터 설명
- VAULT_DEV_ROOT_TOKEN_ID: Vault 초기 루트 토큰 설정
- VAULT_DEV_LISTEN_ADDRESS: Vault 서버의 IP와 포트 설정 (기본 0.0.0.0:8200)
위 도커 커맨드 실행 결과를 도커 데스트탑에서 확인할 수 있습니다.
아래 이미지는 정상적으로 vault 도커 이미지를 도커 허브로부터 다운 받았음을 보여줍니다.
또한 정상적으로 컨테이너에서 vault 서버가 실행되었음을 알 수 있습니다.
🖥️ Vault UI를 통한 Secret 관리
Vault는 편리한 웹 UI를 제공합니다.
🔐 Vault UI 로그인
브라우저에서 다음 주소로 접속합니다.
http://localhost:8200/
- 로그인 토큰: Docker 실행 시 설정한 myroot를 입력합니다.
✨ Secret Engine 생성
🔖secret의 View를 선택
🔖Create secret를 선택
🔖secret 생성
- secret 경로(pat)에 licensing-service를 입력합니다
- 원하는 키-값 쌍을 입력하고 저장합니다.( 예: license.vault.property = Welcome to Vault)
- Save 버튼을 선택하여 저장합니다.
🔖secret 확인
🚩 Vault 연동 테스트
🔖vault 커맨드 확인
위 이미지의 vault 커맨드를 docker desktop에서 실행하기 위해서는 vault의 address 설정 부분을 변경해야 합니다.
Vault의 address와 token 값을 환경변수로 설정한 후, 해당 vault 커맨드를 실행하여 다음과 같은 커맨드 실행 결과 출력을 확인할 수 있습니다.
🔖vault restful api 확인
포스트맨을 통해 http://localhost:8200/v1/secret/data/licensing-service request를 vault 서버에게 전송합니다.
(Header에 X-Vault-Token을 설정합니다)
정상적으로 수행되었을 때 아래 이지미처럼 Welcome to Vault 텍스트를 json 데이터에서 확인할 수 있습니다
🎯 Summary
이 글에서는 Vault 서버를 Docker를 통해 컨테이너에서 실행해 보았습니다. 🚀
✅ Docker로 손쉽게 Vault 서버 실행
✅ Vault 커맨드와 Restful API를 통해 Vault 서버 테스트
'Spring Microservice' 카테고리의 다른 글
Spring Microservices in Action Chapter05 프로젝트 종합 테스트 (0) | 2025.03.13 |
---|---|
docker compose 파일 분석 및 실행 (0) | 2025.03.13 |
Spring Boot 기반 Licensing Service 프로젝트 분석 (1) | 2025.03.13 |
Configserver 서버 프로젝트 (0) | 2025.03.13 |
Spring Microservices in Action Chapter05 프로젝트 (0) | 2025.03.13 |