- systemd 서비스 사용하여 vault 서버 구축
- Vault 실 서버에 사용할 도메인 및 인증서 필요
- VAult 관련 참고 URL : https://www.vaultproject.io/docs
Valut 설치 및 systemd로 서비스 관리
1. Vault 설치 및 패키지 버전 확인
$ yum install -y yum-utils
$ yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
$ yum -y install vault
2. 설치한 vault 패키지 버전 확인
$ vault version
Vault v1.9.3 (7dbdd57243a0d8d9d9e07cd01eb657369f8e1b8a)
3. Vault 서비스를 systemd로 관리
$ vi /etc/systemd/system/vault.service
[Unit]
Description=Vault secret store
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
ExecStart=/usr/bin/vault server -config=/vault/config/vault-config.hcl
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
Vault 서버 실행
- vault를 다운받게 되면 기본적으로 /opt/vault/ 디렉토리 아래에 있는 data 디렉토리와 tls 디렉토리 생성
- data 디렉토리는 Vault 데이터가 저장되는 공간
- tls 디렉토리는 Vault의 https를 사용하기 위한 인증서 키가 있는 공간 → https를 사용할 인증서 설치 필요
- /vault/ 디렉토리 data 디렉토리와 tls 디렉토리 복사 필요
1. Vault config 적용 → https://[Vault 서버 도메인]:8200
Vault Server는 configuration file을 통해서 configuration을 얻음.
vault-config.hcl 이름을 가진 configuration 파일을 통해서 Vault Server에서 사용할 configuration 확인 가능
기본 Vault 서버의 API를 사용하는 주소를 설정 → VAULT_ADDR=’https://[Vault 서버 도메인]:8200’
vault-config.hcl을 생성하기 윈한 내용 참고 URL : https://www.vaultproject.io/docs/configuration
$ mkdir /vault $ cp -r /opt/vault/* /vault/ $ ls /vault/ data tls $ mkdir /vault/config/ # vault-config를 설정할 hcl 생성 $ vi /vault/config/vault-config.hcl # ui 사용 허가 ui = true # Vault 데이터가 저장되는 스토리지 백엔드를 구성 storage "file" { path = "/vault/data" } # API 서버의 IP와 PORT 선언 api_addr = "https://[Vault 서버 도메인]:8200" # HTTP listener -> HTTP 사용 X #listener "tcp" { # address = "0.0.0.0:8200" # tls_disable = 1 #} # HTTPS listener -> HTTPS 사용 listener "tcp" { address = "0.0.0.0:8200" tls_cert_file = "/vault/tls/tls.crt" tls_key_file = "/vault/tls/tls.key" } # 기본 VAULT_ADDR은 "https://127.0.0.1:8200"으로 되어있기에 vault 서버의 API를 사용하는 주소를 설정 # VAULT_ADDR='https://[Vault 서버 도메인]:8200' $ export VAULT_ADDR='https://[Vault 서버 도메인]:8200' $ echo -e "export VAULT_ADDR='https://[Vault 서버 도메인]:8200'" >> /root/.bashrc $ echo $VAULT_ADDR https://[Vault 서버 도메인]:8200
2. vault.service를 재시작하여 설정 적용
$ systemctl daemon-reload
$ systemctl start vault.service
$ systemctl status vault
● vault.service - Vault secret store
Loaded: loaded (/etc/systemd/system/vault.service; disabled; vendor preset: disabled)
Active: active (running) since Sun 2022-02-27 16:42:28 KST; 24s ago
Main PID: 14832 (vault)
CGroup: /system.slice/vault.service
└─14832 /usr/bin/vault server -config=/vault/config/vault-config.hcl
3. config 설정을 적용한 vault 서버가 정상적으로 실행되는 지 확인 → API
# jq 패키지 설치
$ yum install -y jq
# 외부에서 https://[Vault 서버 도메인]:8200 도메인 요청하여 vault server에게 API 성공 확인
$ curl https://[Vault 서버 도메인]:8200/v1/sys/seal-status | jq
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 168 100 168 0 0 29 0 0:00:05 0:00:05 --:--:-- 40
{
"type": "shamir",
"initialized": false,
"sealed": true,
"t": 0,
"n": 0,
"progress": 0,
"nonce": "",
"version": "1.9.3",
"migration": false,
"recovery_seal": false,
"storage_type": "file"
}
4. config 설정을 적용한 vault 서버에 status 확인
# vault 서버에서 vault status 명령어 확인
$ vault status
Key Value
--- -----
Seal Type shamir
Initialized false
Sealed true
Total Shares 0
Threshold 0
Unseal Progress 0/0
Unseal Nonce n/a
Version 1.9.3
Storage Type file
HA Enabled false
Vault UI 웹페이지 Open
- https://[Vault 서버 도메인]:8200으로 접속
- 아직 Unseal을 하지 않았기 때문에 접근은 불가능 → unseal을 하면 웹 페이지 안에 접근 가능
'Opensource(오픈 소스) > Vault' 카테고리의 다른 글
Vault audit 로그를 활성화 (0) | 2022.07.10 |
---|---|
unseal된 vault 서버에 로그인 (0) | 2022.07.10 |
Vault 서버 Seal(봉인)/Unseal(봉인 해제) (0) | 2022.07.10 |
Valut dev 설치 → 테스트 서버 설치 (0) | 2022.07.10 |
Vault란 (0) | 2022.07.10 |