Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengkonfigurasi beacon
Pustaka enkripsi sisi klien kami diubah namanya menjadi SDK Enkripsi AWS Database. Panduan pengembang ini masih memberikan informasi tentang Klien Enkripsi DynamoDB. |
Ada dua jenis beacon yang mendukung enkripsi yang dapat dicari. Beacon standar melakukan pencarian kesetaraan. Mereka adalah cara paling sederhana untuk menerapkan enkripsi yang dapat dicari di database Anda. Compound beacon menggabungkan string plaintext literal dan beacon standar untuk melakukan kueri yang lebih kompleks.
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 beacon baru untuk bidang baru yang Anda tambahkan ke catatan Anda.
Setelah menentukan pola akses Anda, mengonfigurasi beacon harus menjadi langkah kedua dalam implementasi database Anda. Kemudian, setelah Anda mengkonfigurasi semua beacon Anda, Anda perlu membuat keyring AWS KMS Hierarkis, menentukan versi suar, mengonfigurasi indeks sekunder untuk setiap suar, menentukan tindakan kriptografi Anda, dan mengkonfigurasi database dan klien SDK Enkripsi Database Anda. AWS Untuk informasi selengkapnya, lihat Menggunakan beacon.
Untuk membuatnya lebih mudah untuk menentukan versi beacon, kami sarankan membuat daftar untuk beacon standar dan majemuk. Tambahkan setiap suar yang Anda buat ke daftar suar standar atau gabungan masing-masing saat Anda mengonfigurasinya.
Mengkonfigurasi beacon standar
Beacon standar adalah cara paling sederhana untuk mengimplementasikan enkripsi yang dapat dicari di database Anda. Mereka hanya dapat melakukan pencarian kesetaraan untuk satu bidang terenkripsi atau virtual.
Contoh sintaks konfigurasi
Untuk mengkonfigurasi suar standar, berikan nilai berikut.
- Nama suar
-
Nama yang Anda gunakan saat menanyakan bidang terenkripsi.
Nama suar dapat berupa nama yang sama dengan bidang terenkripsi atau bidang virtual, tetapi tidak bisa nama yang sama dengan bidang yang tidak terenkripsi. Kami sangat menyarankan untuk menggunakan nama bidang terenkripsi atau bidang virtual tempat suar standar Anda dibangun kapan pun memungkinkan. Dua beacon yang berbeda tidak dapat memiliki nama suar yang sama. Untuk bantuan menentukan nama beacon terbaik untuk implementasi Anda, lihat Memilih nama suar.
- Panjang suar
-
Jumlah bit dari nilai hash beacon yang disimpan setelah pemotongan.
Panjang suar menentukan jumlah rata-rata positif palsu yang dihasilkan oleh suar yang diberikan. Untuk informasi selengkapnya dan membantu menentukan panjang suar yang sesuai untuk implementasi Anda, lihat Menentukan panjang suar.
- Sumber suar (Opsional)
-
Bidang tempat suar standar dibangun.
Sumber suar harus berupa nama bidang atau indeks yang mengacu pada nilai bidang bersarang. Ketika nama suar Anda sama dengan sumber suar, Anda dapat menghilangkan sumber suar dari konfigurasi Anda dan SDK Enkripsi AWS Database akan secara otomatis menggunakan nama suar sebagai sumber suar.
Membuat bidang virtual
Untuk membuat bidang virtual, Anda harus memberikan nama untuk bidang virtual dan daftar bidang sumber. Urutan yang Anda tambahkan bidang sumber ke daftar bagian virtual menentukan urutan penggabungannya untuk membangun bidang virtual. Contoh berikut menggabungkan dua bidang sumber secara keseluruhan untuk membuat bidang virtual.
catatan
Kami menyarankan untuk memverifikasi bahwa bidang virtual Anda menghasilkan hasil yang diharapkan sebelum Anda mengisi database Anda. Untuk informasi selengkapnya, lihat Menguji output suar.
Untuk membuat bidang virtual dengan segmen tertentu dari bidang sumber, Anda harus menentukan transformasi itu sebelum menambahkan bidang sumber ke daftar bagian virtual Anda.
Pertimbangan keamanan untuk bidang virtual
Beacon tidak mengubah status lapangan yang dienkripsi. Namun, ketika Anda menggunakan beacon, ada tradeoff yang melekat antara seberapa efisien kueri Anda dan seberapa banyak informasi yang terungkap tentang distribusi data Anda. Cara Anda mengonfigurasi suar Anda menentukan tingkat keamanan yang dipertahankan oleh suar itu.
Hindari membuat bidang virtual dengan bidang sumber yang tumpang tindih dengan beacon standar yang ada. Membuat bidang virtual yang menyertakan bidang sumber yang telah digunakan untuk membuat suar standar dapat mengurangi tingkat keamanan untuk kedua beacon. Sejauh mana keamanan berkurang tergantung pada tingkat entropi yang ditambahkan oleh bidang sumber tambahan. Tingkat entropi ditentukan oleh distribusi nilai unik di bidang sumber tambahan dan jumlah bit yang disumbangkan oleh bidang sumber tambahan pada ukuran keseluruhan bidang virtual.
Anda dapat menggunakan populasi dan panjang suar untuk menentukan apakah bidang sumber untuk bidang virtual menjaga keamanan kumpulan data Anda. Populasi adalah jumlah nilai unik yang diharapkan dalam suatu bidang. Populasi Anda tidak perlu tepat. Untuk bantuan memperkirakan populasi suatu bidang, lihat Memperkirakan populasi.
Pertimbangkan contoh berikut saat Anda meninjau keamanan bidang virtual Anda.
-
Beacon1 dibangun dari.
FieldA
FieldA
memiliki populasi lebih besar dari 2 (panjang Beacon1). -
Beacon2 dibangun dari
VirtualField
, yang dibangun dari,FieldA
,FieldB
,FieldC
dan.FieldD
Bersama-samaFieldB
,FieldC
,, danFieldD
memiliki populasi lebih besar dari 2 N
Beacon2 menjaga keamanan Beacon1 dan Beacon2 jika pernyataan berikut benar:
N ≥ (Beacon1 length)/2
and
N ≥ (Beacon2 length)/2
Mendefinisikan gaya suar
Beacon standar dapat digunakan untuk melakukan pencarian kesetaraan untuk bidang terenkripsi atau virtual. Atau, mereka dapat digunakan untuk membangun suar majemuk untuk melakukan operasi database yang lebih kompleks. Untuk membantu Anda mengatur dan mengelola beacon standar, AWS Database Encryption SDK menyediakan gaya beacon opsional berikut yang menentukan tujuan penggunaan suar standar.
catatan
Untuk menentukan gaya suar, Anda harus menggunakan SDK Enkripsi AWS Database versi 3.2 atau yang lebih baru. Terapkan versi baru ke semua pembaca sebelum menambahkan gaya suar ke konfigurasi suar Anda.
Mengkonfigurasi suar majemuk
Compound beacon menggabungkan string plaintext literal dan beacon standar untuk melakukan operasi database yang kompleks, seperti menanyakan dua jenis rekaman yang berbeda dari indeks tunggal atau menanyakan kombinasi bidang dengan kunci pengurutan. Suar majemuk dapat dibangun dariENCRYPT_AND_SIGN
,SIGN_ONLY
, dan SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
ladang. Anda harus membuat suar standar untuk setiap bidang terenkripsi yang termasuk dalam suar majemuk.
catatan
Sebaiknya verifikasi bahwa suar majemuk Anda menghasilkan hasil yang diharapkan sebelum Anda mengisi basis data Anda. Untuk informasi selengkapnya, lihat Menguji output suar.
Contoh sintaks konfigurasi
Anda dapat menentukan bagian terenkripsi dan bagian yang ditandatangani dalam daftar yang ditentukan secara lokal atau global. Kami merekomendasikan untuk menentukan bagian terenkripsi dan ditandatangani Anda dalam daftar global dalam versi suar bila memungkinkan. Dengan mendefinisikan bagian terenkripsi dan ditandatangani secara global, Anda dapat menentukan setiap bagian sekali dan kemudian menggunakan kembali bagian-bagian tersebut dalam beberapa konfigurasi suar majemuk. Jika Anda hanya ingin menggunakan bagian terenkripsi atau ditandatangani sekali, Anda dapat mendefinisikannya dalam daftar lokal dalam konfigurasi suar majemuk. Anda dapat mereferensikan bagian lokal dan global dalam daftar konstruktor Anda.
Jika Anda menentukan daftar bagian terenkripsi dan ditandatangani secara global, Anda harus memberikan daftar bagian konstruktor yang mengidentifikasi semua kemungkinan cara suar majemuk dapat merakit bidang dalam konfigurasi suar majemuk Anda.
catatan
Untuk menentukan daftar bagian terenkripsi dan ditandatangani secara global, Anda harus menggunakan SDK Enkripsi AWS Database versi 3.2 atau yang lebih baru. Terapkan versi baru ke semua pembaca sebelum mendefinisikan bagian baru secara global.
Anda tidak dapat memperbarui konfigurasi suar yang ada untuk menentukan daftar bagian terenkripsi dan ditandatangani secara global.
Untuk mengkonfigurasi suar majemuk, berikan nilai berikut.
- Nama suar
-
Nama yang Anda gunakan saat menanyakan bidang terenkripsi.
Nama suar dapat berupa nama yang sama dengan bidang terenkripsi atau bidang virtual, tetapi tidak bisa nama yang sama dengan bidang yang tidak terenkripsi. Tidak ada dua suar yang dapat memiliki nama suar yang sama. Untuk bantuan menentukan nama beacon terbaik untuk implementasi Anda, lihat Memilih nama suar.
- Karakter split
-
Karakter yang digunakan untuk memisahkan bagian-bagian yang membentuk suar majemuk Anda.
Karakter split tidak dapat muncul dalam nilai plaintext dari salah satu bidang tempat suar majemuk dibangun.
- Daftar bagian terenkripsi
-
Mengidentifikasi
ENCRYPT_AND_SIGN
bidang yang termasuk dalam suar majemuk.Setiap bagian harus menyertakan nama dan awalan. Nama bagian harus merupakan nama suar standar yang dibangun dari bidang terenkripsi. Awalan dapat berupa string apa saja, tetapi harus unik. Bagian terenkripsi tidak dapat memiliki awalan yang sama dengan bagian yang ditandatangani. Sebaiknya gunakan nilai pendek yang membedakan bagian dari bagian lain yang dilayani oleh suar majemuk.
Kami merekomendasikan untuk menentukan bagian terenkripsi Anda secara global bila memungkinkan. Anda dapat mempertimbangkan untuk mendefinisikan bagian terenkripsi secara lokal jika Anda hanya bermaksud menggunakannya dalam satu suar majemuk. Bagian terenkripsi yang didefinisikan secara lokal tidak dapat memiliki awalan atau nama yang sama dengan bagian terenkripsi yang didefinisikan secara global.
- Daftar bagian yang ditandatangani
-
Mengidentifikasi bidang yang ditandatangani termasuk dalam suar majemuk.
catatan
Bagian yang ditandatangani adalah opsional. Anda dapat mengonfigurasi suar majemuk yang tidak mereferensikan bagian yang ditandatangani.
Setiap bagian harus menyertakan nama, sumber, dan awalan. Sumbernya adalah
SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
bidangSIGN_ONLY
atau yang diidentifikasi oleh bagian tersebut. Sumber harus berupa nama bidang atau indeks yang mengacu pada nilai bidang bersarang. Jika nama bagian Anda mengidentifikasi sumber, Anda dapat menghilangkan sumber dan SDK Enkripsi AWS Database akan secara otomatis menggunakan nama sebagai sumbernya. Kami merekomendasikan untuk menentukan sumber sebagai nama bagian bila memungkinkan. Awalan dapat berupa string apa saja, tetapi harus unik. Bagian yang ditandatangani tidak dapat memiliki awalan yang sama dengan bagian terenkripsi. Sebaiknya gunakan nilai pendek yang membedakan bagian dari bagian lain yang dilayani oleh suar majemuk.Kami merekomendasikan untuk menentukan suku cadang Anda yang ditandatangani secara global bila memungkinkan. Anda dapat mempertimbangkan untuk mendefinisikan bagian yang ditandatangani secara lokal jika Anda hanya bermaksud menggunakannya dalam satu suar majemuk. Bagian yang ditandatangani secara lokal tidak dapat memiliki awalan atau nama yang sama dengan bagian ditandatangani yang ditentukan secara global.
- Daftar konstruktor
-
Mengidentifikasi konstruktor yang menentukan cara berbeda bahwa bagian terenkripsi dan ditandatangani dapat dirakit oleh suar majemuk. Anda dapat mereferensikan bagian lokal dan global dalam daftar konstruktor Anda.
Jika Anda membangun suar majemuk Anda dari bagian terenkripsi dan ditandatangani yang didefinisikan secara global, Anda harus memberikan daftar konstruktor.
Jika Anda tidak menggunakan bagian terenkripsi atau ditandatangani yang didefinisikan secara global untuk membangun suar majemuk Anda, daftar konstruktor bersifat opsional. Jika Anda tidak menentukan daftar konstruktor, AWS Database Encryption SDK merakit suar majemuk dengan konstruktor default berikut.
-
Semua bagian yang ditandatangani dalam urutan mereka ditambahkan ke daftar bagian yang ditandatangani
-
Semua bagian terenkripsi dalam urutan mereka ditambahkan ke daftar bagian terenkripsi
-
Semua bagian diperlukan
- Konstruktor
-
Setiap konstruktor adalah daftar terurut dari bagian-bagian konstruktor yang mendefinisikan satu cara bahwa suar majemuk dapat dirakit. Bagian konstruktor digabungkan bersama dalam urutan mereka ditambahkan ke daftar, dengan setiap bagian dipisahkan oleh karakter split yang ditentukan.
Setiap bagian konstruktor menamai bagian terenkripsi atau bagian yang ditandatangani, dan menentukan apakah bagian itu diperlukan atau opsional dalam konstruktor. Misalnya, jika Anda ingin menanyakan suar majemuk pada
Field1
,, danField1.Field2
Field1.Field2.Field3
, tandai danField3
sebagai opsionalField2
dan buat satu konstruktor.Setiap konstruktor harus memiliki setidaknya satu bagian yang diperlukan. Sebaiknya buat bagian pertama di setiap konstruktor yang diperlukan sehingga Anda dapat menggunakan
BEGINS_WITH
operator dalam kueri Anda.Konstruktor berhasil jika semua bagian yang diperlukan ada dalam catatan. Saat Anda menulis catatan baru, suar majemuk menggunakan daftar konstruktor untuk menentukan apakah suar dapat dirakit dari nilai yang diberikan. Ini mencoba untuk merakit suar dalam urutan bahwa konstruktor ditambahkan ke daftar konstruktor, dan menggunakan konstruktor pertama yang berhasil. Jika tidak ada konstruktor yang berhasil, suar tidak ditulis ke catatan.
Semua pembaca dan penulis harus menentukan urutan konstruktor yang sama untuk memastikan bahwa hasil kueri mereka benar.
Gunakan prosedur berikut untuk menentukan daftar konstruktor Anda sendiri.
-
Buat bagian konstruktor untuk setiap bagian terenkripsi dan bagian yang ditandatangani untuk menentukan apakah bagian itu diperlukan atau tidak.
Nama bagian konstruktor harus nama suar standar atau bidang bertanda tangan yang diwakilinya.
-
Buat konstruktor untuk setiap cara yang mungkin bahwa suar majemuk dapat dirakit menggunakan bagian konstruktor yang Anda buat di Langkah 1.
Misalnya, jika Anda ingin menanyakan
Field1.Field2.Field3
danField4.Field2.Field3
, maka Anda harus membuat dua konstruktor.Field1
dan keduanyaField4
dapat diperlukan karena mereka didefinisikan dalam dua konstruktor terpisah. -
Buat daftar konstruktor yang mencakup semua konstruktor yang Anda buat di Langkah 2.
-
Tentukan
constructorList
kapan Anda membuat suar majemuk Anda.
-