[인프라진단] #CA-11 관계형 데이터베이스 암호화 설정
1. 항목 설명
관계형 데이터베이스에 저장되는 데이터와 백업에 암호화가 적용되어 있는지 점검하는 항목입니다.
판단 기준은 조직 정책에 따라 관계형 데이터베이스 암호화가 적용된 경우 양호, 적용되지 않은 경우 취약입니다.
2026 가이드 근거

출처: 과학기술정보통신부·한국인터넷진흥원, 「2026 주요정보통신기반시설 기술적 취약점 분석·평가 방법 상세가이드」, CA-11, p.864.
본 게시글은 위 가이드의 판단 기준을 참고하여 작성했으며, 진단 결과와 증적은 개인 실습 환경에서 직접 수집했습니다.
2. 점검 목적
데이터베이스 스토리지, 자동 백업, 스냅샷에 저장된 중요 정보가 유출되더라도 평문으로 노출되는 위험을 낮추는 것이 목적입니다.
3. 실습 환경
- 클라우드: 개인 AWS 실습 계정
- 작업 도구: AWS Management Console, AWS CloudShell, AWS CLI, IAM 정책 시뮬레이터
- 운영 리소스 현황: RDS DB 인스턴스 및 클러스터 0대
- 실습 통제: CA-11 전용 IAM 역할과 인라인 정책
- 취약 상태: 암호화 여부를 제한하는 명시적 거부 정책 없음
- 조치 상태: rds:StorageEncrypted=false인 생성 요청을 명시적으로 거부
- 비용 주의: RDS를 생성하지 않아 인스턴스 비용은 발생시키지 않았지만 IAM·API 사용과 계정 플랜에 따른 비용 가능성을 별도로 확인해야 함
실습·비용·안전 고지
본 실습은 비용이 큰 RDS를 생성하지 않고 현재 자원 수와 IAM 조건부 거부 정책을 검증했습니다. 따라서 운영 자원 판정은 N/A이며, 이행 결과는 실제 DB 암호화 완료가 아니라 미암호화 신규 생성 예방 통제 검증입니다. 전사 통제로 사용하려면 해당 역할을 실제 배포 경로에 강제하거나 Organizations SCP·권한 경계와 결합해야 합니다.
4. 취약 상태 구성
계정에 RDS가 없는 상태에서 전용 역할에 RDS 생성 권한만 허용하고, 암호화되지 않은 생성 요청을 차단하는 조건은 두지 않았습니다. IAM 시뮬레이션에서 암호화 조건 없이 생성 작업이 allowed로 평가되는지 확인했습니다.
aws rds describe-db-instances --query 'length(DBInstances)'
aws rds describe-db-clusters --query 'length(DBClusters)'
aws iam simulate-principal-policy \
--policy-source-arn <LAB_ROLE_ARN> \
--action-names rds:CreateDBInstance rds:CreateDBCluster
운영 RDS가 없더라도 표준 배포 역할에서 미암호화 생성을 막지 못하면 향후 취약 자원이 만들어질 가능성이 있으므로 예방 통제 미흡으로 기록합니다.
5. 최초진단 결과
- 최초진단 판정: 운영 N/A · 예방 통제 미흡
- 실제 자원 현황: RDS DB 인스턴스 0대, DB 클러스터 0대
- 정책 시뮬레이션: rds:CreateDBInstance, rds:CreateDBCluster 생성 요청이 allowed
- 해석: 현재 점검할 운영 DB는 없지만 미암호화 생성 차단 장치가 없음
- 실제 최초진단 증적 파일: ca11_ca19_initial_diagnosis.txt

6. 조치 방법
전용 역할에 미암호화 RDS 생성 요청을 거부하는 정책을 추가합니다. Deny는 다른 허용 정책보다 우선하므로 배포 역할과 자동화 역할에 일관되게 적용해야 합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DenyUnencryptedRDSCreation",
"Effect": "Deny",
"Action": [
"rds:CreateDBInstance",
"rds:CreateDBCluster"
],
"Resource": "*",
"Condition": {
"Bool": {
"rds:StorageEncrypted": "false"
}
}
}
]
}
적용 후 암호화 조건을 false와 true로 각각 전달해 정책 결과가 explicitDeny와 allowed로 구분되는지 확인합니다.
클라우드 콘솔 경로: IAM → 역할 → CA-11 전용 역할 → 권한 → 인라인 정책

UI 증적 수집(2026-08-25): 콘솔에서 미암호화 RDS 생성을 거부하는 DenyUnencryptedRDSCreation 인라인 정책이 역할에 연결된 상태를 확인했습니다.
7. 이행진단 결과
- 이행진단 판정: 운영 N/A · 예방 통제 양호
- 실제 자원 현황: RDS DB 인스턴스 0대, DB 클러스터 0대
- StorageEncrypted=false 시뮬레이션: 생성 작업 explicitDeny
- StorageEncrypted=true 시뮬레이션: 생성 작업 allowed
- 해석: 실제 DB 암호화 이행이 아니라 신규 미암호화 생성 예방 통제가 검증됨
- 실제 이행진단 증적 파일: ca11_ca19_after_diagnosis.txt

8. 실무 주의사항
기존 미암호화 RDS는 정책만 추가해도 자동으로 암호화되지 않습니다. 스냅샷 복사와 암호화, 신규 인스턴스 복원, 엔드포인트 전환 과정에서 중단 시간과 애플리케이션 연결 변경을 검토해야 합니다.
컨설턴트 조언
- 자산 목록에서 DB 인스턴스·클러스터·스냅샷의 암호화 상태와 KMS 키를 함께 확인합니다.
- 콘솔의 현재 상태만 보지 말고 Terraform·CloudFormation·CI/CD 역할에서 암호화 옵션이 기본값으로 강제되는지 검토합니다.
- 전사 통제는 개별 역할의 인라인 정책보다 Organizations SCP, 권한 경계, IaC 정책 검사처럼 우회가 어려운 계층에 배치합니다.
- 고객 관리형 KMS 키를 사용할 경우 키 관리자와 데이터 사용자를 분리하고 키 비활성화·삭제 예약의 영향도 점검합니다.
- 기존 미암호화 DB 전환 전 백업, 복원 시험, 성능, 다운타임, DNS와 애플리케이션 연결 문자열 변경 계획을 승인받습니다.
9. 마무리
운영 RDS가 없는 현재 상태는 점검 대상 없음이지만, 향후 배포에서 암호화가 빠지지 않도록 생성 단계의 강제 통제를 검증했습니다. 운영 환경에서는 기존 자원 암호화 상태와 배포 경로 전체를 함께 확인해야 합니다.
'2026 주요정보통신기반시설 가이드 > Cloud(AWS)' 카테고리의 다른 글
| [인프라진단] #CA-13 클라우드 서비스 사용자 계정 로깅 설정 (0) | 2026.08.26 |
|---|---|
| [인프라진단] #CA-12 통신구간 암호화 설정 (0) | 2026.08.26 |
| [인프라진단] #CA-10 스토리지 리소스 퍼블릭 접근 관리 (0) | 2026.08.26 |
| [인프라진단] #CA-09 접근 제어 설정 관리 (0) | 2026.08.26 |
| [인프라진단] #CA-08 가상 네트워크 리소스 관리 (0) | 2026.08.26 |