Menyediakan kunci enkripsi pada permintaan ke penyimpanan Blob

Klien yang membuat permintaan terhadap penyimpanan Azure Blob dapat menyediakan kunci enkripsi AES-256 untuk mengenkripsi blob tersebut pada operasi tulis. Permintaan berikutnya untuk membaca atau menulis ke blob harus menyertakan kunci yang sama. Menyertakan kunci enkripsi pada permintaan menyediakan kontrol terperinci atas pengaturan enkripsi untuk operasi penyimpanan Blob. Kunci yang disediakan pelanggan dapat disimpan di Azure Key Vault atau di penyimpanan kunci lainnya.

Mengenkripsi operasi baca dan tulis

Ketika aplikasi klien menyediakan kunci enkripsi pada permintaan, Azure Storage melakukan enkripsi dan dekripsi secara transparan saat membaca dan menulis data blob. Azure Storage menulis hash SHA-256 dari kunci enkripsi bersama konten blob. Hash digunakan untuk memastikan bahwa semua operasi blob berikutnya menggunakan kunci enkripsi yang sama.

Azure Storage tidak menyimpan atau mengelola kunci enkripsi yang dikirim klien dengan permintaan tersebut. Kunci dibuang dengan aman segera setelah proses enkripsi atau dekripsi selesai.

Ketika klien membuat atau memperbarui blob menggunakan kunci yang disediakan pelanggan pada permintaan, maka permintaan baca dan tulis berikutnya untuk blob tersebut juga harus menyediakan kunci. Jika kunci tidak disediakan berdasarkan permintaan blob yang telah dienkripsi dengan kunci yang disediakan pelanggan, maka permintaannya gagal dengan kode galat 409 (Konflik).

Jika aplikasi klien mengirim kunci enkripsi pada permintaan, dan akun penyimpanan juga dienkripsi menggunakan kunci yang dikelola Microsoft atau kunci yang dikelola pelanggan, maka Azure Storage menggunakan kunci yang disediakan berdasarkan permintaan enkripsi dan dekripsi.

Untuk mengirim kunci enkripsi sebagai bagian dari permintaan, klien harus membuat koneksi aman ke Azure Storage menggunakan HTTPS.

Setiap snapshot blob atau versi blob dapat memiliki kunci enkripsinya sendiri.

Replikasi objek tidak didukung untuk blob di akun sumber yang dienkripsi dengan kunci yang disediakan pelanggan.

Meminta header untuk menentukan kunci yang disediakan pelanggan

Untuk panggilan REST, klien dapat menggunakan header berikut untuk meneruskan informasi kunci enkripsi dengan aman pada permintaan ke penyimpanan Blob:

Header Permintaan Deskripsi
x-ms-encryption-key Diperlukan untuk permintaan tulis dan baca. Nilai kunci enkripsi AES-256 yang dikodekan Base64.
x-ms-encryption-key-sha256 Diperlukan untuk permintaan tulis dan baca. SHA256 yang dikodekan Base64 milik kunci enkripsi.
x-ms-encryption-algorithm Diperlukan untuk permintaan tulis, opsional untuk permintaan baca. Menentukan algoritma yang akan digunakan saat mengenkripsi data menggunakan kunci yang diberikan. Nilai header ini harus AES256.

Menentukan kunci enkripsi pada permintaan bersifat opsional. Namun, jika Anda menentukan salah satu header yang tercantum di atas untuk operasi tulis, maka Anda harus menentukan semuanya.

Operasi penyimpanan blob mendukung kunci yang disediakan pelanggan

Operasi penyimpanan Blob berikut mendukung pengiriman kunci enkripsi yang disediakan pelanggan berdasarkan permintaan:

Memutar kunci yang disediakan pelanggan

Untuk memutar kunci enkripsi yang digunakan untuk mengenkripsi blob, unduh blob lalu unggah ulang dengan kunci enkripsi baru.

Penting

Portal Azure tidak dapat digunakan untuk membaca dari atau menulis ke kontainer atau blob yang dienkripsi dengan kunci yang disediakan pada permintaan.

Jadi, pastikan untuk melindungi kunci enkripsi yang Anda sediakan berdasarkan permintaan ke penyimpanan Blob di penyimpanan kunci yang aman seperti Azure Key Vault. Jika Anda mencoba operasi tulis pada kontainer atau blob tanpa kunci enkripsi, operasi akan gagal, dan Anda akan kehilangan akses ke objek.

Dukungan fitur

Dukungan untuk fitur ini mungkin terpengaruh dengan mengaktifkan Data Lake Storage Gen2, protokol Network File System (NFS) 3.0, atau SSH File Transfer Protocol (SFTP). Jika Anda telah mengaktifkan salah satu kemampuan ini, lihat Dukungan fitur Blob Storage di akun Azure Storage untuk menilai dukungan untuk fitur ini.

Langkah berikutnya