Amazon DynamoDB Encryption Client 개념 - AWS 데이터베이스 암호화 SDK

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

Amazon DynamoDB Encryption Client 개념

참고

클라이언트 측 암호화 라이브러리의 이름이 AWS Database Encryption SDK로 변경되었습니다. 다음 주제에서는 Java용 DynamoDB Encryption Client 버전 1.x~2.x 와 Python용 DynamoDB Encryption Client 버전 1.x~3.x에 대한 정보를 제공합니다. 자세한 내용은 AWS Database Encryption SDK for DynamoDB 버전 지원을 참조하세요.

이 주제에서는 Amazon DynamoDB Encryption Client에서 사용되는 개념과 용어에 대해 설명합니다.

DynamoDB Encryption Client의 구성 요소가 어떻게 상호 작용하는지에 대해 알아보려면 DynamoDB Encryption Client의 작동 방식 섹션을 참조하세요.

암호화 자료 공급자(CMP)

DynamoDB Encryption Client를 구현할 때 가장 먼저 해야 할 작업 중 하나는 암호화 자료 공급자(CMP)(암호화 자료 공급자라고도 함)를 선택하는 것입니다. 사용자의 선택에 따라 나머지 구현의 상당 부분이 결정됩니다.

암호화 자료 공급자(CMP)는 항목 암호화 도구에서 테이블 항목을 암호화 및 서명하는 데 사용하는 암호화 자료를 수집, 조합 및 반환합니다. CMP는 사용할 암호화 알고리즘과 암호화 및 서명 키를 생성하고 보호하는 방법을 결정합니다.

CMP는 항목 암호화와 상호 작용합니다. 항목 암호화 도구는 CMP에 암호화 또는 복호화 자료를 요청하고, CMP는 이를 항목 암호화 도구에 반환합니다. 그러면 항목 암호화 도구는 암호화 자료를 사용하여 항목을 암호화하고 서명하거나 확인 및 복호화합니다.

CMP는 클라이언트를 구성할 때 지정합니다. 호환되는 사용자 지정 CMP를 만들거나 라이브러리에 있는 여러 CMP 중 하나를 사용할 수 있습니다. 대부분의 CMP는 여러 프로그래밍 언어에 사용할 수 있습니다.

항목 암호화 도구

항목 암호화 도구는 DynamoDB Encryption Client에 대한 암호화 작업을 수행하는 하위 수준 구성 요소입니다. 이 도구는 암호화 자료 공급자(CMP)로부터 암호화 자료를 요청한 다음, CMP에서 반환하는 자료를 사용하여 테이블 항목을 암호화 및 서명하거나 확인 및 복호화합니다.

항목 암호화 도구와 직접 상호 작용하거나 라이브러리에서 제공하는 헬퍼를 사용할 수 있습니다. 예를 들면 DynamoDB Encryption Client for Java에는 DynamoDBEncryptor 항목 암호화 도구와 직접 상호 작용하지 않고 DynamoDBMapper과 함께 사용할 수 있는 AttributeEncryptor 헬퍼 클래스가 포함되어 있습니다. Python 라이브러리에는 항목 암호기와 상호 작용하는 EncryptedTable, EncryptedClient, 및 EncryptedResource 헬퍼 클래스가 포함되어 있습니다.

속성 작업

속성 작업은 항목의 각 속성에 대해 수행할 작업을 항목 암호화 도구에 알려줍니다.

속성 작업 값은 다음 중 하나일 수 있습니다.

  • 암호화 및 서명 - 속성 값을 암호화합니다. 항목 서명에 속성(이름 및 값)을 포함합니다.

  • 서명만 - 항목 서명에 속성을 포함합니다.

  • 아무 작업 안 함 - 속성을 암호화거나 서명하지 않습니다.

중요한 데이터를 저장할 수 있는 속성의 경우 Encrypt and sign(암호화 및 서명)을 사용합니다. 기본 키 속성(파티션 키 및 정렬 키)의 경우 Sign only(서명만)를 사용합니다. 자료 설명 속성 및 서명 속성은 서명되거나 암호화되지 않습니다. 이러한 속성에 대해 속성 작업을 지정할 필요가 없습니다.

속성 작업을 신중하게 선택합니다. 확실하지 않은 경우 Encrypt and sign(암호화 및 서명)을 사용합니다. DynamoDB Encryption Client를 사용하여 테이블 항목을 보호한 후 속성에 대한 작업을 변경하면 서명 유효성 검사 오류가 발생할 위험이 있습니다. 자세한 내용은 데이터 모델 변경 섹션을 참조하세요.

주의

기본 키 속성은 암호화하지 마십시오. 일반 텍스트로 남겨 두어야 DynamoDB에서 전체 테이블 스캔을 실행하지 않고 해당 항목을 찾을 수 있습니다.

DynamoDB 암호화 컨텍스트에서 프라이머리 키 속성이 식별되는 경우 이러한 속성을 암호화하려 할 때 클라이언트에서 오류가 발생합니다.

속성 작업을 지정하는 데 사용하는 기법은 프로그래밍 언어마다 다릅니다. 사용하는 도우미 클래스에만 해당될 수도 있습니다.

자세한 내용은 프로그래밍 언어 설명서를 참조하세요.

자료 설명

암호화된 테이블 항목에 대한 자료 설명은 테이블 항목의 암호화 및 서명 방법에 대한 정보(예: 암호화 알고리즘)로 구성됩니다. 암호화 자료 공급자(CMP)는 암호화 및 서명을 위해 암호화 자료를 결합할 때 자료 설명을 기록합니다. 나중에 항목을 확인하고 복호화하기 위해 암호화 자료를 조립해야 할 때 자료 설명을 가이드로 사용합니다.

DynamoDB Encryption Client에서 자료 설명은 다음과 같은 세 가지 관련 요소를 참조하세요.

요청한 자료 설명

특정 암호화 자료 공급자(CMP)에서는 암호화 알고리즘 같은 고급 옵션을 지정할 수 있습니다. 선택 사항을 지정하려면 테이블 항목을 암호화하기 위해 요청의 DynamoDB 암호화 컨텍스트 자료 설명 속성에 이름-값 페어를 추가합니다. 이 요소를 요청한 자료 설명이라고 합니다. 요청된 자료 설명의 유효한 값은 선택한 CMP에 의해 정의됩니다.

참고

자료 설명은 보안 기본값보다 우선할 수 있으므로 요청된 자료 설명을 사용해야 하는 설득력 있는 이유가 없는 한 생략하는 것이 좋습니다.

실제 자료 설명

암호화 자료 공급자(CMP)에서 반환하는 자료 설명을 실제 자료 설명이라고 합니다. 여기에는 CMP가 암호화 자료를 조합할 때 사용한 실제 값이 설명되어 있습니다. 일반적으로 요청된 자료 설명(있는 경우)과 추가 및 변경 내용으로 구성됩니다.

자료 설명 속성

클라이언트는 암호화된 항목의 자료 설명 속성에 실제 자료 설명을 저장합니다. 자료 설명 속성 이름은 amzn-ddb-map-desc이고 속성 값은 실제 자료 설명입니다. 클라이언트는 자료 설명 속성의 값을 사용하여 항목을 확인하고 복호화합니다.

DynamoDB 암호화 컨텍스트

DynamoDB 암호화 컨텍스트는 테이블 및 항목에 대한 정보를 암호화 자료 공급자(CMP)에게 제공합니다. 고급 구현에서는 DynamoDB 암호화 컨텍스트에 요청한 자료 설명이 포함될 수 있습니다.

테이블 항목을 암호화하는 경우 DynamoDB 암호화 컨텍스트는 암호화된 속성 값에 암호로 바인딩됩니다. 복호화할 때 DynamoDB 암호화 컨텍스트가 암호화에 사용된 DynamoDB 암호화 컨텍스트와 대/소문자가 정확히 일치하지 않으면 복호화 작업이 실패합니다. 항목 암호화 도구와 직접 상호 작용하는 경우 암호화 또는 복호화 메서드를 호출할 때 DynamoDB 암호화 컨텍스트를 제공해야 합니다. 대부분의 헬퍼는 DynamoDB 암호화 컨텍스트를 자동으로 생성합니다.

참고

DynamoDB Encryption Client의 DynamoDB 암호화 컨텍스트는 AWS Key Management Service(AWS KMS) 및 AWS Encryption SDK의 암호화 컨텍스트와 관련이 없습니다.

DynamoDB 암호화 컨텍스트에는 다음 필드가 포함될 수 있습니다. 모든 필드와 값은 선택 사항입니다.

공급자 스토어

공급자 스토어암호화 자료 공급자(CMP)를 반환하는 구성 요소입니다. 공급자 스토어는 CMP를 생성하거나 다른 공급자 스토어와 같은 다른 소스에서 가져올 수 있습니다. 공급자 스토어는 생성한 CMP 버전을 영구 스토어에 저장합니다. 영구 스토어에는 저장된 각 CMP가 요청자의 자료 이름 및 버전 번호로 식별됩니다.

DynamoDB Encryption Client의 Most Recent Provider는 공급자 스토어에서 CMP를 가져오지만, 공급자 스토어를 사용하여 모든 구성 요소에 CMP를 제공할 수 있습니다. 각 Most Recent Provider는 공급자 스토어 하나와 연결되지만, 공급자 스토어 하나는 여러 요청자의 여러 공급자로 CMP를 제공할 수 있습니다.

공급자 스토어는 요청 시 새 버전의 CMP를 생성하고 새 버전과 기존 버전을 반환합니다. 또한 해당 자료얼 이름의 최신 버전 번호도 반환합니다. 이를 통해 요청자는 공급자 스토어에 요청할 수 있는 새 버전의 CMP가 있을 때 이를 알 수 있습니다.

DynamoDB Encryption Client에는 DynamoDB에 저장되고 내부 DynamoDB Encryption Client를 사용하여 암호화된 키로 래핑된 CMP를 생성하는 공급자 스토어인 MetaStore가 포함되어 있습니다.

자세히 알아보기: