Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memecahkan masalah dalam aplikasi DynamoDB Encryption Client 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.
Bagian ini menjelaskan masalah yang mungkin Anda alami saat menggunakan DynamoDB Encryption Client dan menawarkan saran-saran untuk menyelesaikannya.
Untuk memberikan umpan balik tentang Klien Enkripsi DynamoDB, ajukan masalah di aws-dynamodb-encryption-java
Untuk memberikan umpan balik tentang dokumentasi ini, gunakan tautan umpan balik pada halaman mana pun.
Topik
Akses ditolak
Masalah: Aplikasi Anda ditolak aksesnya ke sumber daya yang dibutuhkan.
Saranan: Pelajari tentang izin yang diperlukan dan tambahkan izin tersebut ke konteks keamanan di mana aplikasi Anda dijalankan.
Detail
Untuk menjalankan aplikasi yang menggunakan pustaka DynamoDB Encryption Client, pemanggil harus memiliki izin untuk menggunakan komponennya. Jika tidak, aksesnya ke elemen yang dibutuhkan akan ditolak.
-
DynamoDB Encryption Client tidak memerlukan akun Amazon Web Services (AWS) atau tergantung pada layanan AWS mana pun. Namun, jika aplikasi Anda menggunakan AWS, Anda memerlukan Akun AWS dan pengguna yang memiliki izin untuk menggunakan akun tersebut.
-
DynamoDB Encryption Client tidak memerlukan Amazon DynamoDB. Namun, Jika aplikasi yang menggunakan klien membuat tabel DynamoDB, menempatkan item ke dalam tabel, atau mendapatkan item dari tabel, pemanggil harus memiliki izin untuk menggunakan operasi DynamoDB yang diperlukan dalam Anda. Akun AWS Untuk detailnya, lihat topik kontrol akses di Panduan Developer Amazon DynamoDB.
-
Jika aplikasi Anda menggunakan class client helper di DynamoDB Encryption Client untuk Python, pemanggil harus memiliki izin untuk memanggil operasi DynamoDB. DescribeTable
-
Klien Enkripsi DynamoDB tidak AWS Key Management Service memerlukan ().AWS KMS Namun, jika aplikasi Anda menggunakan Penyedia KMS Materi Langsung, atau menggunakan Penyedia Terbaru dengan toko penyedia yang menggunakan AWS KMS, penelepon harus memiliki izin untuk menggunakan AWS KMS GenerateDataKeydan Mendekripsi operasi.
Verifikasi tanda tangan gagal
Masalah: Item tidak dapat didekripsi karena verifikasi tanda tangan gagal. Item juga mungkin tidak dienkripsi dan ditandatangani sesuai keinginan Anda.
Saranan: Pastikan bahwa tindakan atribut yang Anda berikan mencakup semua atribut dalam item. Saat mendekripsi item, pastikan untuk memberikan tindakan atribut yang sesuai dengan tindakan yang digunakan untuk mengenkripsi item.
Detail
Tindakan atribut yang Anda berikan memberi tahu DynamoDB Encryption Client atribut mana yang perlu dienkripsi dan ditandatangani, atribut mana yang perlu ditanandatangani (tapi tidak dienkripsi), dan mana yang diabaikan.
Jika tindakan atribut yang Anda tentukan tidak mencakup semua atribut dalam item, item mungkin tidak dienkripsi dan ditandatangani sesuai keinginan Anda. Jika tindakan atribut yang Anda berikan saat mendekripsi item berbeda dari tindakan atribut yang Anda berikan saat mengenkripsi item, verifikasi tanda tangan mungkin gagal. Ini adalah masalah khusus untuk aplikasi terdistribusi di mana tindakan atribut baru mungkin tidak disebarkan ke semua host.
Kesalahan validasi tanda tangan sulit untuk diselesaikan. Untuk membantu mencegahnya, lakukan tindakan pencegahan ekstra saat mengubah model data Anda. Untuk detailnya, lihat Mengubah model data Anda.
Masalah dengan tabel global versi lama
Masalah: Item dalam tabel global Amazon DynamoDB versi lama tidak dapat didekripsi karena verifikasi tanda tangan gagal.
Saran: Tetapkan tindakan atribut agar bidang replikasi yang dicadangkan tidak dienkripsi atau ditandatangani.
Detail
Anda dapat menggunakan Klien Enkripsi DynamoDB dengan tabel global DynamoDB. Kami menyarankan Anda menggunakan tabel global dengan KMSkunci Multi-wilayah dan mereplikasi KMS kunci ke semua Wilayah AWS tempat tabel global direplikasi.
Dimulai dengan tabel global versi 2019.11.21, Anda dapat menggunakan tabel global dengan Klien Enkripsi DynamoDB tanpa konfigurasi khusus. Namun, jika Anda menggunakan tabel global versi 2017.11.29, Anda harus memastikan bahwa bidang replikasi yang dicadangkan tidak dienkripsi atau ditandatangani.
aws:rep:deleting
aws:rep:updatetime
aws:rep:updateregion
Jika Anda menggunakan versi lain dari tabel global, tidak ada tindakan yang diperlukan.
Kinerja yang buruk dari Penyedia Terbaru
Masalah: Aplikasi Anda kurang responsif, terutama setelah diperbarui ke versi DynamoDB Encryption Client yang lebih baru.
Saran: Sesuaikan time-to-live nilai dan ukuran cache.
Detail
Penyedia Terbaru dirancang untuk meningkatkan kinerja aplikasi yang menggunakan DynamoDB Encryption Client dengan mengizinkan penggunaan kembali secara terbatas materi kriptografis. Bila Anda mengonfigurasi Penyedia Terbaru untuk aplikasi Anda, Anda harus menyeimbangkan peningkatan kinerja dengan masalah keamanan yang timbul dari caching dan penggunaan kembali.
Dalam versi yang lebih baru dari DynamoDB Encryption Client, time-to-live nilai TTL () menentukan berapa lama penyedia materi kriptografi cache () dapat digunakan. CMPs Ini TTL juga menentukan seberapa sering Penyedia Terbaru memeriksa versi baru dariCMP.
Jika TTL terlalu lama, aplikasi Anda mungkin melanggar aturan bisnis atau standar keamanan Anda. Jika Anda TTL terlalu singkat, panggilan yang sering ke toko penyedia dapat menyebabkan toko penyedia Anda membatasi permintaan dari aplikasi Anda dan aplikasi lain yang berbagi akun layanan Anda. Untuk mengatasi masalah ini, sesuaikan ukuran TTL dan cache ke nilai yang memenuhi tujuan latensi dan ketersediaan Anda dan sesuai dengan standar keamanan Anda. Lihat perinciannya di Menetapkan time-to-live nilai.