

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

# 암호화 및 서명되는 필드
<a name="DDB-encrypted-and-signed"></a>


****  

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

 AWS Database Encryption SDK for DynamoDB는 Amazon DynamoDB 애플리케이션용으로 특별히 설계된 클라이언트 측 암호화 라이브러리입니다. Amazon DynamoDB는 항목 모음인 [테이블](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.CoreComponents.html#HowItWorks.CoreComponents.TablesItemsAttributes)에 데이터를 저장합니다. 각 *항목*은 *속성* 모음입니다. 각 속성마다 이름과 값이 있습니다. AWS Database Encryption SDK for DynamoDB는 속성 값을 암호화합니다. 그런 다음 속성에 대한 서명을 계산합니다. 암호화할 속성 값과 서명에 포함할 속성 값을 지정할 수 있습니다.

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

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

 AWS Database Encryption SDK for DynamoDB의 작동 방식에 대한 자세한 내용은 섹션을 참조하세요[AWS Database Encryption SDK 작동 방식](how-it-works.md).

**참고**  
 AWS Database Encryption SDK for DynamoDB 주제의 *속성 작업에* 대한 모든 언급은 [암호화 작업을](concepts.md#crypt-actions) 참조합니다.

**Topics**
+ [속성 값 암호화](#encrypt-attribute-values)
+ [항목에 서명](#sign-the-item)

## 속성 값 암호화
<a name="encrypt-attribute-values"></a>

 AWS Database Encryption SDK for DynamoDB는 지정한 속성의 값(속성 이름 또는 유형은 아님)을 암호화합니다. 암호화된 속성 값을 확인하려면 [속성 작업](concepts.md#crypt-actions)을 사용합니다.

예를 들어 이 항목에는 `example` 및 `test` 속성이 포함됩니다.

```
'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가 테이블에서 항목을 찾는 데 사용하기 때문에 일반 텍스트로 유지되어야 합니다. 서명은 해야 하지만 암호화해서는 안 됩니다.

 AWS Database Encryption SDK for DynamoDB는 기본 키 속성을 식별하고 값이 서명되었지만 암호화되지 않았는지 확인합니다. 그리고 프라이머리 키를 식별한 다음 암호화하려고 하면 클라이언트에서 예외가 발생합니다.

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

## 항목에 서명
<a name="sign-the-item"></a>

지정된 속성 값을 암호화한 후 AWS Database Encryption SDK for DynamoDB는 자료 설명, [암호화 컨텍스트](concepts.md#encryption-context) 및 [속성 작업](concepts.md#crypt-actions)`SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT`에서 `ENCRYPT_AND_SIGN`, `SIGN_ONLY`또는 로 표시된 각 필드의 표준화를 통해 해시 기반 메시지 인증 코드(HMACs)와 [디지털 서명을](concepts.md#digital-sigs) 계산합니다. ECDSA 서명은 기본적으로 활성화되어 있지만 필수는 아닙니다. 클라이언트는 항목에 추가하는 새 속성(`aws_dbe_foot`)에 HMAC와 서명을 저장합니다.