클라이언트 측 및 서버 측 암호화 - AWS 데이터베이스 암호화 SDK

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

클라이언트 측 및 서버 측 암호화

클라이언트 측 암호화 라이브러리의 이름이 AWS Database Encryption SDK로 변경되었습니다. 이 개발자 안내서는 여전히 DynamoDB Encryption Client에 대한 정보를 제공합니다.

AWS Database Encryption SDK for DynamoDB는 데이터베이스로 보낼 테이블 데이터를 암호화하는 클라이언트 측 암호화를 지원합니다. 하지만 DynamoDB는 테이블을 디스크에 보관할 때 테이블을 사용자 모르게 암호화하고 사용자가 테이블에 액세스할 때 복호화하는 서버 측 저장 데이터 암호화 기능을 제공합니다.

선택하는 도구는 데이터의 민감도와 애플리케이션의 보안 요구 사항에 따라 달라집니다. AWS Database Encryption SDK for DynamoDB와 저장 중 암호화를 모두 사용할 수 있습니다. 암호화 및 서명된 항목을 DynamoDB로 전송하는 경우 DynamoDB는 항목을 보호 중인 상태로 인식하지 못하며, 이진 속성 값을 가진 일반적인 테이블 항목만 탐지합니다.

서버 측 저장 데이터 암호화

DynamoDB는 테이블을 디스크에 보관할 때 DynamoDB에서 테이블을 사용자 모르게 암호화하고 사용자가 테이블 데이터에 액세스할 때 복호화하는 저장 중 암호화, 서버 측 암호화 기능을 지원합니다.

AWS SDK를 사용하여 DynamoDB와 상호 작용하면 기본적으로 데이터는 HTTPS 연결을 통해 전송되는 동안 암호화되고 DynamoDB 엔드포인트에서 복호화된 다음 DynamoDB에 저장되기 전에 다시 암호화됩니다.

  • 암호화 기본 제공. DynamoDB는 모든 테이블을 작성할 때 투명하게 암호화하고 복호화합니다. 저장 데이터 암호화를 활성화하거나 비활성화할 수 없습니다.

  • DynamoDB는 암호화 키를 만들고 관리합니다. 각 테이블의 고유 키는 AWS Key Management Service(AWS KMS)을 암호화되지 않은 상태로 남기지 않는 AWS KMS key로 보호됩니다. 기본적으로 DynamoDB는 DynamoDB 서비스 계정의 AWS 소유 키를 사용하지만, 계정에서 AWS 관리형 키 또는 고객 관리 키를 선택하여 일부 또는 모든 테이블을 보호할 수 있습니다.

  • 디스크에 대한 모든 테이블 데이터는 암호화됩니다. 암호화된 테이블이 디스크에 저장될 때 는 프라이머리 키와 로컬 및 글로벌 보조 인덱스를 포함하여 모든 테이블 데이터를 암호화합니다. 테이블에 정렬 키가 있는 경우 범위 경계를 표시하는 정렬 키 중 일부가 테이블 메타데이터에 일반 텍스트 형태로 저장됩니다.

  • 테이블과 관련된 객체도 암호화됩니다. 저장 데이터 암호화는 DynamoDB 스트림, 전역 테이블, 백업이 내구성 있는 미디어에 기록될 때마다 보호합니다.

  • 항목에 액세스하면 해당 항목의 암호가 복호화됩니다. 테이블에 액세스할 때 DynamoDB는 대상 항목을 포함하는 테이블의 부분을 복호화하고 일반 텍스트 항목을 사용자에게 반환합니다.

AWS Database Encryption SDK for DynamoDB

클라이언트 측 암호화는 소스에서 DynamoDB의 스토리지에 이르기까지 전송 중 및 저장 중인 데이터에 대한 엔드투엔드 보호를 제공합니다. 일반 텍스트 데이터는 AWS을 포함한 제3자에게 절대 노출되지 않습니다. 새로운 DynamoDB 테이블과 함께 AWS Database Encryption SDK for DynamoDB를 사용하거나 기존 Amazon DynamoDB 테이블을 DynamoDB용 Java 클라이언트 측 암호화 라이브러리 버전 3.x로 마이그레이션할 수 있습니다.

  • 데이터가 전송 및 저장 시 보호되며, AWS 등 제3자에게 절대 노출되지 않습니다.

  • 테이블 항목에 서명할 수 있습니다. AWS Database Encryption SDK for DynamoDB에 프라이머리 키 속성을 포함하여 테이블 항목 전체 또는 일부에 대한 서명을 계산하도록 지시할 수 있습니다. 이 서명을 사용하면 속성 추가 또는 삭제, 속성 값 바꾸기 등 항목에 대한 무단 변경 내용을 전체적으로 감지할 수 있습니다.

  • 키링을 선택하여 데이터 보호 방법을 결정합니다. 키링에 따라 데이터 키, 궁극적으로 데이터를 보호하는 래핑 키가 결정됩니다. 작업에 가장 적합한 가장 안전한 래핑 키를 사용하세요.

  • AWS Database Encryption SDK for DynamoDB는 전체 테이블을 암호화하지 않습니다. 항목에서 암호화할 속성을 선택할 수 있습니다. AWS Database Encryption SDK for DynamoDB는 전체 항목을 암호화하지 않습니다. 속성 이름 또는 프라이머리 키(파티션 키 및 정렬 키) 속성의 이름 또는 값은 암호화하지 않습니다.

AWS Encryption SDK

DynamoDB에 저장하는 데이터를 암호화하는 경우 AWS Database Encryption SDK for DynamoDB를 사용하는 것이 좋습니다.

AWS Encryption SDK는 일반 데이터를 암호화 및 복호화할 수 있도록 도와주는 클라이언트 측 암호화 라이브러리입니다. 모든 유형의 데이터를 보호할 수 있지만 데이터베이스 레코드와 같은 정형 데이터에는 사용할 수 있도록 설계되지 않았습니다. AWS Database Encryption SDK for DynamoDB와 달리, AWS Encryption SDK는 항목 수준의 무결성 검사를 제공할 수 없으며 프라이머리 키의 암호화를 방지하거나 속성을 인식할 수 있는 논리가 없습니다.

AWS Encryption SDK를 사용하여 테이블의 요소를 암호화하는 경우 이것이 AWS Database Encryption SDK for DynamoDB와 호환되지 않음에 유의합니다. 한 라이브러리로는 암호화하고 다른 라이브러리로는 복호화할 수 없습니다.