Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengubah model data Anda
catatan
Pustaka enkripsi sisi klien kami diubah namanya menjadi Enkripsi Database. AWS SDK Topik berikut memberikan informasi tentang versi 1. x —2. x dari DynamoDB Encryption Client untuk Java dan versi 1. x —3. x dari Klien Enkripsi DynamoDB untuk Python. Untuk informasi selengkapnya, lihat Enkripsi AWS Database SDK untuk dukungan versi DynamoDB.
Setiap kali mengenkripsi atau mendekripsi item, Anda perlu memberikan tindakan atribut yang memberi tahu DynamoDB Encryption Client atribut mana yang perlu dienkripsi dan ditandatangani, atribut mana yang perlu ditanandatangani (tapi tidak dienkripsi), dan mana yang diabaikan. Atribut tindakan tidak disimpan dalam item yang dienkripsi dan DynamoDB Encryption Client tidak memperbarui tindakan atribut Anda secara otomatis.
penting
Klien Enkripsi DynamoDB tidak mendukung enkripsi data tabel DynamoDB yang sudah ada dan tidak terenkripsi.
Setiap kali Anda mengubah model data Anda, yaitu, ketika Anda menambahkan atau menghapus atribut dari item tabel Anda, Anda berisiko mendapatkan masalah. Jika tindakan atribut yang Anda tentukan tidak mencakup semua atribut dalam item, item tersebut mungkin tidak dienkripsi dan ditandatangani sesuai keinginan Anda. Lebih penting lagi, jika tindakan atribut yang Anda berikan saat mendekripsi item berbeda dari tindakan atribut yang Anda berikan saat mengenkripsi item, verifikasi tanda tangan mungkin gagal.
Sebagai contoh, jika tindakan atribut yang digunakan untuk mengenkripsi item memberitahu untuk menandatangani atribut test
, tanda tangan dalam item akan mencakup atribut test
. Namun, jika tindakan atribut yang digunakan untuk mendekripsi item tidak memperhitungkan atribut test
, verifikasi akan gagal karena klien akan mencoba untuk memverifikasi tanda tangan yang tidak termasuk atribut test
.
Ini adalah masalah ketika beberapa aplikasi membaca dan menulis item DynamoDB sama karena DynamoDB Encryption Client harus menghitung tanda tangan yang sama untuk item di semua aplikasi. Ini juga masalah untuk aplikasi terdistribusi karena perubahan dalam tindakan atribut harus menyebar ke semua host. Bahkan jika tabel DynamoDB Anda diakses oleh satu host dalam satu proses, membangun proses praktek terbaik akan membantu mencegah kesalahan jika proyek pernah menjadi lebih kompleks.
Untuk menghindari kesalahan validasi tanda tangan yang mencegah Anda membaca item tabel Anda, gunakan panduan berikut.
-
Menambahkan atribut — Jika atribut baru mengubah tindakan atribut Anda, sepenuhnya men-deploy perubahan tindakan atribut sebelum menyertakan atribut baru dalam item.
-
Menghapus atribut — Jika Anda berhenti menggunakan atribut dalam item Anda, jangan mengubah tindakan atribut Anda.
-
Mengubah tindakan - Setelah Anda telah menggunakan konfigurasi tindakan atribut untuk mengenkripsi item tabel Anda, Anda tidak dapat dengan aman mengubah tindakan default atau tindakan untuk atribut yang ada tanpa mereenkripsi setiap item dalam tabel Anda.
Kesalahan validasi tanda tangan bisa sangat sulit diatasi, jadi pendekatan terbaik adalah mencegahnya.
Menambahkan atribut
Saat menambahkan atribut baru ke item tabel, Anda mungkin perlu mengubah tindakan atribut Anda. Untuk mencegah kesalahan validasi tanda tangan, sebaiknya Anda menerapkan perubahan ini dalam proses dua tahap. Verifikasi bahwa tahap pertama selesai sebelum memulai tahap kedua.
-
Ubah tindakan atribut di semua aplikasi yang membaca atau menulis ke tabel. Deploy perubahan ini dan konfirmasi bahwa pembaruan telah disebarkan ke semua host tujuan.
-
Tulis nilai ke atribut baru dalam item tabel Anda.
Pendekatan dua tahap ini memastikan bahwa semua aplikasi dan host memiliki tindakan atribut yang sama, dan akan menghitung tanda tangan yang sama, sebelum menemui atribut baru. Hal ini penting bahkan ketika tindakan untuk atribut adalah Jangan lakukan apa-apa (jangan mengenkripsi atau menandatangani), karena default untuk beberapa enkriptor adalah mengenkripsi dan menandatangani.
Contoh berikut menunjukkan kode untuk tahap pertama dalam proses ini. Atribut item baru ditambahkan, link
, yang menyimpan link ke item tabel lain. Karena link ini harus tetap dalam teks biasa, contoh menetapkan itu tindakan tanda-saja. Setelah sepenuhnya men-deploy perubahan ini dan kemudian memverifikasi bahwa semua aplikasi dan host memiliki tindakan atribut baru, Anda dapat mulai menggunakan atribut link
dalam item tabel Anda.
Menghapus atribut
Jika Anda tidak lagi membutuhkan atribut dalam item yang telah dienkripsi dengan DynamoDB Encryption Client, Anda dapat berhenti menggunakan atribut. Namun, jangan menghapus atau mengubah tindakan untuk atribut tersebut. Jika Anda melakukannya, dan kemudian menemukan item dengan atribut itu, tanda tangan yang dihitung untuk item tidak akan cocok dengan tanda tangan asli, dan validasi tanda tangan akan gagal.
Meskipun Anda mungkin tergoda untuk menghapus semua jejak atribut dari kode Anda, tambahkan komentar bahwa item tidak lagi digunakan, alih-alih menghapusnya. Bahkan jika Anda melakukan pemindaian tabel secara penuh untuk menghapus semua instans atribut, item yang dienkripsi dengan atribut yang mungkin disembunyikan atau dalam proses di suatu tempat di konfigurasi Anda.