Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan beacon
Pustaka enkripsi sisi klien kami diubah namanya menjadi SDK Enkripsi AWS Database. Panduan pengembang ini masih memberikan informasi tentang Klien Enkripsi DynamoDB. |
Beacon memungkinkan Anda untuk mencari catatan terenkripsi tanpa mendekripsi seluruh database yang sedang ditanyakan. Beacon dirancang untuk diimplementasikan dalam database baru yang tidak berpenghuni. Setiap suar yang dikonfigurasi dalam database yang ada hanya akan memetakan catatan baru yang ditulis ke database. Beacon dihitung dari nilai plaintext bidang, setelah bidang dienkripsi, tidak ada cara bagi beacon untuk memetakan data yang ada. Setelah Anda menulis catatan baru dengan suar, Anda tidak dapat memperbarui konfigurasi suar. Namun, Anda dapat menambahkan menambahkan beacon baru untuk bidang baru yang Anda tambahkan ke catatan Anda.
Setelah Anda mengkonfigurasi beacon Anda, Anda harus menyelesaikan langkah-langkah berikut sebelum Anda mulai mengisi database Anda dan melakukan query pada beacon Anda.
-
Buat keyring AWS KMS Hierarkis
Untuk menggunakan enkripsi yang dapat dicari, Anda harus menggunakan keyring AWS KMS Hierarkis untuk menghasilkan, mengenkripsi, dan mendekripsi kunci data yang digunakan untuk melindungi catatan Anda.
Untuk detail selengkapnya tentang mengapa keyring Hierarkis diperlukan, lihat Menggunakan keyring Hierarkis untuk enkripsi yang dapat dicari.
-
Tentukan versi beacon
Tentukan
keyStore
keySource
, daftar semua suar standar yang Anda konfigurasikan, daftar semua suar majemuk yang Anda konfigurasikan, daftar bagian terenkripsi, daftar bagian yang ditandatangani, dan versi suar. Anda harus menentukan1
untuk versi beacon. Untuk panduan tentang mendefinisikan AndakeySource
, lihatMendefinisikan sumber kunci suar Anda.Contoh Java berikut mendefinisikan versi beacon untuk database penyewa tunggal. Untuk bantuan mendefinisikan versi beacon untuk database multitenant, lihat Enkripsi yang dapat dicari untuk database multitenant.
-
Konfigurasikan indeks sekunder
Setelah Anda mengkonfigurasi beacon Anda, Anda harus mengkonfigurasi indeks sekunder yang mencerminkan setiap suar sebelum Anda dapat mencari di bidang terenkripsi. Untuk informasi selengkapnya, lihat Mengkonfigurasi indeks sekunder dengan beacon.
-
Tentukan tindakan kriptografi Anda
Semua bidang yang digunakan untuk membangun suar standar harus ditandai.
ENCRYPT_AND_SIGN
Semua bidang lain yang digunakan untuk membangun beacon harus ditandai atau.SIGN_ONLY
SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
-
Konfigurasikan klien SDK Enkripsi AWS Database
Untuk mengonfigurasi klien SDK Enkripsi AWS Database yang melindungi item tabel di tabel DynamoDB Anda, lihat pustaka enkripsi sisi klien Java untuk DynamoDB.
Meminta suar
Jenis suar yang Anda konfigurasikan menentukan jenis kueri yang dapat Anda lakukan. Beacon standar menggunakan ekspresi filter untuk melakukan pencarian kesetaraan. Compound beacon menggabungkan string plaintext literal dan beacon standar untuk melakukan kueri kompleks. Saat Anda menanyakan data terenkripsi, Anda mencari nama suar.
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
)
Compound beacon dapat melakukan query berikut.
-
BEGINS_WITH(
, di manaa
)
mencerminkan seluruh nilai bidang tempat suar majemuk rakitan dimulai. Anda tidak dapat menggunakana
BEGINS_WITH
operator untuk mengidentifikasi nilai yang dimulai dengan substring tertentu. Namun, Anda dapat menggunakanBEGINS_WITH(
, di manaS_
)
mencerminkan awalan untuk bagian yang dimulai dengan suar majemuk rakitan.S_
-
CONTAINS(
, di manaa
)
mencerminkan seluruh nilai bidang yang terkandung dalam suar majemuk rakitan. Anda tidak dapat menggunakana
CONTAINS
operator untuk mengidentifikasi catatan yang berisi substring tertentu atau nilai dalam satu set.Misalnya, Anda tidak dapat melakukan
CONTAINS(
kueri yangpath
, "a
"
mencerminkan nilai dalam satu set.a
-
Anda dapat membandingkan bagian yang ditandatangani dari suar majemuk. Saat membandingkan bagian yang ditandatangani, Anda dapat menambahkan awalan bagian terenkripsi secara opsional ke satu atau beberapa bagian yang ditandatangani, tetapi Anda tidak dapat menyertakan nilai bidang terenkripsi dalam kueri apa pun.
Misalnya, Anda dapat membandingkan bagian yang ditandatangani dan kueri pada
atausignedField1
=signedField2
.value
IN (signedField1
,signedField2
, ...)Anda juga dapat membandingkan bagian yang ditandatangani dan awalan dari bagian terenkripsi dengan kueri pada.
signedField1.A_
=signedField2.B_
-
, di manafield
BETWEENa
ANDb
dana
merupakan bagian yang ditandatangani. Anda secara opsional dapat menambahkan awalan dari bagian terenkripsi ke satu atau beberapa bagian yang ditandatangani, tetapi Anda tidak dapat menyertakan nilai bidang terenkripsi dalam kueri apa pun.b
Anda harus menyertakan awalan untuk setiap bagian yang Anda sertakan dalam kueri pada suar majemuk. Misalnya, jika Anda membuat suar majemuk,, dari dua bidangcompoundBeacon
, encryptedField
dansignedField
, Anda harus menyertakan awalan yang dikonfigurasi untuk dua bagian tersebut saat Anda menanyakan suar.
compoundBeacon = E_
encryptedFieldValue
.S_signedFieldValue