Memilih jenis suar - AWS SDK Enkripsi Basis Data

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

Memilih jenis suar

Pustaka enkripsi sisi klien kami diubah namanya menjadi SDK Enkripsi AWS Database. Panduan pengembang ini masih memberikan informasi tentang Klien Enkripsi DynamoDB.

Dengan enkripsi yang dapat dicari, Anda dapat mencari catatan terenkripsi dengan memetakan nilai teks biasa di bidang terenkripsi dengan suar. Jenis suar yang Anda konfigurasikan menentukan jenis kueri yang dapat Anda lakukan.

Kami sangat menyarankan untuk mengidentifikasi dan merencanakan jenis kueri yang perlu Anda lakukan sebelum mengonfigurasi beacon Anda. Setelah Anda mengkonfigurasi beacon Anda, Anda harus mengkonfigurasi indeks sekunder untuk setiap suar sebelum Anda dapat mencari di bidang terenkripsi. Untuk informasi selengkapnya, lihat Mengkonfigurasi indeks sekunder dengan beacon.

Beacon membuat peta antara nilai plaintext yang ditulis ke bidang dan nilai terenkripsi yang sebenarnya disimpan dalam database Anda. Anda tidak dapat membandingkan nilai dari dua beacon standar, bahkan jika mereka mengandung plaintext dasar yang sama. Dua beacon standar akan menghasilkan dua tag HMAC yang berbeda untuk nilai plaintext yang sama. Akibatnya, beacon standar tidak dapat melakukan kueri berikut.

  • beacon1 = beacon2

  • beacon1 IN (beacon2)

  • value IN (beacon1, beacon2, ...)

  • CONTAINS(beacon1, beacon2)

Anda hanya dapat melakukan kueri di atas jika Anda membandingkan bagian yang ditandatangani dari suar majemuk, dengan pengecualian CONTAINS operator, yang dapat Anda gunakan dengan suar majemuk untuk mengidentifikasi seluruh nilai bidang terenkripsi atau ditandatangani yang berisi suar rakitan. Ketika Anda membandingkan bagian yang ditandatangani, Anda dapat secara opsional menyertakan awalan dari bagian terenkripsi, tetapi Anda tidak dapat menyertakan nilai terenkripsi bidang. Untuk informasi selengkapnya tentang jenis kueri yang dapat dilakukan oleh beacon standar dan gabungan, lihat Menanyakan suar.

Pertimbangkan solusi enkripsi yang dapat dicari berikut saat Anda meninjau pola akses database Anda. Contoh berikut menentukan suar mana yang akan dikonfigurasi untuk memenuhi persyaratan enkripsi dan kueri yang berbeda.

Beacon standar

Beacon standar hanya dapat melakukan pencarian kesetaraan. Anda dapat menggunakan beacon standar untuk melakukan kueri berikut.

Kueri satu bidang terenkripsi

Jika Anda ingin mengidentifikasi catatan yang berisi nilai tertentu untuk bidang terenkripsi, buat suar standar.

Untuk contoh berikut, pertimbangkan database bernama UnitInspection yang melacak data inspeksi untuk fasilitas produksi. Setiap catatan dalam database berisi bidang yang disebutwork_id,inspection_date,inspector_id_last4, danunit. ID inspektur lengkap adalah angka antara 0—999.999.999. Namun, untuk memastikan bahwa kumpulan data didistribusikan secara merata, inspector_id_last4 satu-satunya menyimpan empat digit terakhir dari ID inspektur. Setiap bidang dalam database diidentifikasi oleh kunci utamawork_id. unitBidang inspector_id_last4 dan ditandai ENCRYPT_AND_SIGN dalam tindakan kriptografi.

Berikut ini adalah contoh entri plaintext dalam database. UnitInspection

{ "work_id": "1c7fcff3-6e74-41a8-b7f7-925dc039830b", "inspection_date": 2023-06-07, "inspector_id_last4": 8744, "unit": 229304973450 }
Kueri satu bidang terenkripsi dalam catatan

Jika inspector_id_last4 bidang perlu dienkripsi, tetapi Anda masih memerlukan kueri untuk kecocokan yang tepat, buat suar standar dari bidang tersebut. inspector_id_last4 Kemudian, gunakan suar standar untuk membuat indeks sekunder. Anda dapat menggunakan indeks sekunder ini untuk kueri pada bidang terenkripsi. inspector_id_last4

Untuk bantuan mengonfigurasi suar standar, lihat Mengonfigurasi suar standar.

Kueri bidang virtual

Bidang virtual adalah bidang konseptual yang dibangun dari satu atau lebih bidang sumber. Jika Anda ingin melakukan pencarian kesetaraan untuk segmen tertentu dari bidang terenkripsi, atau melakukan pencarian kesetaraan pada rangkaian beberapa bidang, buat suar standar dari bidang virtual. Semua bidang virtual harus menyertakan setidaknya satu bidang sumber terenkripsi.

Contoh berikut membuat bidang virtual untuk Employees database. Berikut ini adalah contoh catatan plaintext dalam database. Employees

{ "EmployeeID": 101, "SSN": 000-00-0000, "LastName": "Jones", "FirstName": "Mary", "Address": { "Street": "123 Main", "City": "Anytown", "State": "OH", "ZIPCode": 12345 } }
Kueri segmen bidang terenkripsi

Untuk contoh ini, SSN bidang dienkripsi.

Jika Anda ingin menanyakan SSN bidang menggunakan empat digit terakhir dari nomor jaminan sosial, buat bidang virtual yang mengidentifikasi segmen yang ingin Anda kueri.

Last4SSNBidang virtual, dibangun dari Suffix(4) memungkinkan Anda untuk queryLast4SSN=0000. Gunakan bidang virtual ini untuk membangun suar standar. Kemudian, gunakan suar standar untuk membuat indeks sekunder. Anda dapat menggunakan indeks sekunder ini untuk kueri pada bidang virtual. Kueri ini mengembalikan semua catatan dengan SSN nilai yang berakhir dengan empat digit terakhir yang Anda tentukan.

Kueri penggabungan beberapa bidang
catatan

Contoh berikut menunjukkan jenis transformasi dan kueri yang dapat Anda lakukan dengan bidang virtual. Dalam aplikasi, bidang contoh yang digunakan dalam contoh ini mungkin tidak memenuhi rekomendasi keunikan distribusi dan korelasi untuk beacon.

Jika Anda ingin melakukan pencarian kesetaraan pada rangkaian FirstName dan bidang, Anda dapat membuat LastName bidang virtual, dibangun dari huruf pertama NameTag bidang, diikuti oleh FirstName bidang, semuanya dalam LastName huruf kecil. Gunakan bidang virtual ini untuk membangun suar standar. Kemudian, gunakan suar standar untuk membuat indeks sekunder. Anda dapat menggunakan indeks sekunder ini untuk kueri NameTag=mjones pada bidang virtual.

Setidaknya salah satu bidang sumber harus dienkripsi. Entah FirstName atau LastName bisa dienkripsi, atau keduanya bisa dienkripsi. Setiap bidang sumber teks biasa harus ditandai sebagai SIGN_ONLY atau SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT dalam tindakan kriptografi Anda.

Untuk bantuan mengonfigurasi bidang virtual dan beacon yang menggunakannya, lihat Membuat bidang virtual.

Suar majemuk

Compound beacon membuat indeks dari string plaintext literal dan beacon standar untuk melakukan operasi database yang kompleks. Anda dapat menggunakan suar majemuk untuk melakukan kueri berikut.

Kueri kombinasi bidang terenkripsi pada satu indeks

Jika Anda perlu menanyakan kombinasi bidang terenkripsi pada satu indeks, buat suar majemuk yang menggabungkan beacon standar individual yang dibangun untuk setiap bidang terenkripsi untuk membentuk indeks tunggal.

Setelah mengonfigurasi suar majemuk, Anda dapat membuat indeks sekunder yang menentukan suar majemuk sebagai kunci partisi untuk melakukan kueri pencocokan persis atau dengan kunci pengurutan untuk melakukan kueri yang lebih kompleks. Indeks sekunder yang menentukan suar majemuk sebagai kunci pengurutan dapat melakukan kueri pencocokan persis dan kueri kompleks yang lebih disesuaikan.

Untuk contoh berikut, pertimbangkan database bernama UnitInspection yang melacak data inspeksi untuk fasilitas produksi. Setiap catatan dalam database berisi bidang yang disebutwork_id,inspection_date,inspector_id_last4, danunit. ID inspektur lengkap adalah angka antara 0—999.999.999. Namun, untuk memastikan bahwa kumpulan data didistribusikan secara merata, inspector_id_last4 satu-satunya menyimpan empat digit terakhir dari ID inspektur. Setiap bidang dalam database diidentifikasi oleh kunci utamawork_id. unitBidang inspector_id_last4 dan ditandai ENCRYPT_AND_SIGN dalam tindakan kriptografi.

Berikut ini adalah contoh entri plaintext dalam database. UnitInspection

{ "work_id": "1c7fcff3-6e74-41a8-b7f7-925dc039830b", "inspection_date": 2023-06-07, "inspector_id_last4": 8744, "unit": 229304973450 }
Lakukan pencarian kesetaraan pada kombinasi bidang terenkripsi

Jika Anda ingin menanyakan UnitInspection database untuk pencocokan yang tepatinspector_id_last4.unit, pertama-tama buat beacon standar yang berbeda untuk bidang inspector_id_last4 danunit. Kemudian, buat suar majemuk dari dua suar standar.

Setelah Anda mengkonfigurasi suar majemuk, buat indeks sekunder yang menentukan suar majemuk sebagai kunci partisi. Gunakan indeks sekunder ini untuk menanyakan kecocokan yang tepat padainspector_id_last4.unit. Misalnya, Anda dapat menanyakan suar ini untuk menemukan daftar inspeksi yang dilakukan inspektur untuk unit tertentu.

Lakukan kueri kompleks pada kombinasi bidang terenkripsi

Jika Anda ingin menanyakan UnitInspection database pada inspector_id_last4 daninspector_id_last4.unit, pertama buat beacon standar yang berbeda untuk inspector_id_last4 dan unit bidang. Kemudian, buat suar majemuk dari dua suar standar.

Setelah Anda mengkonfigurasi suar majemuk, buat indeks sekunder yang menentukan suar majemuk sebagai kunci pengurutan. Gunakan indeks sekunder ini untuk menanyakan UnitInspection database untuk entri yang dimulai dengan inspektur tertentu atau kueri database untuk daftar semua unit dalam rentang ID unit tertentu yang diperiksa oleh inspektur tertentu. Anda juga dapat melakukan pencarian kecocokan tepat padainspector_id_last4.unit.

Untuk bantuan mengonfigurasi suar majemuk, lihat Mengonfigurasi suar majemuk.

Kueri kombinasi bidang terenkripsi dan teks biasa pada satu indeks

Jika Anda perlu menanyakan kombinasi bidang terenkripsi dan teks biasa pada satu indeks, buat suar majemuk yang menggabungkan beacon standar individu dan bidang teks biasa untuk membentuk indeks tunggal. Bidang plaintext yang digunakan untuk membangun suar majemuk harus ditandai SIGN_ONLY atau SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT dalam tindakan kriptografi Anda.

Setelah mengonfigurasi suar majemuk, Anda dapat membuat indeks sekunder yang menentukan suar majemuk sebagai kunci partisi untuk melakukan kueri pencocokan persis atau dengan kunci pengurutan untuk melakukan kueri yang lebih kompleks. Indeks sekunder yang menentukan suar majemuk sebagai kunci pengurutan dapat melakukan kueri pencocokan persis dan kueri kompleks yang lebih disesuaikan.

Untuk contoh berikut, pertimbangkan database bernama UnitInspection yang melacak data inspeksi untuk fasilitas produksi. Setiap catatan dalam database berisi bidang yang disebutwork_id,inspection_date,inspector_id_last4, danunit. ID inspektur lengkap adalah angka antara 0—999.999.999. Namun, untuk memastikan bahwa kumpulan data didistribusikan secara merata, inspector_id_last4 satu-satunya menyimpan empat digit terakhir dari ID inspektur. Setiap bidang dalam database diidentifikasi oleh kunci utamawork_id. unitBidang inspector_id_last4 dan ditandai ENCRYPT_AND_SIGN dalam tindakan kriptografi.

Berikut ini adalah contoh entri plaintext dalam database. UnitInspection

{ "work_id": "1c7fcff3-6e74-41a8-b7f7-925dc039830b", "inspection_date": 2023-06-07, "inspector_id_last4": 8744, "unit": 229304973450 }
Lakukan pencarian kesetaraan pada kombinasi bidang

Jika Anda ingin menanyakan UnitInspection database untuk inspeksi yang dilakukan oleh inspektur tertentu pada tanggal tertentu, pertama-tama buat suar standar untuk bidang tersebut. inspector_id_last4 inspector_id_last4Bidang ditandai ENCRYPT_AND_SIGN dalam tindakan kriptografi. Semua bagian terenkripsi memerlukan suar standar mereka sendiri. inspection_dateBidang ditandai SIGN_ONLY dan tidak memerlukan suar standar. Selanjutnya, buat suar majemuk dari inspection_date lapangan dan suar inspector_id_last4 standar.

Setelah Anda mengkonfigurasi suar majemuk, buat indeks sekunder yang menentukan suar majemuk sebagai kunci partisi. Gunakan indeks sekunder ini untuk menanyakan database untuk catatan dengan kecocokan persis dengan inspektur dan tanggal inspeksi tertentu. Misalnya, Anda dapat menanyakan database untuk daftar semua inspeksi yang 8744 dilakukan oleh inspektur yang ID-nya berakhir pada tanggal tertentu.

Lakukan kueri kompleks pada kombinasi bidang

Jika Anda ingin menanyakan database untuk inspeksi yang dilakukan dalam inspection_date rentang, atau kueri database untuk inspeksi yang dilakukan pada tertentu yang inspection_date dibatasi oleh inspector_id_last4 atauinspector_id_last4.unit, pertama-tama buat beacon standar yang berbeda untuk bidang dan. inspector_id_last4 unit Kemudian, buat suar majemuk dari inspection_date bidang plaintext dan dua beacon standar.

Setelah Anda mengkonfigurasi suar majemuk, buat indeks sekunder yang menentukan suar majemuk sebagai kunci pengurutan. Gunakan indeks sekunder ini untuk melakukan kueri untuk inspeksi yang dilakukan pada tanggal tertentu oleh inspektur tertentu. Misalnya, Anda dapat menanyakan database untuk daftar semua unit yang diperiksa pada tanggal yang sama. Atau, Anda dapat menanyakan database untuk daftar semua inspeksi yang dilakukan pada unit tertentu di antara rentang tanggal inspeksi tertentu.

Untuk bantuan mengonfigurasi suar majemuk, lihat Mengonfigurasi suar majemuk.