全部产品
Search
文档中心

Object Storage Service:Enkripsi sisi klien

更新时间:Jul 06, 2025

Jika enkripsi sisi klien diaktifkan, objek dienkripsi secara lokal sebelum diunggah ke Object Storage Service (OSS). Dengan cara ini, keamanan data selama transmisi dan penyimpanan ditingkatkan.

Pernyataan Penolakan

  • Saat menggunakan enkripsi sisi klien, Anda harus memastikan integritas dan validitas kunci master pelanggan (CMK). Jika CMK digunakan secara tidak benar atau hilang karena pemeliharaan yang tidak tepat, Anda bertanggung jawab atas semua kerugian dan konsekuensi yang disebabkan oleh kegagalan dekripsi.

  • Saat menyalin atau memigrasi data terenkripsi, Anda bertanggung jawab atas integritas dan validitas metadata objek. Jika metadata terenkripsi salah atau hilang karena pemeliharaan yang tidak tepat, Anda bertanggung jawab atas semua kerugian dan konsekuensi yang diakibatkan oleh kegagalan dekripsi data.

Skenario

  • Data sangat sensitif: Untuk data yang berisi informasi sangat sensitif, seperti informasi identifikasi pribadi (PII), catatan transaksi keuangan, data medis dan kesehatan, pengguna dapat mengenkripsi data sebelum data meninggalkan lingkungan lokal untuk memastikan bahwa data asli dilindungi secara efektif selama transmisi.

  • Persyaratan kepatuhan: Regulasi tertentu, seperti HIPAA dan GDPR, memerlukan manajemen enkripsi data yang ketat. Enkripsi sisi klien memenuhi persyaratan kepatuhan ini karena CMK dikelola oleh pengguna dan tidak dikirim melalui jaringan.

  • Kontrol izin yang kuat: Sebuah perusahaan atau pengembang ingin memiliki kendali penuh atas proses enkripsi, termasuk memilih algoritma enkripsi dan mengelola CMK. Enkripsi sisi klien memastikan bahwa hanya pengguna yang sah yang dapat mendekripsi dan mengakses data.

  • Keamanan migrasi data lintas wilayah: Enkripsi sisi klien membantu menjaga data dalam keadaan terenkripsi sebelum dan sesudah migrasi data lintas wilayah. Ini meningkatkan keamanan transmisi data melalui Internet.

Informasi latar belakang

Dalam enkripsi sisi klien, kunci data acak dibuat untuk setiap objek untuk melakukan enkripsi simetris pada objek tersebut. Klien menggunakan CMK untuk mengenkripsi kunci data acak. Kunci data terenkripsi diunggah sebagai bagian dari metadata objek dan disimpan di server OSS. Saat objek terenkripsi diunduh, klien menggunakan CMK untuk mendekripsi kunci data acak, lalu menggunakan kunci data terdekripsi untuk mendekripsi objek. Untuk memastikan keamanan data, CMK hanya digunakan di sisi klien dan tidak ditransmisikan melalui jaringan atau disimpan di server.

Penting
  • Enkripsi sisi klien mendukung unggah multi-bagian untuk objek yang lebih besar dari 5 GB. Saat menggunakan unggah multi-bagian untuk mengunggah objek, Anda harus menentukan ukuran total objek dan ukuran bagiannya. Ukuran setiap bagian, kecuali bagian terakhir, harus sama dan harus merupakan kelipatan bulat dari 16.

  • Jika Anda mengunggah objek yang dienkripsi pada klien lokal, metadata terenkripsi objek dilindungi dan tidak dapat dimodifikasi dengan memanggil CopyObject.

Anda dapat menggunakan dua jenis CMK untuk enkripsi sisi klien:

Untuk kode contoh lengkap, kunjungi GitHub.

Menggunakan CMK yang dikelola KMS

Jika Anda menggunakan CMK yang dikelola Key Management Service (KMS) untuk enkripsi sisi klien, Anda hanya perlu menentukan ID CMK saat mengunggah objek. Anda tidak perlu memberikan kunci data kepada klien enkripsi. Gambar berikut menunjukkan proses enkripsi.

  • Mengenkripsi dan mengunggah objek

    1. Memperoleh kunci data.

      Klien menggunakan ID CMK yang ditentukan untuk meminta kunci data dari KMS untuk mengenkripsi objek. KMS menghasilkan kunci acak dan mengembalikan teks biasa dan teks terenkripsi dari kunci data.

    2. Mengenkripsi objek dan mengunggah objek terenkripsi ke OSS.

      Klien menggunakan teks biasa dari kunci data untuk mengenkripsi objek di sisi klien dan mengunggah objek terenkripsi dan teks terenkripsi dari kunci data ke OSS.

  • Mengunduh dan mendekripsi objek

    1. Mengunduh objek.

      Klien mengunduh objek terenkripsi dan teks terenkripsi dari kunci data dari OSS.

    2. Mendekripsi objek.

      Klien mengirimkan teks terenkripsi dari kunci data dan ID CMK yang sesuai ke KMS. KMS menggunakan CMK yang dikirim oleh klien untuk mendekripsi objek terenkripsi dan mengembalikan teks biasa dari kunci data ke klien.

Catatan
  • Klien menggunakan kunci data unik untuk mengenkripsi setiap objek yang akan diunggah.

  • Untuk memastikan keamanan data, kami sarankan Anda memutar atau memperbarui CMK secara berkala.

  • Anda harus memelihara hubungan pemetaan antara ID CMK dan objek terenkripsi.

Menggunakan CMK yang dikelola pelanggan

Untuk menggunakan CMK yang dikelola pelanggan untuk enkripsi sisi klien, Anda harus secara manual menghasilkan dan mengelola CMK. Anda harus mengunggah CMK simetris atau CMK asimetris ke klien enkripsi untuk enkripsi objek. Gambar berikut menunjukkan proses enkripsi.

  • Mengenkripsi dan mengunggah objek

    1. Anda menyediakan klien dengan CMK simetris atau CMK asimetris.

    2. Klien menggunakan CMK untuk menghasilkan kunci data simetris sekali pakai yang hanya digunakan untuk mengenkripsi objek yang akan diunggah. Klien menghasilkan kunci data acak dan unik untuk setiap objek yang ingin Anda unggah.

    3. Klien menggunakan kunci data untuk mengenkripsi objek yang ingin Anda unggah dan menggunakan CMK untuk mengenkripsi kunci data.

    4. Klien mengunggah objek terenkripsi ke OSS bersama dengan kunci data terenkripsi yang disertakan dalam metadata objek.

  • Mengunduh dan mendekripsi objek

    1. Klien mengunduh objek terenkripsi dan metadata dari OSS.

    2. Klien menggunakan CMK yang sesuai untuk mendekripsi kunci data terenkripsi berdasarkan bahan kunci yang ditunjukkan oleh metadata, lalu menggunakan kunci data terdekripsi untuk mendekripsi objek.

Penting
  • Klien tidak mengirimkan CMK dan data yang tidak terenkripsi ke OSS. Anda harus menjaga CMK Anda tetap aman. Jika CMK hilang, objek yang dienkripsi menggunakan kunci data yang dihasilkan dari CMK ini tidak dapat didekripsi.

  • Kunci data dihasilkan secara acak oleh klien.

Menggunakan SDK OSS

Kode contoh berikut memberikan contoh tentang cara mengonfigurasi enkripsi sisi klien dengan menggunakan SDK OSS untuk bahasa pemrograman umum. Untuk informasi lebih lanjut tentang cara mengonfigurasi enkripsi sisi klien dengan menggunakan SDK OSS untuk bahasa pemrograman lainnya, lihat Ikhtisar.

// Komentar dalam kode ini telah diterjemahkan.
// Contoh komentar: "Membuat pasangan kunci RSA."
// Contoh komentar: "Mengenkripsi dan mengunggah objek."
// Contoh komentar: "Mendekripsi objek yang diunduh."
# Komentar dalam kode ini telah diterjemahkan.
# Contoh komentar: "(Diperlukan) Tentukan parameter region, yang menentukan wilayah tempat bucket berada."
# Contoh komentar: "Enkripsi data menggunakan layanan KMS."
# Contoh komentar: "Dekripsi data menggunakan layanan KMS."
// Komentar dalam kode ini telah diterjemahkan.
// Contoh komentar: "Membuat instance OSSClient."
// Contoh komentar: "Enkripsi dilakukan secara otomatis saat memanggil operasi PutObject."
// Contoh komentar: "Dekripsi dilakukan secara otomatis saat memanggil operasi GetObject."
// Komentar dalam kode ini telah diterjemahkan.
// Contoh komentar: "Inisialisasi informasi akun yang digunakan untuk mengakses OSS."
// Contoh komentar: "Unggah objek."
// Contoh komentar: "Tangani pengecualian."
// Komentar dalam kode ini telah diterjemahkan.
// Contoh komentar: "Tentukan deskripsi untuk parameter baris perintah."
// Contoh komentar: "Buat klien SDK KMS khusus."
// Contoh komentar: "Enkripsi objek dan unggah."