피드로 돌아가기
Dev.toInfrastructure
원문 읽기
Terraform State 내 Secret 완전 제거를 위한 Ephemeral 변수 전환 전략
Fully Migrate Secrets Out Of Terraform Module State Without Breaking Existing Users
AI 요약
Context
Terraform State 파일 내에 민감한 Secret 데이터가 평문으로 저장되는 보안 취약점 발생. 기존 Module V1 사용자의 경우 신규 배포뿐만 아니라 기존 배포 환경에서도 State 내 Secret을 완전히 제거해야 하는 제약 사항 존재.
Technical Solution
ephemeral변수 도입을 통한 State 저장 제외 및 런타임 기반 Secret 처리 구조 설계removed블록과lifecycle { destroy = false }설정을 통한 State 내 레거시 리소스의 안전한 제거var.private_key_data를 통한 기존 Secret의 수동 추출 및 주입으로 데이터 연속성 확보data_json_wo와 같은 Write-only 속성을 활용하여 State에 쓰지 않고 Vault로 직접 전송하는 로직 구현- 신규 배포와 기존 배포를 분기 처리하는 조건부 로직을 통해 하위 호환성과 보안성 동시 달성
Key Takeaway
인프라 코드 관리 시 State 파일의 불변성을 유지하면서 민감 정보를 제거하기 위해, State 외부에서 값을 주입하는 Ephemeral 레이어 설계가 필수적임.
실천 포인트
- State 내 Secret 존재 여부 전수 조사 및 제거 대상 리소스 식별 - `removed` 블록을 활용하여 실제 리소스 파괴 없이 State에서만 제거하는 시나리오 검토 - `ephemeral` 변수를 활용한 런타임 값 전달 구조로의 마이그레이션 계획 수립 - 수동 추출 단계에서 발생 가능한 휴먼 에러 방지를 위한 검증 절차 마련