반응형
HashiCorp Vault와 Consul을 Docker 컨테이너로 구성하고 연동하는 방법
이 구성은 Vault의 스토리지 백엔드로 Consul을 사용하도록 설정합니다.
Vault의 백엔드(Storage Backend)는 Vault의 데이터를 저장하는 위치입니다.
구성 요약
- Docker : 컨테이너 기반 배포
- Vault : 비밀 관리 시스템
- Consul : 서비스 디스커버리 및 Vault의 스토리지 백엔드
1. 디렉터리 구조 생성
mkdir -p ./vault-consul-docker/{vault/config,consul}
cd ./vault-consul-docker
2. Vault 설정파일 작성
sudo tee vault/config/vault.hcl > /dev/null <<EOF
storage "consul" {
address = "http://consul:8500"
path = "vault/"
}
listener "tcp" {
address = "0.0.0.0:8200"
tls_disable = 1
}
ui = true
api_addr = "http://localhost:8200"
EOF
3. Docker Compose 파일 작성
sudo tee docker-compose.yaml > /dev/null <<EOF
services:
consul:
image: hashicorp/consul:latest
container_name: consul
command: "agent -dev -client=0.0.0.0"
ports:
- "8500:8500"
- "8600:8600/udp"
networks:
- vault-net
vault:
image: hashicorp/vault:latest
container_name: vault
restart: unless-stopped
cap_add:
- IPC_LOCK
entrypoint: ["vault", "server", "-config=/vault/config/vault.hcl"]
volumes:
- ./vault/config:/vault/config
depends_on:
- consul
ports:
- "8200:8200"
networks:
- vault-net
healthcheck:
test: ["CMD", "vault", "status", "-address=http://127.0.0.1:8200"]
interval: 30s
timeout: 10s
retries: 5
networks:
vault-net:
driver: bridge
EOF
4. Vault와 Consul 컨테이너 시작
docker compose up -d
5. Vault 초기화 및 언실(unseal)
Vault CLI 진입
docker compose exec vault sh
Vault 초기화
export VAULT_ADDR=http://127.0.0.1:8200
vault operator init
Unseal 진행
vault operator unseal <Unseal Key 1>
vault operator unseal <Unseal Key 2>
vault operator unseal <Unseal Key 3>
로그인
vault login <Initial Root Token>
6. 웹 UI 확인
Vault UI 확인
http://localhost:8200
Consul UI 확인
http://localhost:8500
반응형
'리눅스' 카테고리의 다른 글
Ansible 모듈 리스트 (0) | 2025.06.17 |
---|---|
Alpine Linux에 jq 패키지를 설치하는 방법 (0) | 2025.06.17 |
HashiCorp Vault의 OTP 방식을 이용하여 SSH 인증을 구성하는 방법 (0) | 2025.06.16 |
우분투 24.04에서 Kubernetes를 제거 및 재설치 방법 (1) | 2025.06.16 |
HashiCorp Vault를 Docker 컨테이너로 설정하는 방법 (2) | 2025.06.16 |