피드로 돌아가기
Dev.toSecurity
원문 읽기
Asymmetric Encryption 기반 GitOps Secret 관리 체계 구축
SealedSecrets: Storing Secrets in Git Without the Risk
AI 요약
Context
GitOps 환경에서 Single Source of Truth 구현 중 Secret 데이터의 평문 노출 위험 발생. Base64 인코딩의 보안 부재와 HashiCorp Vault 도입 시 발생하는 운영 오버헤드 및 Stateful 시스템 관리 부담이라는 트레이드오프 직면.
Technical Solution
- Asymmetric Encryption 모델 도입을 통한 Public Key 기반 클라이언트 암호화 및 Cluster 내 Private Key 전용 복호화 구조 설계
- kubeseal CLI를 활용하여 로컬에서 Secret을 SealedSecret CRD로 변환함으로써 Git 저장소 내 보안성 확보
- Cluster 내 SealedSecrets Controller가 SealedSecret 리소스를 감시하여 런타임에 표준 Kubernetes Secret으로 자동 복원하는 메커니즘 구현
- Decryption 과정이 Cluster 외부로 노출되지 않는 Zero-trust 워크플로우 구축으로 개발자의 운영 환경 Secret 접근 권한 최소화
- Public Cert 기반의 Offline Sealing 방식을 통해 Cluster API 호출 횟수 감소 및 CI/CD 파이프라인 효율성 제고
실천 포인트
1. Controller 설치 직후 Private Key를 외부 암호화 저장소에 즉시 백업하고 복구 테스트 수행
2. SealedSecret 리소스의 Scope를 엄격히 제한하여 권한 오남용 가능성 차단
3. CI 단계에서 SealedSecret 매니페스트의 유효성 검증 단계를 추가하여 배포 시점의 복호화 실패 방지
4. ArgoCD의 Prune 및 SelfHeal 설정을 통한 Git 상태와 Cluster 상태의 동기화 강제