Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengunggah data terenkripsi ke Amazon S3
Amazon S3 mendukung enkripsi sisi server dan enkripsi sisi klien. Topik ini membahas perbedaan antara enkripsi sisi server dan sisi klien dan menjelaskan langkah-langkah untuk menggunakan enkripsi sisi klien dengan Amazon Redshift. Enkripsi sisi server transparan untuk Amazon Redshift.
enkripsi di sisi server
Enkripsi sisi server adalah enkripsi data saat istirahat—yaitu, Amazon S3 mengenkripsi data Anda saat mengunggahnya dan mendekripsi untuk Anda saat Anda mengaksesnya. Saat Anda memuat tabel menggunakan COPY perintah, tidak ada perbedaan dalam cara Anda memuat dari objek terenkripsi atau tidak terenkripsi sisi server di Amazon S3. Untuk informasi selengkapnya tentang enkripsi sisi server, lihat Menggunakan Enkripsi Sisi Server di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.
Enkripsi di sisi klien
Dalam enkripsi sisi klien, aplikasi klien Anda mengelola enkripsi data Anda, kunci enkripsi, dan alat terkait. Anda dapat mengunggah data ke bucket Amazon S3 menggunakan enkripsi sisi klien, lalu memuat data menggunakan COPY perintah dengan ENCRYPTED opsi dan kunci enkripsi pribadi untuk memberikan keamanan yang lebih besar.
Anda mengenkripsi data Anda menggunakan enkripsi amplop. Dengan enkripsi amplop, aplikasi Anda menangani semua enkripsi secara eksklusif. Kunci enkripsi pribadi Anda dan data tidak terenkripsi Anda tidak pernah dikirim ke AWS, jadi sangat penting bagi Anda untuk mengelola kunci enkripsi dengan aman. Jika Anda kehilangan kunci enkripsi, Anda tidak akan dapat membatalkan enkripsi data Anda, dan Anda tidak dapat memulihkan kunci enkripsi Anda dari. AWS Enkripsi amplop menggabungkan kinerja enkripsi simetris cepat sambil mempertahankan keamanan yang lebih besar yang disediakan oleh manajemen kunci dengan kunci asimetris. Kunci one-time-use simetris (kunci simetris amplop) dihasilkan oleh klien enkripsi Amazon S3 Anda untuk mengenkripsi data Anda, kemudian kunci itu dienkripsi oleh kunci root Anda dan disimpan bersama data Anda di Amazon S3. Saat Amazon Redshift mengakses data Anda selama pemuatan, kunci simetris terenkripsi diambil dan didekripsi dengan kunci asli Anda, lalu data didekripsi.
Untuk bekerja dengan data terenkripsi sisi klien Amazon S3 di Amazon Redshift, ikuti langkah-langkah yang diuraikan dalam Melindungi Data Menggunakan Enkripsi Sisi Klien di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon, dengan persyaratan tambahan yang Anda gunakan:
-
Enkripsi simetris —
AmazonS3EncryptionClient
Kelas AWS SDK untuk Java menggunakan enkripsi amplop, dijelaskan sebelumnya, yang didasarkan pada enkripsi kunci simetris. Gunakan kelas ini untuk membuat klien Amazon S3 untuk mengunggah data terenkripsi sisi klien. -
Kunci simetris AES root 256-bit — Kunci root mengenkripsi kunci amplop. Anda meneruskan kunci root ke instance
AmazonS3EncryptionClient
kelas Anda. Simpan kunci ini, karena Anda akan membutuhkannya untuk menyalin data ke Amazon Redshift. -
Metadata objek untuk menyimpan kunci amplop terenkripsi — Secara default, Amazon S3 menyimpan kunci amplop sebagai metadata objek untuk kelas.
AmazonS3EncryptionClient
Kunci amplop terenkripsi yang disimpan sebagai metadata objek digunakan selama proses dekripsi.
catatan
Jika Anda mendapatkan pesan kesalahan enkripsi sandi saat Anda menggunakan enkripsi API untuk pertama kalinya, versi Anda JDK mungkin memiliki file kebijakan yurisdiksi Ekstensi Kriptografi Java (JCE) yang membatasi panjang kunci maksimum untuk transformasi enkripsi dan dekripsi menjadi 128 bit. Untuk informasi tentang mengatasi masalah ini, buka Menentukan Enkripsi Sisi Klien Menggunakan AWS SDK untuk Java di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.
Untuk informasi tentang memuat file terenkripsi sisi klien ke dalam tabel Amazon Redshift menggunakan perintah, lihat. COPY Memuat file data terenkripsi dari Amazon S3
Contoh: Mengunggah data terenkripsi sisi klien
Untuk contoh cara menggunakan Java AWS SDK untuk mengunggah data terenkripsi sisi klien, buka Melindungi data menggunakan enkripsi sisi klien di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.
Opsi kedua menunjukkan pilihan yang harus Anda buat selama enkripsi sisi klien sehingga data dapat dimuat di Amazon Redshift. Secara khusus, contoh menunjukkan menggunakan metadata objek untuk menyimpan kunci amplop terenkripsi dan penggunaan kunci simetris root 256-bit. AES
Contoh ini memberikan contoh kode menggunakan AWS SDK for Java untuk membuat kunci root AES simetris 256-bit dan menyimpannya ke file. Kemudian contoh mengunggah objek ke Amazon S3 menggunakan klien enkripsi S3 yang pertama mengenkripsi data sampel di sisi klien. Contoh ini juga mengunduh objek dan memverifikasi bahwa datanya sama.