Files
obsidian/infra/vault.md
kappa 2356b86d36 obsidian: 정본 문서에서 히스토리/인시던트 분리 완료
15개 정본 문서에서 날짜별 변경이력, 인시던트 기록, 폐기된 구현 상세를
history/ 디렉토리로 분리. 정본은 현재 상태만 기술하는 백서 형태로 정리.
각 정본에 history 위키링크 추가.

분리된 history 파일 12건:
- apisix git push 500, k3s postgresql migration, apisix→traefik 전환
- netbis DDoS 공격, gitea 이전/분리, usb 2.5g hang + NFS hard mount
- supabase→patroni, apisix etcd 통합/분리, anomaly-detect 재설계
- patroni failover incident, zlambda nixos migration, ops-agents setup

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 12:09:21 +09:00

3.5 KiB

title, updated, tags
title updated tags
Vault 시크릿 관리 2026-03-12
infra
vault
security

K3s 배포

HashiCorp Vault v1.21.2, K3s에 HA Raft 3노드로 배포 (Helm chart hashicorp/vault 0.32.0). namespace: vault. 스토리지: Longhorn 10Gi PVC. Unseal key 5개 (threshold 3), 키 파일: ~/vault-keys.json

접근

  • UI/API: https://hcv.inouter.com
  • 트래픽 흐름: BunnyCDN (pull zone: inouter, ID 5316471) → SafeLine WAF → apisix (라우트 hcv-inouter-com) → K3s Traefik (192.168.9.134/140/214:443) → vault-active:8200
  • K3s Ingress: vault-ui (class traefik, TLS wildcard-inouter-com-tls)
  • APISIX upstream: hcv-inouter-com (roundrobin, 3노드 443)

Root Token

Vault root token은 만료 없음 (TTL: 0s)

접근 정책

접근 정책: infra-read(읽기 전용), infra-admin(읽기/쓰기)

시크릿 구조 (KV v2)

카테고리별 정리:

카테고리 경로 내용
infra/ apisix, argocd, cert-manager, cf-tunnel-manager, google/eab, k8s/infra-tool, safeline, ssh, ssh/id_ed25519, tailscale 인프라 서비스
cloud/ alibaba, aws, backblaze, backblaze/restic, bunnycdn, cloudflare, cloudflare/r2, linode, vultr, zenlayer 클라우드 프로바이더
database/ postgres, redis, bunnydb/cs-blocklist DB
apps/ gitea, gitea/registry, myapp, n8n, nocodb, telegram-ai-support, waf-saas 자체 앱/서비스
ai/ brave, context7, google/drive-mcp, openai, openrouter, pinecone, testsprite, vertex AI/LLM API
messaging/ discord/bot, discord/nocodb-webhook, mailgun/api-key, mailgun/smtp, telegram 메시징/알림
company/ bank, info, ironclad, korbit, koreaexim, popbill 회사/비즈니스
product/ irondesk/ton-wallet, irondesk/tron 제품 관련
domain/ globalping, maxmind, namecheap, namecheap/api, namecheap/api-server, namecheap/deposit-api, namecheap/registrant 도메인/DNS
auth/ api-keys/openai, api-keys/stripe, google/ca/external-account-key, google/ca/service-account 인증

SSH CA (Signed Certificates)

Vault SSH Secrets Engine (ssh-client-signer/) 활성화. CA 키: ed25519. 역할: admin (allowed_users: root,kaffa,admin, TTL 8h, max 24h).

CA 등록 완료 서버:

미등록: safeline-osaka (응답 없음)

자동화: ~/.ssh/vault-sign.sh가 인증서 만료 시 자동 재발급 (vault CLI 기반). 인증서에 root,kaffa,admin principals 포함. ~/.ssh/config에 Match exec로 연동. ssh apisix-osaka 등 일반 SSH처럼 사용 가능.

MCP 서버

vault-mcp-server v0.2.0 (hashicorp/vault-mcp-server:0.2.0 Docker 이미지). K3s vault namespace에 Deployment로 배포. streamable-http 모드, 엔드포인트: https://hcv.inouter.com/mcp. 내부 통신: vault-active.vault.svc.cluster.local:8200. token은 Secret vault-mcp-token에 저장. Claude Code MCP 설정: type http, url https://hcv.inouter.com/mcp. K3s Ingress vault-mcp가 /mcp 경로를 vault-mcp-server Service(8080)로 라우팅. 로컬 바이너리도 /usr/local/bin/vault-mcp-server에 설치됨.

관련 서비스

cert-manager, gitea, irondesk 등에서 Vault 시크릿을 참조