[Vault] 설치 및 dev 서버 구축 (Ubuntu)

gweowe·2023년 8월 9일
0

Vault는 HashiCorp사의 보안 비밀 관리 및 데이터 보호 솔루션으로, 암호, API 토큰, 데이터 등을 안전하게 저장하고 액세스 제어를 제공하여 애플리케이션과 시스템의 보안을 강화하는 애플리케이션입니다. 이번 포스팅에서는 Vault를 설치하여 dev 서버를 구축해보고, 간단한 예제를 진행해보겠습니다.

Vault 바이너리 파일 설치

1. 설치파일 가져오기

wget https://releases.hashicorp.com/vault/1.14.1/vault_1.14.1_linux_amd64.zip

https://releases.hashicorp.com/vault/ 에 들어가시면 사용 가능한 버전을 확인하실 수 있습니다. 이용하시는 환경에 맞춰서 설치하시면 됩니다.

2. 압축 해제 후 바이너리 파일 이동

unzip vault_1.14.1_linux_amd64.zip

바이너리 파일의 압축을 해제합니다.

sudo mv <Vault 바이너리 경로> /usr/local/bin/

전역에서 Vault를 사용하기 위해 바이너리 파일을 /usr/local/bin/로 이동합니다.

3. 설치 확인

vault version
Output :
Vault v1.14.1 (bf23fe8636b04d554c0fa35a756c75c2f59026c0), built 2023-07-21T10:15:14Z

Vault가 제대로 설치되었는지 확인합니다.

dev 서버 구축하기

1. dev 서버 구축

vault server -dev
Output :
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

2. 연결 상태 확인

dev 서버가 잘 가동되고 있는지 확인합니다.

vault status
Output :
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로 출력됩니다.

테스트

1. kv 엔진 활성화

kv 엔진을 활성화 합니다.

vault secrets enable kv

kv 엔진은 Key-Value 엔진의 약어로, 데이터를 키와 값의 형식으로 안전하게 저장하고 관리하는 기능을 제공합니다. Vault에서는 kv 엔진은 버전 1과 버전 2로 나누어지며, 각 버전은 데이터 저장 및 버전 관리 방식에 차이를 가집니다.

  • 버전 1 : 간단한 키-값 쌍을 관리하며, 특정 경로에 데이터를 저장하고 검색하는 데 사용됩니다. 간단하기 때문에 가볍고 빠릅니다.

  • 버전 2 : 구성 가능한 버전 수를 유지할 수 있습니다. 이전 버전의 메타데이터 및 데이터를 검색할 수 있으며, 버전을 삭제해도 영구 삭제 작업을 수행하지 않으면 다시 복구할 수 있습니다. 삭제, 삭제 취소, 영구 삭제라는 구체적으로 작업할 수 있기 때문에 권한을 적절히 지정하여 사용할 수 있습니다.

2. kv 엔진에 데이터 삽입

vault kv put -mount=kv test hello=bye

test라는 이름으로 데이터를 삽입합니다.

3. 확인

vault kv get -mount=kv test
Output :
==== Data ====
Key      Value
---      -----
hello    bye

test에 저장되어있는 데이터가 제대로 출력 되었음을 확인할 수 있습니다.

profile
정리하는 공간

1개의 댓글

comment-user-thumbnail
2023년 8월 9일

공감하며 읽었습니다. 좋은 글 감사드립니다.

답글 달기