Vault는 HashiCorp사의 보안 비밀 관리 및 데이터 보호 솔루션으로, 암호, API 토큰, 데이터 등을 안전하게 저장하고 액세스 제어를 제공하여 애플리케이션과 시스템의 보안을 강화하는 애플리케이션입니다. 이번 포스팅에서는 Vault를 설치하여 dev 서버를 구축해보고, 간단한 예제를 진행해보겠습니다.
wget https://releases.hashicorp.com/vault/1.14.1/vault_1.14.1_linux_amd64.zip
https://releases.hashicorp.com/vault/ 에 들어가시면 사용 가능한 버전을 확인하실 수 있습니다. 이용하시는 환경에 맞춰서 설치하시면 됩니다.
unzip vault_1.14.1_linux_amd64.zip
바이너리 파일의 압축을 해제합니다.
sudo mv <Vault 바이너리 경로> /usr/local/bin/
전역에서 Vault를 사용하기 위해 바이너리 파일을 /usr/local/bin/
로 이동합니다.
vault version
Vault v1.14.1 (bf23fe8636b04d554c0fa35a756c75c2f59026c0), built 2023-07-21T10:15:14Z
Vault가 제대로 설치되었는지 확인합니다.
vault server -dev
WARNING! dev mode is enabled! In this mode, Vault runs entirely in-memory
and starts unsealed with a single unseal key. The root token is already
authenticated to the CLI, so you can immediately begin using Vault.
You may need to set the following environment variables:
$ export VAULT_ADDR='http://127.0.0.1:8200'
The unseal key and root token are displayed below in case you want to
seal/unseal the Vault or re-authenticate.
Unseal Key: MzvB5fgN1mQbcvnDqmu6gPL3U9kOU8hkg8F4EjY5guM=
Root Token: hvs.LEUy11nqVqbOaWH3kRvw4S4S
Development mode should NOT be used in production installations!
dev 서버를 구축하면 위와 같은 결과와 함께 서버가 가동됩니다. Output에 출력된 VAULT_ADDR
, Unseal Key
, Root Token
을 이용하여 Vault를 사용할 수 있습니다.
VAULT_ADDR
: Vault 서버의 주소를 지정하는 값으로, 클라이언트가 Vault 서버와 통신할 때 사용되는 서버의 URL입니다.
Unseal Key
: Vault의 암호화된 보안 저장소를 해제하는 데 사용되는 키로, Vault 서버의 초기 설정 및 운영 중에 필요한 중요한 보안 요소입니다.
Root Token
: Vault 서버의 최상위 권한을 가지는 토큰으로, 모든 작업과 정책 변경을 제어하는 주요 권한을 가지고 있습니다.
dev 서버에 접속하기 위해 환경변수를 등록합니다.
export VAULT_ADDR=http://127.0.0.1:8200
dev 서버가 잘 가동되고 있는지 확인합니다.
vault status
Key Value
--- -----
Seal Type shamir
Initialized true
Sealed false
Total Shares 1
Threshold 1
Version 1.14.1+ent
Build Date 2023-07-21T23:04:42Z
Storage Type inmem
Cluster Name vault-cluster-5845e9d3
Cluster ID d0ea96b0-c1f7-0ca5-c124-9ba081af53ed
HA Enabled false
기본적으로 Vault 서버를 구축하면 Sealed
의 값이 true
로 출력되지만, dev 서버는 구축과 동시에 Unseal이 진행되기 때문에 Sealed
의 값이 false
로 출력됩니다.
kv 엔진을 활성화 합니다.
vault secrets enable kv
kv 엔진은 Key-Value 엔진의 약어로, 데이터를 키와 값의 형식으로 안전하게 저장하고 관리하는 기능을 제공합니다. Vault에서는 kv 엔진은 버전 1과 버전 2로 나누어지며, 각 버전은 데이터 저장 및 버전 관리 방식에 차이를 가집니다.
버전 1
: 간단한 키-값 쌍을 관리하며, 특정 경로에 데이터를 저장하고 검색하는 데 사용됩니다. 간단하기 때문에 가볍고 빠릅니다.
버전 2
: 구성 가능한 버전 수를 유지할 수 있습니다. 이전 버전의 메타데이터 및 데이터를 검색할 수 있으며, 버전을 삭제해도 영구 삭제 작업을 수행하지 않으면 다시 복구할 수 있습니다. 삭제
, 삭제 취소
, 영구 삭제
라는 구체적으로 작업할 수 있기 때문에 권한을 적절히 지정하여 사용할 수 있습니다.
vault kv put -mount=kv test hello=bye
test
라는 이름으로 데이터를 삽입합니다.
vault kv get -mount=kv test
==== Data ====
Key Value
--- -----
hello bye
test
에 저장되어있는 데이터가 제대로 출력 되었음을 확인할 수 있습니다.
공감하며 읽었습니다. 좋은 글 감사드립니다.