문제 해결 및 트러블슈팅

문제 해결 및 트러블슈팅

1️⃣ + “Unseal Error”, “Permission Denied” 등 주요 이슈 대응법

1. Unseal Error

Vault는 초기화 후 Unseal 키가 입력되어야 작동합니다. 클러스터 내 Vault Pod가 재시작되거나 재배포되었을 때, Unseal 오류가 자주 발생합니다.

🔍 예시 에러:

Error unsealing vault: Error making API request.
URL: PUT https://127.0.0.1:8200/v1/sys/unseal
Code: 500. Errors: * unseal failed

✅ 대응법:

    1. Vault 상태 확인:
    vault status
    1. Unseal 키를 3개 이상 입력:
    vault operator unseal

🔐 권장 구성: Auto Unseal with KMS (AWS/GCP)

Vault를 자동 Unseal 하도록 설정 시, 위 문제 예방 가능


2. Permission Denied

🔍 예시 에러:

permission denied

📌 주요 원인:

  • 토큰이 만료되었거나,
  • 접근 권한(Policy)이 부족할 경우 발생

✅ 대응법:

vault token lookup
vault policy read <policy-name>

🔄 예: default policy만 할당된 토큰은 secret/data에 접근 불가


2️⃣ + 인증 실패, Policy 미적용 확인 절차

1. 인증 실패 대응 절차

📌 시나리오: Kubernetes 인증을 사용하는 서비스가 실패

Error: error authenticating: authentication failed

✅ 점검 체크리스트:

항목 명령어
Kubernetes Auth 활성화 여부 vault auth list
JWT token 유효성 kubectl exec <pod> -- cat /var/run/secrets/kubernetes.io/serviceaccount/token
Vault Role 존재 여부 vault read auth/kubernetes/role/<role-name>

2. Policy 미적용 확인

📌 증상: 권한 있는 작업이 거절됨

✅ 점검 방법:

vault token capabilities <token> <path>

📍 예: vault token capabilities $VAULT_TOKEN secret/data/db 결과가 deny일 경우, Policy 수정 필요


3️⃣ + HA 상태 불일치 해결

Vault는 HA(High Availability) 모드에서 Consul, Raft 등을 backend로 사용합니다.

📉 문제 증상:

  • Leader가 응답하지 않음
  • Follower 노드만 계속 증가
  • Raft Snapshot 중 오류

🧩 구조 이해를 위한 다이어그램:

[Vault Cluster]
  ├─ Vault-0 (Leader)
  ├─ Vault-1 (Follower)
  └─ Vault-2 (Follower)

[Storage Backend: Raft or Consul]

✅ 해결 절차:

  1. 노드 상태 확인:

    vault operator raft list-peers
  2. Leader가 살아있지 않을 경우:

    • 문제 노드 제거:

      vault operator raft remove-peer vault-1
    • 재조인:

      vault operator raft join http://vault-0:8200

4️⃣ + 실전 장애 복구 사례

🛠️ 사례: Vault 장애 + Raft Snapshot 손상

📍 증상:

  • Vault 접근 시 모든 요청 500 오류 발생
  • Raft snapshot이 깨져 있고, 데이터 접근 불가

✅ 복구 절차:

  1. 백업 Snapshot 로드:

    vault operator raft snapshot restore backup.snap
  2. 장애 시점 복구 후 상태 확인:

    vault status
    vault kv get secret/data/myapp
  3. 정책/토큰 재배포 및 서비스 점검


🔎 실제 운영 환경 점검 체크리스트

체크 항목 설명
Vault Health API /v1/sys/health 사용
Token TTL / Expire 확인 vault token lookup
Storage backend 오류 점검 Consul / Raft 로그 확인
인증 backend 활성화 여부 vault auth list
Vault 로그 확인 /vault/logs/vault.log

✅ 요약 정리

문제 원인 해결 방법
Unseal Error Vault 재시작 Unseal 키 입력 or Auto Unseal
Permission Denied 잘못된 Policy Token & Policy 점검
인증 실패 인증 설정 오류 JWT, Role 설정 확인
HA 불일치 노드 간 네트워크, Storage 오류 raft remove-peer / join
장애 복구 Snapshot 손상 snapshot restore 수행

RSS Feed
마지막 수정일자