프로덕션 Hashicorp Vault 최소 구성

6023 단어
프로덕션 서버를 작동시키기 위해 Hashicorp Vault를 사용하는 안녕하세요.

가능한 가장 간단한 프로덕션 Vault 서버를 구성하는 방법을 찾기 위해 여기 저기 찾아 보았지만 모든 단계가 작동하는 것을 찾을 수 없었습니다.

가정



CentOS Linux 릴리스 7.9.2009(Core) 또는 동급 버전에 대한 명령줄 액세스 권한이 있고 Vault v1.8.2(aca76f63357041a43b49f3e8c11d67358496959f)가 설치되어 있다고 가정합니다.

bash PATH 변수에/usr/local/bin이 포함되어 있는지 확인하십시오.

볼트 설치




wget https://releases.hashicorp.com/vault/1.8.2/vault_1.8.2_linux_amd64.zip
unzip vault_1.8.2_linux_amd64.zip
mv vault /usr/local/bin


OpenSSL 설치



Centos 7에 있는 SSL 버전이 너무 오래되었습니다.

# CentOS 7 has too old SSL, sigh.

yum -y update

# Install required packages
yum install -y make gcc perl-core pcre-devel wget zlib-devel

# Download the latest version of OpenSSL source code
wget https://ftp.openssl.org/source/openssl-1.1.1k.tar.gz

# Configure, build and install OpenSSL
# Uncompress the source file
tar -xzvf openssl-1.1.1k.tar.gz

# Change to the OpenSSL directory
cd openssl-1.1.1k

# Configure the package for compilation
./config --prefix=/opt/ssl --openssldir=/opt/ssl/etc/ssl --libdir=lib no-shared zlib-dynamic

# Compile package
make -j4

# Install compiled package
sudo make install


TLS 인증서 만들기



프로덕션 Vault 서버는 SSL을 사용합니다.

IP=`hostname -I | cut -f1 -d" "`

sudo mkdir -p /opt/vault/{tls,data}
# alias openssl=/opt/ssl/bin/openssl

export LD_LIBRARY_PATH=/opt/ssl/lib:$LD_LIBRARY_PATH
cd /opt/vault/tls \
&& sudo rm -f tls.key tls.crt \
&& sudo -E /opt/ssl/bin/openssl req -out tls.crt -new -keyout tls.key -newkey rsa:4096 -nodes -sha256 -x509 -subj "/O=HashiCorp/CN=Vault" \
-addext "subjectAltName = IP:${IP},DNS:${IP}" -days 3650


볼트 구성



config.hcl이라는 파일을 만들고 다음을 붙여넣습니다. $IP를 "hostname -I"에서 얻은 IP 주소로 바꾸십시오.

listener "tcp" {
  address = "0.0.0.0:8200"
  tls_cert_file = "/opt/vault/tls/tls.crt"
  tls_key_file  = "/opt/vault/tls/tls.key"
}

api_addr = "http://$IP:8200"

storage "file" {
  path = "/opt/vault/data"
}

max_lease_ttl = "10h"
default_lease_ttl = "10h"
ui = true


볼트 서버 실행



진실의 순간. 볼트 서버를 실제로 실행할 때. 나머지 명령을 수행하기 위한 두 번째 창이 있도록 이 콘솔 창을 열어 두어야 합니다.

sudo vault server -config=config.hcl


볼트 상태 확인



먼저 몇 가지 변수를 설정한 다음 볼트 상태를 확인합니다. 참고: 후속 명령의 경우 다음 bash 변수를 설정해야 합니다.

IP=`hostname -I | cut -f1 -d" "`
export VAULT_ADDR=https://${IP}:8200
export VAULT_CACERT="/opt/vault/tls/tls.crt"


다음 명령은 Vault가 실행 중인지 확인하고 로컬 Vault 서버에 연결할 수 있습니다.

vault status


볼트 봉인 해제 및 로그인




vault operator init -key-shares=1 -key-threshold=1


이렇게 하면 봉인 해제 키가 제공됩니다. 그것을 기록해 두십시오.

vault operator unseal


이제 봉인 해제 키를 제공하십시오.

vault login


영구 스토리지 확인



프로덕션 서버가 실제로 키를 저장할 수 있는지 확인
서버 재시작 사이.

비밀 백엔드 활성화:

vault secrets enable -version=2 -path=kv2 kv


이제 비밀을 추가합니다.

vault kv put kv2/secret username=admin password=qwertyasdf


이제 비밀을 나열하십시오.

vault kv get kv2/secret


볼트를 실행하고 있는 터미널에서 CTRL-c로 서버를 종료한 다음
다시 시작하십시오.

이제 위의 봉인 해제 단계를 진행하십시오.

마지막으로 비밀을 인쇄할 수 있는지 확인합니다.

vault kv get kv2/secret

좋은 웹페이지 즐겨찾기