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 -
beacon1IN (beacon2) -
valueIN (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_last4bidang perlu dienkripsi, tetapi Anda masih memerlukan kueri untuk kecocokan yang tepat, buat suar standar dari bidang tersebut.inspector_id_last4Kemudian, 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,
SSNbidang dienkripsi.Jika Anda ingin menanyakan
SSNbidang menggunakan empat digit terakhir dari nomor jaminan sosial, buat bidang virtual yang mengidentifikasi segmen yang ingin Anda kueri.Last4SSNBidang virtual, dibangun dariSuffix(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 denganSSNnilai 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
FirstNamedan bidang, Anda dapat membuatLastNamebidang virtual, dibangun dari huruf pertamaNameTagbidang, diikuti olehFirstNamebidang, semuanya dalamLastNamehuruf kecil. Gunakan bidang virtual ini untuk membangun suar standar. Kemudian, gunakan suar standar untuk membuat indeks sekunder. Anda dapat menggunakan indeks sekunder ini untuk kueriNameTag=mjonespada bidang virtual.Setidaknya salah satu bidang sumber harus dienkripsi. Entah
FirstNameatauLastNamebisa dienkripsi, atau keduanya bisa dienkripsi. Setiap bidang sumber teks biasa harus ditandai sebagaiSIGN_ONLYatauSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXTdalam 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
UnitInspectiondatabase untuk pencocokan yang tepatinspector_id_last4.unit, pertama-tama buat beacon standar yang berbeda untuk bidanginspector_id_last4danunit. 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 pada
inspector_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
UnitInspectiondatabase padainspector_id_last4daninspector_id_last4.unit, pertama buat beacon standar yang berbeda untukinspector_id_last4danunitbidang. 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
UnitInspectiondatabase 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
UnitInspectiondatabase untuk inspeksi yang dilakukan oleh inspektur tertentu pada tanggal tertentu, pertama-tama buat suar standar untuk bidang tersebut.inspector_id_last4inspector_id_last4Bidang ditandaiENCRYPT_AND_SIGNdalam tindakan kriptografi. Semua bagian terenkripsi memerlukan suar standar mereka sendiri.inspection_dateBidang ditandaiSIGN_ONLYdan tidak memerlukan suar standar. Selanjutnya, buat suar majemuk dariinspection_datelapangan dan suarinspector_id_last4standar.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
8744dilakukan 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_daterentang, atau kueri database untuk inspeksi yang dilakukan pada tertentu yanginspection_datedibatasi olehinspector_id_last4atauinspector_id_last4.unit, pertama-tama buat beacon standar yang berbeda untuk bidang dan.inspector_id_last4unitKemudian, buat suar majemuk dariinspection_datebidang 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.