본문 바로가기

프로젝트 & TIL/일별 공부 기록 (백엔드 스쿨)

94일차 - Hashicorp Vault

Hashicorp Vault

https://www.vaultproject.io/

 

Vault by HashiCorp

Vault secures, stores, and tightly controls access to tokens, passwords, certificates, API keys, and other secrets in modern computing.

www.vaultproject.io

- 민감 정보의 저장, 관리

- 민감 정보에 접근하는 인증/권한 관리

- 데이터 암호화

- 오픈 소스 : https://github.com/hashicorp/vault 

 

GitHub - hashicorp/vault: A tool for secrets management, encryption as a service, and privileged access management

A tool for secrets management, encryption as a service, and privileged access management - GitHub - hashicorp/vault: A tool for secrets management, encryption as a service, and privileged access ma...

github.com

 

장점

- 프로젝트와 민감 정보가 완전히 분리됨

- 보안성 강화

- 민감 정보에 접근하고 고객과 공유할 수 있는 다양한 방법을 사용할 수 있음

- 민감 정보에 접근할 수 있는 권한 관리 가능

 

단점

- 설계에 따라 Vault 서버가 죽으면 인증이 안 되어 서비스가 중단되는 문제 발생(SPoF)

- 초기 러닝 커브

- Vault 서버를 별도 운영해야 함


build.gradle

...

ext {
  set('springCloudVersion', "2022.0.3")
}

dependencies {

  ...
  
  implementation 'org.springframework.cloud:spring-cloud-starter-vault-config'
}

dependencyManagement {
  imports {
    mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
  }
}

...

 

application.properties

spring.config.import=vault://, ...

spring.application.name={name}
spring.cloud.vault.scheme=http
spring.cloud.vault.authentication=token
spring.cloud.vault.token={token}

UI 제공 화면

localhost:8200/ui 접속(vault의 기본 포트는 8200)

- Create secret