기존 Amazon RDS for PostgreSQL DB 인스턴스 암호화 - AWS 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

기존 Amazon RDS for PostgreSQL DB 인스턴스 암호화

작성자: Piyush Goyal(AWS), Shobana Raghu(AWS) 및 Yaser Raja(AWS)

환경: 프로덕션

기술: 데이터베이스, 보안, 자격 증명, 규정 준수

AWS 서비스: Amazon RDS, AWS KMS, AWS DMS

요약

이 패턴은 가동 중지 시간을 최소화하면서 Amazon Web Services() 클라우드에서 기존 Amazon Relational Database Service(AmazonAWS) for PostgreSQL DB 인스턴스를 암호화하는 방법을 설명합니다. RDS 이 프로세스는 Amazon RDS for MySQL DB 인스턴스에서도 작동합니다.

Amazon RDS DB 인스턴스를 생성할 때는 암호화를 활성화할 수 있지만, 생성한 후에는 활성화할 수 없습니다. 하지만 DB 인스턴스의 스냅샷을 만든 다음 해당 스냅샷의 암호화된 사본을 만들어 암호화되지 않은 DB 인스턴스에 암호화를 추가할 수 있습니다. 그런 다음 암호화된 스냅샷에서 DB 인스턴스를 복원하여 원본 DB 인스턴스의 암호화된 사본을 얻을 수 있습니다. 이 작업 중에 프로젝트가 다운타임 (최소한 쓰기 트랜잭션의 경우) 을 허용하는 경우 이 작업만 수행하면 됩니다. 암호화된 새 DB 인스턴스 사본을 사용할 수 있게 되면 애플리케이션이 새 데이터베이스를 가리키도록 할 수 있습니다. 그러나 프로젝트에서 이러한 활동으로 인한 심각한 가동 중지 시간이 허용되지 않는 경우 가동 중지 시간을 최소화하는 데 도움이 되는 대체 접근 방식이 필요합니다. 이 패턴은 AWS Database Migration Service(AWS DMS)를 사용하여 데이터를 마이그레이션하고 지속적으로 복제하므로 가동 중지 시간을 최소화하면서 암호화된 새 데이터베이스로의 전환을 수행할 수 있습니다. 

Amazon RDS 암호화된 DB 인스턴스는 업계 표준 AES-256 암호화 알고리즘을 사용하여 Amazon RDS DB 인스턴스를 호스팅하는 서버의 데이터를 암호화합니다. 데이터가 암호화되면 Amazon은 성능에 미치는 영향을 최소화하면서 데이터의 액세스 인증 및 복호화를 투명하게 RDS 처리합니다. 암호화를 사용하도록 데이터베이스 클라이언트 애플리케이션을 수정하지 않아도 됩니다.

사전 조건 및 제한 사항

사전 조건 

  • 활성 AWS 계정

  • 암호화되지 않은 Amazon RDS for PostgreSQL DB 인스턴스

  • AWS DMS 태스크 작업(생성, 수정 또는 중지) 경험(AWSDMS설명서의 AWS DMS 태스크 작업 참조)

  • 데이터베이스 암호화를 위한 AWS Key Management Service(AWS KMS) 숙지( AWS KMS 설명서 참조)

제한 사항

  • Amazon RDS DB 인스턴스를 생성할 때만 암호화를 활성화할 수 있으며, DB 인스턴스를 생성한 후에는 활성화할 수 없습니다.

  • 로깅되지 않은 테이블의 데이터는 스냅샷을 사용하여 복원되지 않습니다. 자세한 내용은 Postgre 작업 모범 사례를 참조하세요SQL.

  • 암호화되지 않은 DB 인스턴스의 암호화된 읽기 전용 복제본이나 암호화된 DB 인스턴스의 암호화되지 않은 읽기 전용 복제본은 보유할 수 없습니다.

  • 암호화되지 않은 백업 또는 스냅샷을 암호화된 DB 인스턴스로 복원할 수 없습니다.

  • AWS DMS 는 시퀀스를 자동으로 전송하지 않으므로 이를 처리하려면 추가 단계가 필요합니다.

자세한 내용은 Amazon 설명서의 Amazon RDS 암호화된 DB 인스턴스의 제한을 참조하세요. RDS

아키텍처

소스 아키텍처

  • 암호화되지 않은 RDS DB 인스턴스

대상 아키텍처 

  • 암호화된 RDS DB 인스턴스

    • 대상 RDS DB 인스턴스는 소스 DB RDS 인스턴스의 DB 스냅샷 복사본을 복원하여 생성됩니다.

    • AWS KMS 키는 스냅샷을 복원하는 동안 암호화에 사용됩니다.

    • AWS DMS 복제 작업은 데이터를 마이그레이션하는 데 사용됩니다.

프로세스는 AWSDMS를 사용하여 기존 Amazon RDS for PostgreSQL DB 인스턴스를 새 DB로 암호화합니다.

도구

암호화를 활성화하는 데 사용되는 도구:

  • AWS KMS 암호화 키 - 암호화된 DB 인스턴스를 생성할 때 Amazon이 DB 인스턴스를 암호화RDS할 고객 관리형 키 또는 AWS 관리형 키를 선택할 수 있습니다. 고객 관리형 키의 키 식별자를 지정하지 않으면 Amazon은 새 DB 인스턴스에 관리AWS형 키를 RDS 사용합니다. Amazon은 RDS AWS 계정의 Amazon에 대한 AWS 관리형 키를 RDS 생성합니다. AWS 계정에는 각 AWS 리전에 대해 AmazonRDS에 대한 다른 AWS 관리형 키가 있습니다. Amazon RDS 암호화에 KMS 키를 사용하는 방법에 대한 자세한 내용은 Amazon RDS 리소스 암호화를 참조하세요.

지속적인 복제에 사용되는 도구:

  • AWS DMS – AWS 데이터베이스 마이그레이션 서비스(AWS DMS)를 사용하여 소스 DB에서 대상 DB로 변경 사항을 복제할 수 있습니다. 다운타임을 최소화하려면 원본과 대상 DB를 동기화된 상태로 유지하는 것이 중요합니다. 작업 설정 AWS DMS 및 생성에 대한 자세한 내용은 AWS DMS 설명서를 참조하세요.

에픽

작업설명필요한 기술

소스 PostgreSQL DB 인스턴스의 세부 정보를 확인합니다.

Amazon RDS 콘솔에서 소스 PostgreSQL DB 인스턴스를 선택합니다. 구성 탭에서 인스턴스에 대해 암호화가 활성화되어 있지 않은지 확인합니다. 화면 그림은 추가 정보 섹션을 참조하십시오.

DBA

DB 스냅샷을 만듭니다.

암호화하려는 인스턴스의 DB 스냅샷을 생성합니다. 스냅샷을 만드는 데 걸리는 시간은 데이터베이스의 크기에 따라 다릅니다. 지침은 Amazon RDS 설명서의 DB 스냅샷 생성을 참조하세요.

DBA

스냅샷을 암호화합니다.

Amazon RDS 콘솔 탐색 창에서 스냅샷 을 선택하고 생성한 DB 스냅샷을 선택합니다. 작업에서 스냅샷 복사를 선택합니다. 해당 필드에 대상 AWS 리전과 DB 스냅샷 복사본의 이름을 입력합니다. 암호화 활성화 확인란을 선택합니다. 마스터 키 에서 DB 스냅샷 복사본을 암호화하는 데 사용할 KMS 키 식별자를 지정합니다. [Copy Snapshot]을 선택합니다. 자세한 내용은 Amazon RDS 설명서의 스냅샷 복사를 참조하세요.

DBA
작업설명필요한 기술

DB 스냅샷을 복원합니다.

Amazon RDS 콘솔에서 스냅샷 을 선택합니다. 생성한 암호화된 스냅샷을 선택합니다. 작업에서 스냅샷 복원을 선택합니다. DB 인스턴스 식별자의 경우 새 DB 인스턴스의 고유 이름을 입력합니다. 인스턴스 세부 정보를 검토한 다음 DB 인스턴스 복원 을 선택합니다. 스냅샷에서 암호화된 새 DB 인스턴스가 생성됩니다. 자세한 내용은 Amazon RDS 설명서의 DB 스냅샷에서 복원을 참조하세요.

DBA

를 사용하여 데이터를 마이그레이션AWS합니다DMS.

AWS DMS 콘솔에서 AWS DMS 작업을 생성합니다. 마이그레이션 유형에서 기존 데이터 마이그레이션 및 진행 중인 변경 사항 복제를 선택합니다. 작업 설정에서 대상 테이블 준비 모드에 대해 잘라내기를 선택합니다. 자세한 내용은 AWS DMS 설명서의 작업 생성을 참조하세요.

DBA

데이터 유효성 검사를 사용 설정합니다.

작업 설정에서 검증 활성화를 선택합니다. 이렇게 하면 소스 데이터와 대상 데이터를 비교하여 데이터가 정확하게 마이그레이션되었는지 확인할 수 있습니다. 

DBA

대상 DB 인스턴스에서 제약 조건을 비활성화합니다.

대상 DB 인스턴스에서 트리거와 외부 키 제약 조건을 비활성화한 다음 AWS DMS 작업을 시작합니다. 트리거 및 외부 키 제약 조건 비활성화에 대한 자세한 내용은 AWS DMS 설명서를 참조하세요.

DBA

데이터 확인

전체 로드가 완료되면 대상 DB 인스턴스의 데이터가 원본 데이터와 일치하는지 확인합니다. 자세한 내용은 AWS DMS 설명서의 AWS DMS 데이터 검증을 참조하세요.

DBA
작업설명필요한 기술

소스 DB 인스턴스에서 쓰기 작업을 중지합니다.

애플리케이션 다운타임이 시작될 수 있도록 원본 DB 인스턴스에서 쓰기 작업을 중지하십시오. 가 파이프라인의 데이터에 대한 복제를 완료AWSDMS했는지 확인합니다. 대상 DB 인스턴스에서 트리거와 외래 키를 활성화합니다.

DBA

데이터베이스 시퀀스 업데이트

원본 데이터베이스에 시퀀스 번호가 포함되어 있는 경우 대상 데이터베이스의 시퀀스를 확인하고 업데이트하십시오.

DBA

애플리케이션 엔드포인트를 구성합니다.

새 Amazon RDS DB 인스턴스 엔드포인트를 사용하도록 애플리케이션 연결을 구성합니다. 이제 DB 인스턴스가 암호화됩니다.

DBA, 애플리케이션 소유자

관련 리소스

추가 정보

원본 PostgreSQL DB 인스턴스의 암호화 확인:

소스 PostgreSQL DB 인스턴스의 요약 페이지에는 스토리지에 대해 활성화되지 않은 암호화가 표시됩니다.

이 패턴에 대한 추가 참고 사항:

  • rds.logical_replication 파라미터를 1로 설정하여 PostgreSQL에서 복제를 활성화합니다.

중요 참고: 복제 슬롯은 파일이 외부에서 사용될 때까지 미리 쓰기 로그(WAL) 파일을 유지합니다. 예를 들어, pg_recvlogical, 추출, 변환 및 로드(ETL) 작업 또는 AWS 입니다DMS. rds.logical_replication 파라미터 값을 1로 설정하면 max_wal_senderswal_level, max_replication_slots, 및 max_connections 파라미터를 AWS DMS 설정합니다. 논리적 복제 슬롯이 있지만 복제 슬롯에 보존된 WAL 파일에 대한 소비자가 없는 경우 트랜잭션 로그 디스크 사용량이 증가하고 여유 스토리지 공간이 지속적으로 감소할 수 있습니다. 이 문제를 해결하기 위한 자세한 내용과 단계는 AWS 지원 지식 센터의 “디바이스에 남아 있는 공간 없음” 또는 “Amazon RDS for Postgre에 오류DiskFull”를 유발하는 원인을 확인하려면 어떻게 해야 하나요SQL? 섹션을 참조하세요.

  • DB 스냅샷을 생성한 후 원본 DB 인스턴스에 적용한 스키마 변경 사항은 대상 DB 인스턴스에 적용되지 않습니다.

  • 암호화된 DB 인스턴스를 생성한 후에는 해당 DB 인스턴스에서 사용하는 KMS 키를 변경할 수 없습니다. 암호화된 DB 인스턴스를 생성하기 전에 KMS 키 요구 사항을 확인해야 합니다.

  • AWS DMS 작업을 실행하기 전에 대상 DB 인스턴스에서 트리거와 외부 키를 비활성화해야 합니다. 작업이 완료되면 이러한 기능을 다시 활성화할 수 있습니다.