설명
운영 DB는 애플리케이션 핵심 데이터와 고객 정보를 담는 경우가 많습니다. RDS 저장소 암호화는 데이터, 로그, 자동 백업과 스냅샷을 보호하므로 실제 인스턴스의 암호화 상태를 확인해야 합니다.
암호화는 데이터베이스 권한이나 네트워크 접근 통제를 대신하지 않습니다. 복원하거나 복제하는 인스턴스는 원본의 암호화와 해당 생성 방식도 확인하세요.
잠재적 영향
실제 비암호화 저장소나 백업을 무단으로 획득하면 민감정보가 노출될 위험이 커집니다. 조직의 데이터베이스 암호화 정책을 충족하지 못할 수도 있습니다.
해결 방법
- 새 인스턴스에는
storage_encrypted = true를 명시하고, 별도의 키 통제가 필요하면 적절한kms_key_id도 지정하세요. - 기존 비암호화 인스턴스는 암호화된 스냅샷 복사본을 복원해 이전하세요. 단순한 플래그 변경으로 기존 저장소가 암호화되지는 않습니다.
- Terraform 계획의 교체 여부, 데이터 일관성과 연결 전환을 검토하고 실제 DB·스냅샷의 암호화 및 KMS 권한을 확인하세요.
예시
신규 MySQL 인스턴스 설정의 발췌입니다. 대상 리전에서 엔진 버전과 인스턴스 조합이 지원되는지 확인하세요. 비밀번호는 안전하게 공급하고 Terraform 상태를 보호하며 네트워크·백업 설정은 별도로 구성하세요.
변경 전
hcl
resource "aws_db_instance" "db_instance" {
allocated_storage = 20
storage_type = "gp2"
engine = "mysql"
engine_version = "5.7"
instance_class = "db.t2.micro"
db_name = "mydb"
username = "foo"
password = var.db_password
storage_encrypted = false
}
새 인스턴스의 저장소 암호화를 활성화하지 않습니다.
변경 후
hcl
resource "aws_db_instance" "db_instance" {
allocated_storage = 20
storage_type = "gp2"
engine = "mysql"
engine_version = "5.7"
instance_class = "db.t2.micro"
db_name = "mydb"
username = "foo"
password = var.db_password
storage_encrypted = true
}
저장소 암호화를 요청합니다. 기존 인스턴스에 이 차이를 적용할 때는 먼저 데이터 이전과 교체 계획을 확인하세요.