Mengunggah data terenkripsi ke Amazon S3 - Amazon Redshift

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 perintah COPY, 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 perintah COPY dengan opsi ENCRYPTED 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 — AWS SDK for AmazonS3EncryptionClient Java class 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 root AES 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 API enkripsi untuk pertama kalinya, versi JDK Anda mungkin memiliki file kebijakan yurisdiksi Java Cryptography Extension (JCE) yang membatasi panjang kunci maksimum untuk enkripsi dan transformasi dekripsi menjadi 128 bit. Untuk informasi tentang mengatasi masalah ini, buka Menentukan Enkripsi Sisi Klien Menggunakan SDK for AWS Java di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

Untuk informasi tentang memuat file terenkripsi sisi klien ke dalam tabel Amazon Redshift menggunakan perintah COPY, lihat. Memuat file data terenkripsi dari Amazon S3

Contoh: Mengunggah data terenkripsi sisi klien

Untuk contoh cara menggunakan AWS SDK for Java 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 penggunaan metadata objek untuk menyimpan kunci amplop terenkripsi dan penggunaan kunci simetris akar AES 256-bit.

Contoh ini memberikan contoh kode menggunakan AWS SDK for Java untuk membuat kunci root simetris AES 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.