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
. unit
Bidang 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.Last4SSN
Bidang 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 denganSSN
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 membuatLastName
bidang virtual, dibangun dari huruf pertamaNameTag
bidang, diikuti olehFirstName
bidang, semuanya dalamLastName
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 kueriNameTag=mjones
pada bidang virtual.Setidaknya salah satu bidang sumber harus dienkripsi. Entah
FirstName
atauLastName
bisa dienkripsi, atau keduanya bisa dienkripsi. Setiap bidang sumber teks biasa harus ditandai sebagaiSIGN_ONLY
atauSIGN_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
. unit
Bidang 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 bidanginspector_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 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
UnitInspection
database padainspector_id_last4
daninspector_id_last4.unit
, pertama buat beacon standar yang berbeda untukinspector_id_last4
danunit
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
. unit
Bidang 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_last4
Bidang ditandaiENCRYPT_AND_SIGN
dalam tindakan kriptografi. Semua bagian terenkripsi memerlukan suar standar mereka sendiri.inspection_date
Bidang ditandaiSIGN_ONLY
dan tidak memerlukan suar standar. Selanjutnya, buat suar majemuk dariinspection_date
lapangan dan suarinspector_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 yanginspection_date
dibatasi olehinspector_id_last4
atauinspector_id_last4.unit
, pertama-tama buat beacon standar yang berbeda untuk bidang dan.inspector_id_last4
unit
Kemudian, buat suar majemuk dariinspection_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.