설명
RDS 저장 데이터 암호화는 DB 스토리지와 관련 백업·스냅샷을 보호합니다. 일반 RDS 인스턴스를 새로 만들 때는 storage_encrypted: true로 암호화를 명시하고 사용할 KMS 키와 권한을 구성하세요. Aurora는 인스턴스가 아니라 클러스터의 암호화 설정을 확인해야 합니다.
기존 리소스나 스냅샷에서 복원하는 작업은 해당 리소스와 작업의 암호화 상태를 확인해야 합니다. 플레이북의 키 값만으로 기존 DB가 암호화되었다고 판단해서는 안 됩니다.
잠재적 영향
- 실제 비암호화 DB의 스토리지와 관련 백업은 저장 데이터 암호화가 제공하는 보호를 받지 못하며, 조직의 암호화 요구 사항을 충족하지 못할 수 있습니다.
- 저장 데이터 암호화를 적용해도 DB 인증, 접근 권한과 전송 중 암호화는 별도로 필요합니다.
해결 방법
- 새 인스턴스에는
storage_encrypted: true와 필요한 KMS 키·사용 권한을 구성하세요. Aurora에서는 클러스터 설정을 검토하세요. - 기존 비암호화 인스턴스는 플래그 변경만으로 암호화할 수 없습니다. 지원되는 스냅샷 암호화 복사·복원 절차를 사용해 이전하고, 데이터 정합성·연결 전환·중단 시간을 계획하세요.
- 적용 후 실제 인스턴스의
StorageEncrypted, KMS 키와 백업·복제 구성을 검증하세요. DB 접근 제어와 TLS도 확인하세요.
예시
변수에 실제 사용자 이름, 안전하게 관리하는 비밀번호, 스토리지 용량과 엔진·리전에 맞는 인스턴스 클래스를 제공하세요. 네트워크와 접근 제어는 별도로 구성해야 합니다.
암호화를 요청하지 않는 새 인스턴스
yaml
---
- name: foo
community.aws.rds_instance:
id: test-encrypted-db
state: present
engine: mariadb
storage_encrypted: false
db_instance_class: "{{ db_instance_class }}"
username: "{{ username }}"
password: "{{ password }}"
allocated_storage: "{{ allocated_storage }}"
새 MariaDB 인스턴스를 만들 때 스토리지 암호화를 요청하지 않습니다. 같은 식별자의 인스턴스가 이미 있다면 실제 암호화 상태를 확인해야 합니다.
암호화를 요청하는 새 인스턴스
yaml
- name: foo
community.aws.rds_instance:
id: test-encrypted-db
state: present
engine: mariadb
storage_encrypted: true
db_instance_class: "{{ db_instance_class }}"
username: "{{ username }}"
password: "{{ password }}"
allocated_storage: "{{ allocated_storage }}"
새 인스턴스에 저장 데이터 암호화를 요청합니다. 기존 비암호화 인스턴스의 식별자를 그대로 사용해 이 설정만 적용하는 것은 암호화 이전 절차가 아닙니다.