피드로 돌아가기
Dev.toInfrastructure
원문 읽기
State 노출 없는 Ephemeral Resource 도입 및 Zero-Downtime 마이그레이션 전략
Migrating a Terraform Module to Ephemeral Resources Without Breaking Existing Users
AI 요약
Context
기존 Terraform 모듈이 TLS Private Key를 State 파일에 평문 저장함으로써 발생하는 보안 취약점 노출. 기존 사용자들의 State 정합성을 유지하며 보안성이 강화된 Ephemeral Resource로의 전환 필요성 대두.
Technical Solution
- Ephemeral Value의 Write-only 속성 제약을 준수하기 위해
data_json_wo전용 속성을 통한 데이터 흐름 설계 - 정적 Taint Propagation에 의한 타입 오염을 방지하고자 Shared Local 변수를 제거하고 각 경로별 독립적 리소스 참조 구조 채택
count도입으로 인한 리소스 주소 변경 및 의도치 않은 Key Rotation을 방지하기 위해moved블록을 통한 State 주소 강제 매핑- 기존 사용자 영향 최소화를 위해
use_ephemeral_key토글 변수 도입 및 Default 값 기반의 단계적 버전 업데이트 전략 수립 - 신규 사용자는 Ephemeral 경로를 통해 State 저장 없이 Vault에 직접 Key를 기록하는 고보안 워크플로우 적용
실천 포인트
1. Ephemeral Value를 사용할 때 일반 Local 변수를 통해 전달하고 있지는 않은지 확인
2. 대상 리소스의 속성이 Write-only인지 검증하여 State 저장 여부 확인
3. 리소스에 `count`나 `for_each`를 추가할 경우 `moved` 블록을 통해 기존 State 주소 유지 처리
4. 파괴적 변경 방지를 위해 Feature Toggle 도입 및 Minor/Major 버전별 단계적 배포 전략 수립