피드로 돌아가기
Dev.toInfrastructure
원문 읽기
ArgoCD auto-sync와 Keycloak OVERWRITE 전략 충돌로 인한 JWT Claims 유실 및 서비스 장애 해결
When ArgoCD shows Healthy but Keycloak silently strips JWT claims
AI 요약
Context
ArgoCD를 통한 GitOps 기반의 Keycloak 관리 체계에서 Helm Chart의 Realm Import 전략을 OVERWRITE로 설정함. 운영 중 긴급 대응을 위해 Admin Console에서 수정한 설정이 Git에 반영되지 않은 채 유지되던 중, 차트 버전 업데이트로 인한 자동 동기화가 발생하여 최신 상태의 Realm 설정을 구버전 ConfigMap 데이터로 덮어쓴 구조적 한계가 존재함.
Technical Solution
- Auto-sync 및 Self-heal 기능 즉시 비활성화를 통한 추가적인 상태 덮어쓰기 방지 및 설정 동결
- Keycloak Admin REST API를 통한 Live Realm State 추출로 Git 데이터가 아닌 현재 동작 중인 시스템 상태를 Source of Truth로 확보
- 추출된 Live State와 ConfigMap 내 Realm JSON의 Diff 분석을 통한 유실된 Protocol Mapper 및 Client Scope 식별
- Git Reconciliation보다 Live State Capture를 우선하는 복구 시퀀스 설계를 통한 세션 유지 및 사용자 락아웃 방지
- 관리자 콘솔 수정 사항과 Git 설정의 정기적 동기화 및 Import 전략을 IGNORE_EXISTING으로 전환하여 의도치 않은 상태 회귀 차단
실천 포인트
1. Keycloak Helm Chart 사용 시 realm-import-strategy가 OVERWRITE로 설정되어 있는지 확인
2. Admin Console에서 수정한 설정이 Git ConfigMap에 즉시 반영되는 파이프라인 존재 여부 검토
3. GitOps 도구의 Healthy 상태가 실제 런타임 설정의 정합성을 보장하지 않음을 인지하고 별도의 Drift Detection 메커니즘 구축
4. 장애 복구 시 Git Revert 전 현재의 Live State를 먼저 스냅샷으로 저장하는 절차 수립