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.
Topik
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.
-
Nama tabel
-
Nama kunci partisi
-
Nama kunci penyortiran
-
Atribut pasangan nama-nilai
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: