

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Bidang mana yang dienkripsi dan ditandatangani?
<a name="DDB-encrypted-and-signed"></a>


****  

|  | 
| --- |
| Pustaka enkripsi sisi klien kami diubah namanya menjadi SDK Enkripsi AWS Database. Panduan pengembang ini masih memberikan informasi tentang Klien Enkripsi [DynamoDB](legacy-dynamodb-encryption-client.md). | 

SDK Enkripsi AWS Database untuk DynamoDB adalah pustaka enkripsi sisi klien yang dirancang khusus untuk aplikasi Amazon DynamoDB. Amazon DynamoDB menyimpan data [dalam](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.CoreComponents.html#HowItWorks.CoreComponents.TablesItemsAttributes) tabel, yang merupakan kumpulan item. Setiap *item* adalah koleksi *atribut*. Tiap atribut memiliki nama dan nilai. SDK Enkripsi AWS Database untuk DynamoDB mengenkripsi nilai atribut. Kemudian, DynamoDB Encryption Client menghitung tanda tangan atas atribut. Anda dapat menentukan nilai atribut untuk dienkripsi dan yang disertakan dalam tanda tangan.

Enkripsi melindungi kerahasiaan nilai atribut. Penandatanganan menyediakan integritas semua atribut yang ditandatangani dan hubungan satu sama lain, dan menyediakan autentikasi. Hal ini memungkinkan Anda untuk mendeteksi perubahan yang tidak sah pada item secara keseluruhan, termasuk menambahkan atau menghapus atribut, atau mengganti satu nilai terenkripsi dengan yang lain.

Dalam item terenkripsi, beberapa data tetap dalam teks biasa, termasuk nama tabel, semua nama atribut, nilai atribut yang tidak Anda enkripsi, nama dan nilai atribut kunci primer (kunci partisi dan kunci sortir), dan jenis atribut. Jangan menyimpan data sensitif dalam bidang ini.

Untuk informasi selengkapnya tentang cara kerja SDK Enkripsi AWS Database untuk DynamoDB, lihat. [Cara kerja SDK Enkripsi AWS Database](how-it-works.md)

**catatan**  
[Semua penyebutan *tindakan atribut* dalam AWS Database Encryption SDK untuk topik DynamoDB mengacu pada tindakan kriptografi.](concepts.md#crypt-actions)

**Topics**
+ [Enkripsi nilai atribut](#encrypt-attribute-values)
+ [Penandatanganan item](#sign-the-item)

## Enkripsi nilai atribut
<a name="encrypt-attribute-values"></a>

SDK Enkripsi AWS Database untuk DynamoDB mengenkripsi nilai (tetapi bukan nama atau jenis atribut) atribut yang Anda tentukan. Untuk menentukan nilai atribut yang dienkripsi, gunakan [tindakan atribut](concepts.md#crypt-actions). 

Sebagai contoh, item ini termasuk atribut `example` dan `test`.

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

Jika Anda mengenkripsi atribut `example`, tetapi tidak mengenkripsi atribut `test`, hasilnya terlihat seperti berikut ini. Nilai atribut `example` yang dienkripsi adalah data biner, bukan string.

```
'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'
...
```

Atribut kunci primer - kunci partisi dan kunci sortir-dari setiap item harus tetap dalam plaintext karena DynamoDB menggunakannya untuk menemukan item dalam tabel. Atribut itu harus ditandatangani, tapi tidak dienkripsi. 

SDK Enkripsi AWS Database untuk DynamoDB mengidentifikasi atribut kunci utama untuk Anda dan memastikan bahwa nilainya ditandatangani, tetapi tidak dienkripsi. Dan, jika Anda mengidentifikasi kunci utama Anda dan kemudian mencoba untuk mengenkripsinya, klien akan melemparkan pengecualian.

Klien menyimpan [deskripsi materi](concepts.md#material-description) dalam atribut baru (`aws_dbe_head`) yang ditambahkan ke item. Deskripsi materi menjelaskan bagaimana item dienkripsi dan ditandatangani. Klien menggunakan informasi ini untuk memverifikasi dan mendekripsi item. Bidang yang menyimpan deskripsi materi tidak dienkripsi.

## Penandatanganan item
<a name="sign-the-item"></a>

[Setelah mengenkripsi nilai atribut yang ditentukan, SDK Enkripsi AWS Database untuk DynamoDB menghitung Kode Otentikasi Pesan Berbasis Hash (HMACs) dan [tanda tangan digital](concepts.md#digital-sigs) atas kanonikalisasi deskripsi materi, [konteks enkripsi](concepts.md#encryption-context), dan setiap bidang yang ditandai, atau dalam tindakan atribut. `ENCRYPT_AND_SIGN``SIGN_ONLY``SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT`](concepts.md#crypt-actions) Tanda tangan ECDSA diaktifkan secara default, tetapi tidak diperlukan. Klien menyimpan HMACs dan tanda tangan dalam atribut baru (`aws_dbe_foot`) yang ditambahkan ke item.