설명
클러스터 스냅샷은 복구용 백업인 동시에 민감한 데이터의 사본입니다. 스냅샷의 암호화는 원본 클러스터의 실제 암호화 상태를 따르므로 원본과 스냅샷을 함께 확인해야 합니다.
설정에서 storage_encrypted를 생략했다고 원본이 반드시 비암호화인 것은 아닙니다. 현재 새 Aurora 클러스터는 기본 암호화를 사용하며, 복원·복제한 클러스터는 원본과 생성 방식에 따라 상태가 달라질 수 있습니다.
잠재적 영향
실제로 암호화되지 않은 스냅샷을 권한 없는 주체가 확보하면 복구용 데이터가 노출될 수 있습니다. 백업 암호화 요구사항도 충족하지 못할 수 있습니다. 스냅샷 공유 권한과 KMS 키 접근은 별도로 관리해야 합니다.
해결 방법
- 실제 원본 클러스터와 스냅샷의 암호화 상태를 확인하고 새 클러스터에는 필요한 암호화와 키를 명시하세요.
- 기존 비암호화 스냅샷은 지원되는 암호화 복사 기능으로 새 복사본을 만들고 복원을 검증하세요. 원본 클러스터의 설정만 바꾸어 기존 스냅샷을 암호화할 수는 없습니다.
- 클러스터 이전이 필요하면 Terraform 교체 계획, 데이터 일관성과 애플리케이션 전환을 검토하고 원본과 필요한 키를 보존하세요.
예시
스냅샷과 원본 클러스터 연결을 보여 주는 발췌입니다. 필요한 엔진·인증·네트워크 설정은 별도로 구성하세요. skip_final_snapshot = true는 클러스터 삭제 시 최종 스냅샷을 생략하므로 별도의 백업 보존 정책이 필요합니다.
암호화 설정 생략
hcl
resource "aws_db_cluster_snapshot" "db_snapshot" {
db_cluster_identifier = aws_rds_cluster.example2.id
db_cluster_snapshot_identifier = "resourcetestsnapshot1234"
}
resource "aws_rds_cluster" "example2" {
cluster_identifier = "example"
skip_final_snapshot = true
}
원본의 암호화를 명시하지 않았습니다. 이 발췌만으로 실제 스냅샷이 비암호화라고 판단할 수는 없습니다.
암호화 명시
hcl
resource "aws_db_cluster_snapshot" "db_snapshot" {
db_cluster_identifier = aws_rds_cluster.example.id
db_cluster_snapshot_identifier = "resourcetestsnapshot1234"
}
resource "aws_rds_cluster" "example" {
cluster_identifier = "example"
skip_final_snapshot = true
storage_encrypted = true
}
원본 클러스터에 암호화를 명시합니다. 두 발췌는 기존 클러스터나 스냅샷의 데이터 이전 절차를 대신하지 않습니다.