설명
RDS, Aurora, DocumentDB, Neptune, Redshift의 저장 암호화는 데이터와 관련 백업·스냅샷을 보호합니다. 필요한 암호화와 키 관리 방식을 명시하고 실제 배포 상태를 확인하세요.
속성 생략을 모든 서비스의 비암호화 상태로 해석해서는 안 됩니다. Aurora 인스턴스의 암호화는 클러스터에서 관리하고, 복원·복제는 원본 설정을 상속할 수 있습니다. 현재 Redshift의 새 클러스터 생성 API는 기본 암호화를 사용합니다. 고객 관리형 키가 없다는 사실과 저장 데이터가 암호화되지 않았다는 사실도 다릅니다.
잠재적 영향
- 실제 비암호화 데이터나 요구에 맞지 않는 키 관리가 저장 데이터 보호 기준을 충족하지 못할 수 있습니다.
- 잘못된 키 권한이나 준비되지 않은 리소스 교체는 데이터 접근과 서비스 운영을 방해할 수 있습니다.
해결 방법
- 실제 DB·클러스터·스냅샷의 암호화와 키를 확인하고 해당 서비스의 생성·복원 요건을 적용하세요. 새 RDS DB에는
StorageEncrypted: true를 명시하고 필요하면 승인된KmsKeyId를 지정하세요. - 기존 비암호화 RDS 인스턴스는 스냅샷의 암호화 사본을 만든 뒤 새 인스턴스로 복원하는 등의 지원 절차로 이전하세요. 비암호화 원본의 읽기 복제본에 암호화 옵션만 추가하는 방식은 사용할 수 없습니다.
- 변경 세트, 데이터 보존, 백업과 애플리케이션 연결 전환을 검토하고 실제 암호화 및 데이터 접근을 검증하세요. 네트워크·DB 권한과 TLS도 유지하세요.
예시
새 MySQL 인스턴스의 대안입니다. 리전과 엔진에서 지원하는 인스턴스 유형 및 안전하게 관리하는 자격 증명을 제공하고, 서브넷과 보안 그룹은 환경에 맞게 추가하세요. 실행 중인 DB의 무손실 암호화 전환 절차가 아닙니다.
암호화와 키를 명시하지 않은 구성
yaml
AWSTemplateFormatVersion: "2010-09-09"
Parameters:
DBInstanceClass:
Type: String
DBUsername:
Type: String
DBPassword:
Type: String
NoEcho: true
Resources:
MyDB:
Type: AWS::RDS::DBInstance
DeletionPolicy: Snapshot
UpdateReplacePolicy: Snapshot
Properties:
DBInstanceClass: !Ref DBInstanceClass
AllocatedStorage: 50
Engine: mysql
MasterUsername: !Ref DBUsername
MasterUserPassword: !Ref DBPassword
암호화 요구를 명시하지 않습니다. 실제 설정과 적용되는 생성 기본값을 확인해야 합니다.
암호화와 키를 지정한 구성
yaml
AWSTemplateFormatVersion: "2010-09-09"
Parameters:
DBInstanceClass:
Type: String
DBUsername:
Type: String
DBPassword:
Type: String
NoEcho: true
DatabaseKmsKeyArn:
Type: String
Resources:
MyDB:
Type: AWS::RDS::DBInstance
DeletionPolicy: Snapshot
UpdateReplacePolicy: Snapshot
Properties:
DBInstanceClass: !Ref DBInstanceClass
AllocatedStorage: 50
Engine: mysql
StorageEncrypted: true
KmsKeyId: !Ref DatabaseKmsKeyArn
MasterUsername: !Ref DBUsername
MasterUserPassword: !Ref DBPassword
새 인스턴스의 암호화와 키를 지정합니다. 같은 리전의 승인된 KMS 키 ARN과 필요한 권한을 준비하세요. 스냅샷 보존만으로 애플리케이션 데이터 이전이 완료되지는 않습니다.