리눅스
                
              HashiCorp Vault와 Consul을 Docker 컨테이너로 구성하고 연동하는 방법
                변군이글루
                 2025. 6. 17. 15:33
              
              
                    
        반응형
    
    
    
  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
728x90
    
    
  반응형