저장 데이터 암호화: 작동 방식 - Amazon DynamoDB

저장 데이터 암호화: 작동 방식

Amazon DynamoDB 저장 데이터 암호화는 256비트 고급 암호화 표준(AES-256)에 따라 데이터를 암호화하여 기본 스토리지에 대한 무단 액세스로부터 데이터를 보호할 수 있도록 지원합니다.

유휴 시 암호화는 테이블을 암호화하는 데 사용되는 암호화 키를 관리하기 위해 AWS Key Management Service(AWS KMS)와 통합됩니다.

참고

2022년 5월, AWS KMS는 AWS 관리형 키에 대한 교체 일정을 3년(약 1,095일)에서 매년(약 365일)으로 변경했습니다.

새 AWS 관리형 키는 생성된 후 1년이 지나면 자동으로 교체되고, 그 후에도 대략 매년 자동으로 교체됩니다.

기존 AWS 관리형 키는 가장 최근 교체 후 1년이 지나면 자동으로 교체되고, 그 후에도 매년 자동으로 교체됩니다.

AWS 소유 키

AWS 소유 키는 AWS 계정에 저장되지 않습니다. 이들은 AWS가 여러 AWS 계정에서 사용하기 위해 소유 및 관리하는 KMS 키 모음의 일부입니다. AWS 서비스는 AWS 소유 키를 사용하여 데이터를 보호할 수 있습니다. DynamoDB에서 사용하는 AWS 소유 키는 매년(약 365일) 교체됩니다.

사용자는 AWS 소유 키를 확인, 관리 또는 사용하거나 사용을 감사할 수 없습니다. 하지만 데이터를 암호화하는 키를 보호하기 위해 어떤 작업을 수행하거나 어떤 프로그램을 변경할 필요가 없습니다.

월별 요금 또는 AWS 소유 키의 사용량에 따른 요금이 부과되지 않으며, 계정의 AWS KMS 할당량에 포함되지 않습니다.

AWS 관리형 키

AWS 관리형 키는 AWS KMS와 통합된 AWS 서비스가 고객의 계정에서 고객 대신 생성, 관리 및 사용하는 KMS 키입니다. 계정에서 AWS 관리형 키를 확인하고 키 정책을 확인하며, AWS CloudTrail 로그에서 사용을 감사할 수 있습니다. 하지만 이러한 KMS 키를 관리하거나 이들의 권한을 변경할 수는 없습니다.

유휴 시 암호화는 테이블을 암호화하는 데 사용되는 DynamoDB(aws/dynamodb)용 AWS 관리형 키를 관리하기 위해 AWS KMS와 자동으로 통합됩니다. 암호화된 DynamoDB 테이블을 생성할 때 AWS 관리형 키가 존재하지 않는 경우 AWS KMS에서 새 키를 자동으로 생성합니다. 이 키는 향후 생성되는 암호화된 테이블에 사용됩니다. AWS KMS는 클라우드에 맞게 조정된 키 관리 시스템을 제공하기 위해 안전하고 가용성이 높은 하드웨어 및 소프트웨어를 결합합니다.

AWS 관리형 키 권한 관리에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서AWS 관리형 키 사용 권한 부여를 참조하세요.

고객 관리형 키

고객 관리형 키는 사용자가 생성, 소유 및 관리하는 AWS 계정의 KMS 키입니다. 사용자는 키 정책 설정 및 관리, IAM 정책, 권한 부여, 활성화 및 비활성화, 암호화 구성 요소 교체, 태그 추가, CMK를 가리키는 별칭 생성 및 삭제를 위한 KMS 예약 등을 포함해 KMS 키에 대한 완전한 제어 권한을 가집니다. 고객 관리형 키의 권한 관리에 대한 자세한 내용은 고객 관리형 키 정책을 참조하세요.

고객 관리형 키를 테이블 수준 암호화 키로 지정하면 DynamoDB 테이블, 로컬 및 글로벌 보조 인덱스, 스트림은 동일한 고객 관리형 키로 암호화됩니다. 온디맨드 백업은 백업이 생성되는 당시에 지정된 테이블 수준 암호화 키로 암호화됩니다. 테이블 수준 암호화 키를 업데이트하더라도 기존 온디맨드 백업과 연계된 암호화 키는 변경되지 않습니다.

고객 관리형 키의 상태를 비활성화로 설정하거나 삭제를 예약하면 모든 사용자와 DynamoDB 서비스가 데이터를 암호화 또는 암호 해독하고 테이블에서 읽고 쓰는 작업을 수행할 수 없습니다. DynamoDB는 사용자가 테이블에 지속적으로 액세스하고 데이터 유실을 방지하기 위해 암호화 키에 액세스할 수 있어야 합니다.

고객 관리형 키를 비활성화하거나 삭제를 예약한 경우에는 테이블 상태가 Inaccessible(접근 불가)로 바뀌게 됩니다. 테이블에서 작업을 계속하기 위해서는 7일 안에 DynamoDB 액세스를 지정된 암호화 키에 제공해야 합니다. 서비스에서 사용자의 암호화 키가 접근 불가 상태인 것을 탐지하면 바로 DynamoDB는 사용자에게 이를 알리기 위해 이메일 공지를 보냅니다.

참고
  • 7일 이상 고객 관리형 키가 DynamoDB 서비스에 접근 불가 상태가 되면 테이블은 아카이브 상태로 넘어가며 더 이상 액세스할 수 없게 됩니다. DynamoDB는 사용자의 테이블에 대해 온디맨드 백업을 생성하며 이에 대한 비용이 청구됩니다. 이 온디맨드 백업을 새로운 테이블에 데이터를 복원할 때 사용할 수 있습니다. 복원을 시작하려면 테이블에 대한 최종 고객 관리형 키가 활성화되어야 하며, DynamoDB는 이에 액세스할 수 있어야 합니다.

  • 글로벌 테이블 복제본을 암호화하는 데 사용된 고객 관리형 키에 액세스할 수 없는 경우 DynamoDB는 복제 그룹에서 이 복제본을 제거합니다. 고객 관리형 키를 액세스할 수 없는 것으로 감지하고 20시간 후 복제본이 삭제되지 않고 이 리전에서와 이 리전으로의 복제가 중지됩니다.

자세한 내용은 키 활성화키 삭제를 참조하세요.

AWS 관리형 키 사용 시 참고 사항

Amazon DynamoDB는 AWS KMS 계정에 저장된 KMS 키에 대한 액세스 권한이 있어야 테이블 데이터를 읽을 수 있습니다. DynamoDB는 봉투 암호화 및 키 계층 구조를 사용하여 데이터를 암호화합니다. AWS KMS 암호화 키는 이 키 계층 구조의 루트 키를 암호화하는 데 사용됩니다. 자세한 내용은 AWS Key Management Service 개발자 안내서봉투 암호화를 참조하세요.

AWS CloudTrail 및 Amazon CloudWatch Logs를 사용하여 DynamoDB가 사용자 대신 AWS KMS로 전송하는 요청을 추적할 수 있습니다. 자세한 내용은 AWS Key Management Service 개발자 안내서DynamoDB와 AWS KMS 상호작용 모니터링을 참조하세요.

DynamoDB는 모든 DynamoDB 작업에 대해 AWS KMS를 호출하지 않습니다. 활성 트래픽을 통한 호출자당 5분마다 키가 새로 고침됩니다.

연결을 재사용하도록 SDK를 구성했는지 확인합니다. 그렇게 되어 있지 않다면 각 DynamoDB 작업에 대해 새 AWS KMS 캐시 항목을 다시 설정해야 하므로 DynamoDB에서 지연 시간이 발생합니다. 뿐만 아니라 더 많은 AWS KMS 및 CloudTrail 비용이 발생할 수 있습니다. 예를 들어 Node.js SDK를 사용하여 이 작업을 수행하려면 keepAlive를 켠 상태에서 새 HTTPS 에이전트를 생성합니다. 자세한 내용은 AWS SDK for JavaScript 개발자 안내서에서 Node.js에서 keepAlive 구성을 참조하세요.