암호화 및 서명되는 필드 - AWS 데이터베이스 암호화 SDK

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

암호화 및 서명되는 필드

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

DynamoDB용 AWS 데이터베이스 암호화 SDK는 Amazon DynamoDB 애플리케이션을 위해 특별히 설계된 클라이언트 측 암호화 라이브러리입니다. Amazon DynamoDB는 항목 모음인 테이블에 데이터를 저장합니다. 각 항목속성 모음입니다. 각 속성마다 이름과 값이 있습니다. DynamoDB용 AWS 데이터베이스 암호화 SDK는 속성 값을 암호화합니다. 그런 다음 속성에 대한 서명을 계산합니다. 암호화할 속성 값과 서명에 포함할 속성 값을 지정할 수 있습니다.

암호화는 속성 값의 기밀성을 보호합니다. 서명은 서명된 모든 속성과 속성 간 관계의 무결성을 제공하고 인증을 제공합니다. 속성을 추가 또는 삭제하거나 암호화된 값을 다른 값으로 대체하는 등 항목 전체에 대한 무단 변경을 탐지할 수 있습니다.

암호화된 항목에서 테이블 이름, 모든 속성 이름, 암호화하지 않은 속성 값, 프라이머리 키(파티션 키 및 정렬 키) 속성의 이름과 값, 속성 유형을 포함한 일부 데이터는 일반 텍스트로 유지됩니다. 이 필드에는 민감한 데이터를 저장하지 마세요.

DynamoDB용 AWS 데이터베이스 암호화 SDK의 작동 방식에 대한 자세한 내용은 을 참조하십시오. AWS 데이터베이스 암호화 SDK 작동 방식

속성 값 암호화

DynamoDB용 AWS 데이터베이스 암호화 SDK는 지정한 속성의 값 (속성 이름 또는 유형은 암호화하지 않음) 을 암호화합니다. 암호화된 속성 값을 확인하려면 속성 작업을 사용합니다.

예를 들어 이 항목에는 exampletest 속성이 포함됩니다.

'example': 'data', 'test': 'test-value', ...

example 속성을 암호화하지만 test 속성을 암호화하지 않으면 결과는 다음과 같습니다. 암호화된 example 속성 값은 문자열이 아닌 이진 데이터입니다.

'example': Binary(b"'b\x933\x9a+s\xf1\xd6a\xc5\xd5\x1aZ\xed\xd6\xce\xe9X\xf0T\xcb\x9fY\x9f\xf3\xc9C\x83\r\xbb\\"), 'test': 'test-value' ...

각 항목의 프라이머리 키 속성(파티션 키 및 정렬 키)은 DynamoDB가 테이블에서 항목을 찾는 데 사용하기 때문에 일반 텍스트로 유지되어야 합니다. 서명은 해야 하지만 암호화해서는 안 됩니다.

DynamoDB용 AWS 데이터베이스 암호화 SDK는 기본 키 속성을 자동으로 식별하고 해당 값이 서명되기는 하지만 암호화되지는 않았는지 확인합니다. 그리고 프라이머리 키를 식별한 다음 암호화하려고 하면 클라이언트에서 예외가 발생합니다.

클라이언트는 항목에 추가하는 새 속성(aws_dbe_head)에 자료 설명을 저장합니다. 자료 설명은 항목이 암호화되고 서명된 방법을 설명합니다. 클라이언트는 이 정보를 사용하여 항목을 확인하고 암호를 복호화합니다. 자료 설명을 저장하는 필드는 암호화되지 않습니다.

항목에 서명

DynamoDB용 AWS 데이터베이스 암호화 SDK는 지정된 속성값을 암호화한 후 재료 설명, 암호화 컨텍스트 및 속성 작업에 또는 로 표시된 각 필드를 정규화하여 해시 기반 메시지 인증 코드 (HMAC) 와 디지털 서명을 계산합니다. ENCRYPT_AND_SIGNSIGN_ONLYSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT ECDSA 서명은 기본적으로 활성화되어 있지만 필수는 아닙니다. 클라이언트는 항목에 추가하는 새 속성(aws_dbe_foot)에 HMAC와 서명을 저장합니다.