

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

# Amazon DynamoDB의 암호화 모범 사례
<a name="dynamodb"></a>

[Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html)는 빠르고 예측 가능하고 확장 가능한 성능을 제공하는 완전관리형 NoSQL 데이터베이스 서비스입니다. DynamoDB 저장 시 암호화는 내구성이 뛰어난 미디어에 데이터가 저장될 때마다 기본 키, 로컬 및 글로벌 보조 인덱스, 스트림, 전역 테이블, 백업, DynamoDB Accelerator(DAX) 클러스터 등의 데이터를 암호화된 테이블에서 보호합니다.

데이터 분류 요구 사항에 따라 서버측 또는 클라이언트측 암호화를 구현하여 데이터 기밀성과 무결성을 유지할 수 있습니다.

서버측 암호화의 경우 새 테이블을 생성할 때 AWS KMS keys 를 사용하여 테이블을 암호화할 수 있습니다. AWS 소유 키, AWS 관리형 키 또는 고객 관리형 키를 사용할 수 있습니다. 조직에서 키를 완전히 제어할 수 있으며 이 키 유형을 사용할 경우 테이블 수준 암호화 키, DynamoDB 테이블, 로컬 및 글로벌 보조 인덱스, 스트림이 모두 동일한 키로 암호화되므로 고객 관리형 키를 사용하는 것이 좋습니다. 이러한 키 유형에 대한 자세한 내용은 [고객 키 및 AWS 키를](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-mgmt) 참조하세요.

**참고**  
언제든지 AWS 소유 키, AWS 관리형 키 및 고객 관리형 키 간에 전환할 수 있습니다.

저장 데이터와 전송 중 데이터의 클라이언트측 암호화 및 엔드 투 엔드 보호를 위해 [Amazon DynamoDB Encryption Client](https://docs.aws.amazon.com/dynamodb-encryption-client/latest/devguide/what-is-ddb-encrypt.html)를 사용할 수 있습니다. 항목 속성 값의 기밀성을 보호하는 암호화 외에도 DynamoDB Encryption Client는 항목에 서명합니다. 이는 속성 추가 또는 삭제, 암호화된 값을 다른 값으로 대체를 포함하여 항목에 대한 무단 변경을 감지할 수 있도록 하여 무결성 보호를 제공합니다.

이 서비스에 대해 다음 암호화 모범 사례를 고려하세요.
+ 키 비활성화 또는 삭제 예약 권한을 해당 작업을 수행해야 하는 사용자로 제한합니다. 이러한 상태에서는 모든 사용자와 DynamoDB 서비스가 데이터를 암호화 또는 복호화하고 테이블에서 읽기 및 쓰기 작업을 수행할 수 없습니다.
+ DynamoDB는 기본적으로 HTTPS를 사용하여 전송 중 데이터를 암호화하지만 추가 보안 제어가 권장됩니다. 다음 옵션 중 하나를 사용할 수 있습니다.
  + AWS Site-to-Site VPN 암호화를 위해 IPsec을 사용한 연결.
  + AWS Direct Connect 프라이빗 연결을 설정하기 위한 연결입니다.
  + AWS Direct Connect IPsec 암호화 프라이빗 연결을 위한 AWS Site-to-Site VPN 연결과의 연결.
  + Virtual Private Cloud(VPC) 내에서만 DynamoDB에 대한 액세스가 필요한 경우 VPC 게이트웨이 엔드포인트를 사용하고 VPC의 리소스만 액세스하도록 허용할 수 있습니다. 이렇게 하면 트래픽이 퍼블릭 인터넷을 통과하지 못합니다.
+ VPC 엔드포인트를 사용하는 경우 엔드포인트와 연결된 엔드포인트 정책 및 IAM 정책을 권한 있는 사용자, 리소스 및 서비스로 제한합니다. 자세한 내용은 [IAM 정책을 사용하여 액세스 제어](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-ddb.html#iam-policies-ddb)와 [엔드포인트 정책을 사용하여 VPC 엔드포인트에 대한 액세스 제어](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html)을 참조하세요.
+ 암호화 정책에 따라 암호화가 필요한 데이터에 대해 애플리케이션 수준에서 열 수준 데이터 암호화를 구현할 수 있습니다.
+ 클러스터를 설정할 때 캐시, 구성 데이터, 로그 파일의 데이터와 같은 저장 데이터를 암호화하도록 DAX 클러스터를 구성합니다. 기존 클러스터에서는 저장 시 암호화를 사용할 수 없습니다. 이 서버측 암호화는 기본 스토리지를 통한 무단 액세스로부터 데이터를 보호하는 데 도움이 됩니다. 유휴 시 DAX 암호화는 클러스터를 암호화하는 데 사용되는 단일 서비스 기본 키를 관리하기 위해 AWS KMS와 자동으로 통합됩니다. 암호화된 DAX 클러스터가 생성될 때 서비스 기본 키가 없는 경우는 AWS KMS 자동으로 새 AWS 관리형 키를 생성합니다. 자세한 내용은 [DAX 저장 시 데이터](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DAXEncryptionAtRest.html)를 참조하세요.
**참고**  
고객 관리형 키는 DAX 클러스터와 함께 사용할 수 없습니다.
+ 클러스터를 설정할 때 전송 중 데이터를 암호화하도록 DAX 클러스터를 구성합니다. 기존 클러스터에서는 전송 중 암호화를 활성화할 수 없습니다. DAX는 TLS를 사용하여 애플리케이션과 클러스터 간의 요청과 응답을 암호화하고 클러스터의 x509 인증서를 사용하여 클러스터의 ID를 인증합니다. 자세한 내용은 [전송 중 DAX 암호화](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DAXEncryptionInTransit.html)를 참조하세요.
+ 에서 [dax-encryption-enabled](https://docs.aws.amazon.com/config/latest/developerguide/dax-encryption-enabled.html) AWS 관리형 규칙을 AWS Config구현하여 DAX 클러스터의 암호화를 검증하고 유지합니다.