Konsep Amazon DynamoDB Encryption Client - AWS Enkripsi Database SDK

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

Konsep Amazon DynamoDB Encryption Client

catatan

Pustaka enkripsi sisi klien kami diubah namanya menjadi AWS Database Encryption SDK. Topik berikut memberikan informasi tentang versi 1. x —2. x dari DynamoDB Encryption Client untuk Java dan versi 1. x —3. x dari DynamoDB Encryption Client untuk Python. Untuk informasi selengkapnya, lihat SDK Enkripsi AWS Database untuk dukungan versi DynamoDB.

Topik ini menjelaskan konsep dan terminologi yang digunakan dalam Amazon DynamoDB Encryption Client.

Untuk mempelajari bagaimana komponen DynamoDB Encryption Client berinteraksi, lihat Cara kerja DynamoDB Encryption Client.

Penyedia materi kriptografis (CMP)

Saat mengimplementasikan DynamoDB Encryption Client, salah satu tugas pertama Anda adalah memilih penyedia materi kriptografis (CMP) (juga dikenal sebagai penyedia materi enkripsi). Pilihan Anda menentukan sebagian besar aspek lain dalam implementasinya.

Penyedia materi kriptografis (CMP) mengumpulkan, menyusun, dan mengembalikan materi kriptografis yang digunakan enkriptor item untuk mengenkripsi dan menandatangani item tabel Anda. CMP menentukan algoritma enkripsi yang digunakan serta cara menghasilkan dan melindungi kunci enkripsi dan penandatanganan.

CMP berinteraksi dengan enkriptor item. Enkriptor item meminta materi enkripsi atau dekripsi dari CMP, dan CMP mengembalikannya ke enkriptor item. Kemudian, enkriptor item menggunakan materi kriptografis untuk mengenkripsi dan menandatangani, atau memverifikasi dan mendekripsi, item.

Anda menentukan CMP saat Anda mengonfigurasi klien. Anda dapat membuat CMP kustom yang kompatibel, atau menggunakan salah satu dari banyak CMP di pustaka. Sebagian besar CMP tersedia untuk beberapa bahasa pemrograman.

Enkriptor item

Enkriptor item adalah komponen dengan tingkat yang lebih rendah yang melakukan operasi kriptografis untuk DynamoDB Encryption Client. Ia meminta materi kriptografis dari penyedia materi kriptografis (CMP), kemudian menggunakan materi yang dikembalikan CMP untuk mengenkripsi dan menandatangani, atau memverifikasi dan mendekripsi, item tabel Anda.

Anda dapat berinteraksi dengan enkriptor item secara langsung atau menggunakan bantuan yang disediakan pustaka Anda. Sebagai contoh, DynamoDB Encryption Client untuk Java mencakup kelas bantuan AttributeEncryptor yang dapat Anda gunakan dengan DynamoDBMapper, alih-alih berinteraksi secara langsung dengan enkriptor item DynamoDBEncryptor. Pustaka Python mencakup kelas bantuan EncryptedTable, EncryptedClient, dan EncryptedResource yang berinteraksi dengan enkriptor item untuk Anda.

Tindakan atribut

Tindakan atribut memberitahukan kepada enkriptor item tentang tindakan mana yang perlu dilakukan pada setiap atribut item.

Nilai tindakan atribut dapat menjadi berupa salah satu dari yang berikut:

  • Enkripsi dan tanda tangan – Enkripsi nilai atribut. Sertakan atribut (nama dan nilai) dalam tanda tangan item.

  • Hanya tanda tangan – Sertakan atribut dalam tanda tangan item.

  • Jangan lakukan apa pun – Jangan enkripsi atau tanda tangani atribut.

Untuk semua atribut yang dapat menyimpan data sensitif, gunakan Enkripsi dan tanda tangan. Untuk atribut kunci utama (kunci partisi dan kunci penyortiran), gunakan Hanya tanda tangan. Atribut deskripsi materi dan atribut tanda tangan tidak ditandatangani atau dienkripsi. Anda tidak perlu menentukan tindakan atribut untuk atribut ini.

Pilih tindakan atribut Anda dengan hati-hati. Bila ragu, gunakan Enkripsi dan tanda tangan. Begitu Anda menggunakan DynamoDB Encryption Client untuk melindungi item tabel Anda, Anda tidak dapat mengubah tindakan untuk atribut tanpa menimbulkan risiko kesalahan validasi tanda tangan. Untuk detailnya, lihat Mengubah model data Anda.

Awas

Jangan mengenkripsi atribut kunci utama. Atribut tersebut harus tetap dalam plaintext sehingga DynamoDB dapat menemukan item tanpa memindai keseluruhan tabel.

Jika konteks enkripsi DynamoDB mengidentifikasi atribut kunci utama Anda, klien akan menyebabkan kesalahan jika Anda mencoba mengenkripsinya.

Teknik yang Anda gunakan untuk menentukan tindakan atribut berbeda untuk setiap bahasa pemrograman. Ini mungkin juga spesifik untuk kelas bantuan yang Anda gunakan.

Untuk informasi lebih lanjut, lihat dokumentasi untuk bahasa pemrograman Anda.

Deskripsi materi

Deskripsi materi untuk item tabel terenkripsi terdiri atas informasi, seperti algoritma enkripsi, tentang bagaimana item tabel dienkripsi dan ditandatangani. Penyedia materi kriptografis (CMP) mencatat deskripsi materi saat menyusun materi kriptografis untuk enkripsi dan penandatanganan. Kemudian, ketika perlu menyusun materi kriptografis untuk memverifikasi dan mendekripsi item, ia menggunakan deskripsi materi sebagai panduan.

Pada DynamoDB Encryption Client, deskripsi materi mengacu pada tiga elemen terkait:

Deskripsi materi yang diminta

Beberapa penyedia materi kriptografis (CMP) memungkinkan Anda menentukan opsi lanjutan, seperti algoritma enkripsi. Untuk menunjukkan pilihan Anda, Anda menambahkan pasangan nama-nilai ke properti deskripsi materi dari konteks enkripsi DynamoDB dalam permintaan Anda untuk mengenkripsi item tabel. Elemen ini dikenal sebagai deskripsi materi yang diminta. Nilai yang valid dalam deskripsi materi yang diminta didefinisikan oleh CMP yang Anda pilih.

catatan

Karena deskripsi materi dapat menimpa nilai default yang aman, kami sarankan Anda menghilangkan deskripsi materi yang diminta kecuali jika Anda memiliki alasan kuat untuk menggunakannya.

Deskripsi materi aktual

Deskripsi materi yang dikembalikan penyedia materi kriptografis (CMP) dikenal sebagai deskripsi materi aktual. Ini menggambarkan nilai-nilai aktual yang digunakan CMP ketika menyusun materi kriptografis. Biasanya terdiri atas deskripsi materi yang diminta, jika ada, dengan penambahan dan perubahan.

Atribut deskripsi materi

Klien menyimpan deskripsi materi aktual dalam atribut deskripsi materi item yang dienkripsi. Nama atribut deskripsi materi adalah amzn-ddb-map-desc dan nilainya adalah deskripsi materi aktual. Klien menggunakan nilai dalam atribut deskripsi materi untuk memverifikasi dan mendekripsi item.

Konteks enkripsi DynamoDB

Konteks enkripsi DynamoDB menyediakan informasi tentang tabel dan item untuk penyedia materi kriptografis (CMP). Dalam implementasi lanjutan, konteks enkripsi DynamoDB dapat mencakup deskripsi materi yang diminta.

Ketika Anda mengenkripsi item tabel, konteks enkripsi DynamoDB secara kriptografis terikat dengan nilai-nilai atribut terenkripsi. Ketika Anda mendekripsi, jika konteks enkripsi DynamoDB tidak sama persis dalam hal penulisan huruf besar-kecil dengan konteks enkripsi DynamoDB yang digunakan untuk mengenkripsi, operasi dekripsi gagal. Jika Anda berinteraksi dengan enkriptor item secara langsung, Anda harus menyediakan konteks enkripsi DynamoDB ketika Anda memanggil metode enkripsi atau dekripsi. Kebanyakan bantuan membuat konteks enkripsi DynamoDB untuk Anda.

catatan

Konteks enkripsi DynamoDB di DynamoDB Encryption Client tidak terkait dengan konteks enkripsi di AWS Key Management Service (AWS KMS) dan AWS Encryption SDK.

Konteks enkripsi DynamoDB dapat mencakup bidang berikut. Semua bidang dan nilai bersifat opsional.

Penyimpanan penyedia

Penyimpanan penyedia adalah komponen yang mengembalikan penyedia materi kriptografis (CMP). Penyimpanan penyedia dapat membuat CMP atau mendapatkannya dari sumber lain, seperti penyimpanan penyedia lain. Penyimpanan penyedia menyimpan versi CMP yang dibuatnya dalam penyimpanan tetap di mana setiap CMP yang disimpan diidentifikasi berdasarkan nama materi peminta dan nomor versi.

Penyedia Terbaru di DynamoDB Encryption Client mendapatkan CMP-nya dari penyimpanan penyedia, tetapi Anda dapat menggunakan penyimpanan penyedia untuk memasok CMP untuk komponen apa pun. Setiap Penyedia Terbaru dikaitkan dengan satu penyimpanan penyedia, tetapi penyimpanan penyedia dapat memasok CMP untuk banyak peminta di beberapa host.

Penyimpanan penyedia membuat versi baru CMP sesuai permintaan, serta mengembalikan versi baru dan yang sudah ada. Penyimpanan penyedia ini juga mengembalikan nomor versi terbaru untuk nama materi tertentu. Hal ini memungkinkan peminta tahu kapan penyimpanan penyedia memiliki versi baru dari CMP yang dapat diminta.

Klien Enkripsi DynamoDB menyertakan MetaStore, yang merupakan toko penyedia yang membuat Wrapped CMP dengan kunci yang disimpan di DynamoDB dan dienkripsi dengan menggunakan Klien Enkripsi DynamoDB internal.

Pelajari lebih lanjut: