리눅스
우분투에서 HashiCorp Vault를 설치하고 서버 모드로 설정하는 방법
변군이글루
2024. 11. 15. 14:12
반응형
우분투에서 HashiCorp Vault를 설치하고 서버 모드로 설정하는 방법
1. Vault 설치
HashiCorp GPG 키 다운로드
curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
HashiCorp 리포지토리 추가
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
패키지 목록 업데이트
sudo apt-get update
Vault 설치
sudo apt-get install -y vault
설치 확인
vault version
2. Vault 서버 모드 설정
설정 파일 디렉터리 생성
sudo mkdir -p /etc/vault.d
설정 파일 작성
sudo tee /etc/vault.d/vault.hcl > /dev/null <<EOF
# UI 활성화
ui = true
# Vault의 데이터 저장 위치 설정 (파일 백엔드 사용)
storage "file" {
path = "/opt/vault/data"
}
# Vault의 리스닝 주소 설정 (0.0.0.0:8200으로 설정)
listener "tcp" {
address = "0.0.0.0:8200"
tls_disable = 1
}
# Vault의 API 주소 설정
api_addr = "http://127.0.0.1:8200"
EOF
Vault 서비스 시작 및 확인
sudo systemctl enable --now vault
Vault 서비스 재시작
sudo systemctl restart vault
Vault 서비스 상태 확인
sudo systemctl status vault
Vault 서비스 로그 확인
sudo journalctl -xeu vault
sudo journalctl -u vault -b
3. Vault 초기화 및 언시일
Vault를 처음 실행하면 초기화가 필요합니다. Vault를 초기화하면 Unseal Key와 Root Token이 생성됩니다.
Vault 초기화
- Unseal Key 5개와 Root Token 1개가 출력됩니다. 이 키와 토큰은 안전한 곳에 보관해야 합니다.
vault operator init | tee vault_init_$(date +"%Y%m%d-%H%M%S").txt
Unseal Key 1: t74G0s1zP2OPY9bRPtd+M/xbbJJkeS7AKMrlwOqluMC5
Unseal Key 2: 3C02v26/0QKvr5L2/5po+LMbDeHNHA3zDFt9BEHKhnY2
Unseal Key 3: f+H5rZLF6kNEzh7vQlWePar1MZC9mpmbfiQN7iQ/Ab3q
Unseal Key 4: E4vDkIJxnpg6+yZ+KA9b7QAy5Vuq1cvpoPNyNyY3a67t
Unseal Key 5: eLU6M+uOKLrOat8Go4TR8T0YS3Y89WYUAwsQYTVG/as6
Initial Root Token: hvs.YgdjykLHDpqdg4CbPzrP7P7K
Vault initialized with 5 key shares and a key threshold of 3. Please securely
distribute the key shares printed above. When the Vault is re-sealed,
restarted, or stopped, you must supply at least 3 of these keys to unseal it
before it can start servicing requests.
Vault does not store the generated root key. Without at least 3 keys to
reconstruct the root key, Vault will remain permanently sealed!
It is possible to generate new unseal keys, provided you have a quorum of
existing unseal keys shares. See "vault operator rekey" for more information.
Vault 언시일
- Vault는 초기화 후 sealed 상태로 시작됩니다. 이를 해제하기 위해 Unseal Key를 사용하여 언시일합니다
vault operator unseal
vault operator unseal <unseal_key_1>
vault operator unseal <unseal_key_2>
vault operator unseal <unseal_key_3>
$ vault operator unseal f+H5rZLF6kNEzh7vQlWePar1MZC9mpmbfiQN7iQ/Ab3q
Key Value
--- -----
Seal Type shamir
Initialized true
Sealed false
Total Shares 5
Threshold 3
Version 1.18.1
Build Date 2024-10-29T14:21:31Z
Storage Type file
Cluster Name vault-cluster-a0cd4085
Cluster ID aa07d741-eed5-7aff-d5ab-5bb7a0942408
HA Enabled false
Vault 상태 확인
vault status
Key Value
--- -----
Seal Type shamir
Initialized true
Sealed false
Total Shares 5
Threshold 3
Version 1.18.1
Build Date 2024-10-29T14:21:31Z
Storage Type file
Cluster Name vault-cluster-a0cd4085
Cluster ID aa07d741-eed5-7aff-d5ab-5bb7a0942408
HA Enabled false
4. Vault 웹 UI 접속
Vault의 웹 UI에 접속할 수 있습니다.(ui = true 옵션 사용)
http://192.168.0.141:8200
5. Vault 로그인
초기화 시 발급된 Root Token을 사용하여 Vault에 로그인합니다.
vault login <root_token>
Vault 서버 주소와 인증 토큰 설정
export VAULT_ADDR="http://127.0.0.1:8200"
export VAULT_TOKEN="hvs.YgdjykLHDpqdg4CbPzrP7P7K"
Vault 로그인
vault login "$VAULT_TOKEN"
Vault 서버 상태 확인
vault status
웹 UI도 활성화하여 관리가 편리하게 진행됩니다. Vault는 강력한 보안 솔루션으로, 추가적으로 필요한 시크릿 엔진을 활성화하거나 정책을 설정하여 사용하면 됩니다
728x90
반응형