Enkripsi Layanan Azure Storage untuk data yang tidak digunakan

Azure Storage menggunakan enkripsi sisi layanan (SSE) untuk mengenkripsi data Anda secara otomatis saat disimpan ke cloud. Enkripsi Azure Storage melindungi data Anda dan membantu Anda memenuhi komitmen kepatuhan dan keamanan organisasi Anda.

Microsoft merekomendasikan penggunaan enkripsi sisi layanan guna melindungi data Anda untuk sebagian besar skenario. Namun, pustaka klien Azure Storage untuk Blob Storage dan Queue Storage juga menyediakan enkripsi sisi klien untuk pelanggan yang perlu mengenkripsi data pada klien. Untuk informasi selengkapnya, lihat Enkripsi sisi klien untuk blob dan antrean.

Tentang enkripsi sisi layanan Azure Storage

Data di Azure Storage dienkripsi dan didekripsi secara transparan menggunakan enkripsi AES 256-bit, salah satu cipher blok terkuat yang tersedia, dan sesuai dengan FIPS 140-2. Enkripsi Azure Storage mirip dengan enkripsi BitLocker di Windows.

Enkripsi Azure Storage diaktifkan untuk semua akun penyimpanan, termasuk Resource Manager dan akun penyimpanan klasik. Enkripsi Azure Storage tidak dapat dinonaktifkan. Karena data Anda diamankan secara default, Anda tidak perlu mengubah kode atau aplikasi Anda untuk memanfaatkan enkripsi Azure Storage.

Data dalam akun penyimpanan dienkripsi terlepas dari tingkat kinerja (standar atau premium), tingkat akses (panas atau dingin), atau model penyebaran (Azure Resource Manager atau klasik). Semua blob di tingkat arsip juga dienkripsi. Semua opsi redundansi Azure Storage mendukung enkripsi, dan semua data di wilayah utama dan sekunder dienkripsi saat replikasi geografis diaktifkan. Semua sumber daya Azure Storage dienkripsi, termasuk blob, disk, file, antrean, dan tabel. Semua metadata objek juga dienkripsi. Tidak ada biaya tambahan untuk enkripsi Azure Storage.

Setiap blob blok, blob penambahan, atau blob halaman yang ditulis ke Azure Storage setelah 20 Oktober 2017 dienkripsi. Blob yang dibuat sebelum tanggal ini terus dienkripsi oleh proses latar belakang. Untuk memaksa enkripsi blob yang dibuat sebelum 20 Oktober 2017, Anda dapat menulis ulang blob. Untuk mempelajari cara memeriksa status enkripsi blob, lihat Memeriksa status enkripsi blob.

Untuk informasi selengkapnya tentang modul kriptografi yang mendasari enkripsi Azure Storage, lihat API Kriptografi: Generasi Berikutnya.

Untuk informasi tentang enkripsi dan manajemen kunci untuk disk yang dikelola Azure, lihat Enkripsi sisi server dari disk yang dikelola Azure.

Tentang manajemen kunci enkripsi

Data dalam akun penyimpanan baru dienkripsi dengan kunci yang dikelola Microsoft secara default. Anda dapat terus mengandalkan kunci yang dikelola Microsoft untuk enkripsi data Anda, atau Anda dapat mengelola enkripsi dengan kunci Anda sendiri. Jika Anda memilih untuk mengelola enkripsi dengan kunci Anda sendiri, Anda memiliki dua opsi. Anda dapat menggunakan salah satu jenis manajemen kunci, atau keduanya:

  • Anda dapat menentukan kunci yang dikelola pelanggan untuk digunakan untuk mengenkripsi dan mendekripsi data di Blob Storage dan di Azure Files. 1,2 Kunci yang dikelola pelanggan harus disimpan di Azure Key Vault atau Azure Key Vault Managed Hardware Security Model (HSM). Untuk informasi selengkapnya tentang kunci yang dikelola pelanggan, lihat Menggunakan kunci yang dikelola pelanggan untuk enkripsi Azure Storage.
  • Anda dapat menentukan kunci yang disediakan pelanggan pada operasi Blob Storage. Klien yang membuat permintaan baca atau tulis terhadap Blob Storage dapat menyertakan kunci enkripsi pada permintaan untuk kontrol granular tentang bagaimana data blob dienkripsi dan didekripsi. Untuk informasi selengkapnya tentang kunci yang disediakan pelanggan, lihat Menyediakan kunci enkripsi pada permintaan ke Blob Storage.

Secara default, akun penyimpanan dienkripsi dengan kunci yang tercakup ke seluruh akun penyimpanan. Cakupan enkripsi memungkinkan Anda mengelola enkripsi dengan kunci yang tercakup ke kontainer atau blob individual. Anda dapat menggunakan cakupan enkripsi untuk membuat batas aman antara data yang berada di akun penyimpanan yang sama, tetapi milik pelanggan yang berbeda. Cakupan enkripsi dapat menggunakan kunci yang dikelola Microsoft atau kunci yang dikelola pelanggan. Untuk informasi selengkapnya tentang cakupan enkripsi, lihat Cakupan enkripsi untuk penyimpanan Blob.

Tabel berikut membandingkan opsi manajemen kunci untuk enkripsi Azure Storage.

Parameter manajemen kunci Kunci yang dikelola Microsoft Kunci yang dikelola pelanggan Kunci yang disediakan pelanggan
Operasi enkripsi/dekripsi Azure Azure Azure
Layanan Azure Storage didukung Semua Blob Storage, Azure Files1,2 Penyimpanan Blob
Penyimpanan Kunci Penyimpanan kunci Microsoft Azure Key Vault atau Kunci Vault HSM Toko kunci pelanggan sendiri
Tanggung jawab rotasi kunci Microsoft Pelanggan Pelanggan
Kontrol kunci Microsoft Pelanggan Pelanggan
Lingkup kunci Akun (default), kontainer, atau blob Akun (default), kontainer, atau blob T/A

1 Untuk informasi tentang membuat akun yang mendukung penggunaan kunci yang dikelola pelanggan dengan penyimpanan Antrean, lihat Membuat akun yang mendukung kunci yang dikelola pelanggan untuk antrean.
2 Untuk informasi tentang membuat akun yang mendukung penggunaan kunci yang dikelola pelanggan dengan penyimpanan Tabel, lihat Membuat akun yang mendukung kunci yang dikelola pelanggan untuk tabel.

Catatan

Kunci yang dikelola Microsoft diputar sesuai persyaratan kepatuhan. Jika Anda memiliki persyaratan rotasi kunci tertentu, Microsoft merekomendasikan agar Anda beralih ke kunci yang dikelola pelanggan sehingga Anda dapat mengelola dan mengaudit rotasi sendiri.

Mengenkripsi data ganda dengan enkripsi infrastruktur

Pelanggan yang memerlukan tingkat jaminan yang lebih tinggi bahwa data mereka aman juga dapat mengaktifkan enkripsi AES 256-bit di tingkat infrastruktur Azure Storage. Saat enkripsi infrastruktur diaktifkan, data di akun penyimpanan dienkripsi dua kali — sekali di tingkat layanan dan sekali di tingkat infrastruktur — dengan dua algoritme enkripsi yang berbeda dan dua kunci yang berbeda. Enkripsi ganda data Azure Storage melindungi dari skenario di mana salah satu algoritme atau kunci enkripsi mungkin dikompromikan. Dalam skenario ini, lapisan enkripsi tambahan terus melindungi data Anda.

Enkripsi tingkat layanan mendukung penggunaan kunci yang dikelola Microsoft atau kunci yang dikelola pelanggan dengan Azure Key Vault. Enkripsi tingkat infrastruktur bergantung pada kunci yang dikelola Microsoft dan selalu menggunakan kunci terpisah.

Untuk informasi selengkapnya tentang cara membuat akun penyimpanan yang mengaktifkan enkripsi infrastruktur, lihat Membuat akun penyimpanan dengan enkripsi infrastruktur yang diaktifkan untuk enkripsi ganda data.

Enkripsi sisi klien untuk blob dan antrean

Pustaka klien Azure Blob Storage untuk .NET, Java, dan Python mendukung enkripsi data dalam aplikasi klien sebelum mengunggah ke Azure Storage, dan mendekripsi data saat mengunduh ke klien. Pustaka klien Queue Storage untuk .NET dan Python juga mendukung enkripsi sisi klien.

Catatan

Pertimbangkan untuk menggunakan fitur enkripsi sisi layanan yang disediakan oleh Azure Storage untuk melindungi data Anda, bukan enkripsi sisi klien.

Pustaka klien Blob Storage dan Queue Storage menggunakan AES untuk mengenkripsi data pengguna. Ada dua versi enkripsi sisi klien yang tersedia di pustaka klien:

  • Versi 2 menggunakan mode Galois/Counter Mode (GCM) dengan AES. SDK Blob Storage dan Queue Storage mendukung enkripsi sisi klien dengan v2.
  • Versi 1 menggunakan mode Cipher Block Chaining (CBC) dengan AES. SDK Blob Storage, Queue Storage, dan Table Storage mendukung enkripsi sisi klien dengan v1.

Peringatan

Kami tidak lagi menyarankan penggunaan versi 1 enkripsi sisi klien karena kerentanan keamanan dalam penerapan mode CBC pustaka klien. Untuk informasi selengkapnya tentang kerentanan keamanan ini, lihat Azure Storage memperbarui enkripsi sisi klien di SDK untuk mengatasi kerentanan keamanan. Jika saat ini Anda menggunakan v1, sebaiknya perbarui aplikasi sehingga enkripsi sisi klien v2 dapat digunakan dan data Anda dapat dimigrasikan.

SDK Table Storage Azure hanya mendukung versi 1 enkripsi sisi klien. Menggunakan enkripsi sisi klien dengan Table Storage tidak disarankan.

Tabel berikut menunjukkan pustaka klien mana yang mendukung versi enkripsi sisi klien mana dan memberikan panduan untuk bermigrasi ke enkripsi sisi klien v2.

Pustaka klien Versi enkripsi sisi klien didukung Migrasi yang direkomendasikan Panduan tambahan
Pustaka klien Blob Storage untuk .NET (versi 12.13.0 dan yang lebih baru), Java (versi 12.18.0 dan yang lebih baru), dan Python (versi 12.13.0 dan yang lebih baru) 2.0

1.0 (hanya untuk kompatibilitas mundur)
Perbarui kode Anda untuk menggunakan enkripsi sisi klien v2.

Unduh data terenkripsi apa pun untuk mendekripsinya, lalu enkripsi ulang dengan enkripsi sisi klien v2.
Enkripsi sisi klien untuk blob
Pustaka klien Blob Storage untuk .NET (versi 12.12.0 dan versi sebelumnya), Java (versi 12.17.0 dan versi sebelumnya), dan Python (versi 12.12.0 dan versi sebelumnya) 1.0 (tidak disarankan) Perbarui aplikasi Anda untuk menggunakan versi SDK Blob Storage yang mendukung enkripsi sisi klien v2. Untuk detailnya, lihat Matriks dukungan SDK untuk enkripsi sisi klien.

Perbarui kode Anda untuk menggunakan enkripsi sisi klien v2.

Unduh data terenkripsi apa pun untuk mendekripsinya, lalu enkripsi ulang dengan enkripsi sisi klien v2.
Enkripsi sisi klien untuk blob
Pustaka klien Queue Storage untuk .NET (versi 12.11.0 dan yang lebih baru) dan Python (versi 12.4 dan yang lebih baru) 2.0

1.0 (hanya untuk kompatibilitas mundur)
Perbarui kode Anda untuk menggunakan enkripsi sisi klien v2. Enkripsi sisi klien untuk antrean
Pustaka klien Queue Storage untuk .NET (versi 12.10.0 dan versi sebelumnya) dan Python (versi 12.3.0 dan versi sebelumnya) 1.0 (tidak disarankan) Perbarui aplikasi Anda untuk menggunakan versi SDK Queue Storage yang mendukung enkripsi sisi klien v2. Lihat Matriks dukungan SDK untuk enkripsi sisi klien

Perbarui kode Anda untuk menggunakan enkripsi sisi klien v2.
Enkripsi sisi klien untuk antrean
Pustaka klien Table Storage untuk .NET, Java, dan Python 1.0 (tidak disarankan) Tidak tersedia. T/A

Langkah berikutnya