Bagikan melalui


Enkripsi data dengan kunci yang dikelola pelanggan di Azure Database for PostgreSQL - Server Fleksibel

BERLAKU UNTUK: Azure Database for PostgreSQL - Server Fleksibel

Server fleksibel Azure Database for PostgreSQL menggunakan enkripsi Azure Storage untuk mengenkripsi data tidak aktif secara default, dengan menggunakan kunci yang dikelola Microsoft. Untuk pengguna server fleksibel Azure Database for PostgreSQL, ini mirip dengan enkripsi data transparan di database lain seperti SQL Server.

Banyak organisasi memerlukan kontrol penuh akses ke data dengan menggunakan kunci yang dikelola pelanggan (CMK). Enkripsi data dengan CMK untuk server fleksibel Azure Database for PostgreSQL memungkinkan Anda membawa kunci Anda (BYOK) untuk perlindungan data tidak aktif. Ini juga memungkinkan organisasi menerapkan pemisahan tugas dalam pengelolaan kunci dan data. Dengan enkripsi CMK, Anda bertanggung jawab atas, dan memegang kendali penuh atas, siklus hidup kunci, izin penggunaan utama, dan audit operasi pada kunci.

Enkripsi data dengan CMK untuk server fleksibel Azure Database for PostgreSQL diatur di tingkat server. Untuk server tertentu, jenis CMK yang disebut kunci enkripsi kunci (KEK) digunakan untuk mengenkripsi kunci enkripsi data (DEK) layanan. KEK adalah kunci asimetris yang disimpan dalam instans Azure Key Vault milik pelanggan dan dikelola pelanggan. KEK dan DEK dijelaskan secara lebih rinci nanti dalam artikel ini.

Key Vault adalah sistem manajemen kunci eksternal berbasis cloud. Ini sangat tersedia dan menyediakan penyimpanan yang dapat diskalakan dan aman untuk kunci kriptografi RSA, yang didukung secara opsional oleh modul keamanan perangkat keras (HSM) yang divalidasi FIPS 140. Ini tidak mengizinkan akses langsung ke kunci yang disimpan tetapi menyediakan layanan enkripsi dan dekripsi ke entitas yang berwenang. Key Vault dapat membuat kunci, mengimpornya, atau mentransfernya dari perangkat HSM lokal.

Keuntungan

Enkripsi data dengan CMK untuk server fleksibel Azure Database for PostgreSQL memberikan manfaat berikut:

  • Anda sepenuhnya mengontrol akses data. Anda bisa menghapus kunci untuk membuat database tidak dapat diakses.

  • Anda sepenuhnya mengontrol siklus hidup kunci, termasuk rotasi kunci agar selaras dengan kebijakan perusahaan.

  • Anda dapat mengelola dan mengatur kunci secara terpusat di Key Vault.

  • Mengaktifkan enkripsi tidak memengaruhi performa dengan atau tanpa CMK, karena PostgreSQL bergantung pada lapisan Azure Storage untuk enkripsi data dalam kedua skenario. Satu-satunya perbedaan adalah ketika Anda menggunakan CMK, kunci enkripsi Azure Storage (yang melakukan enkripsi data aktual) dienkripsi.

  • Anda dapat menerapkan pemisahan tugas antara petugas keamanan, administrator database, dan administrator sistem.

Terminologi

Kunci enkripsi data (DEK): Kunci AES 256 simetris yang digunakan untuk mengenkripsi partisi atau blok data. Mengenkripsi setiap blok data dengan kunci yang berbeda membuat serangan cryptanalysis lebih sulit. Penyedia sumber daya atau instans aplikasi yang mengenkripsi dan mendekripsi blok tertentu memerlukan akses ke DEK. Saat Anda mengganti DEK dengan kunci baru, hanya data di blok terkait yang harus dienkripsi ulang dengan kunci baru.

Kunci enkripsi kunci (KEK): Kunci enkripsi yang digunakan untuk mengenkripsi DEK. KEK yang tidak pernah meninggalkan Key Vault memungkinkan DEK itu sendiri dienkripsi dan dikendalikan. Entitas yang memiliki akses ke KEK mungkin berbeda dari entitas yang memerlukan DEK. Karena KEK diperlukan untuk mendekripsi DEK, KEK secara efektif merupakan satu titik di mana Anda dapat menghapus DEK (dengan menghapus KEK).

DEK, yang dienkripsi dengan KEK, disimpan secara terpisah. Hanya entitas yang memiliki akses ke KEK yang dapat mendekripsi DEK ini. Untuk informasi selengkapnya, lihat Keamanan dalam enkripsi saat tidak aktif.

Cara kerja enkripsi data dengan CMK

Diagram yang memperlihatkan gambaran umum bawa kunci Anda sendiri.

Identitas terkelola yang ditetapkan pengguna Microsoft Entra digunakan untuk menyambungkan dan mengambil CMK. Untuk membuat identitas, ikuti tutorial ini.

Agar server PostgreSQL menggunakan CMK yang disimpan di Key Vault untuk enkripsi DEK, administrator Key Vault memberikan hak akses berikut ke identitas terkelola yang Anda buat:

  • get: Untuk mengambil bagian publik dan properti kunci di Key Vault.

  • list: Untuk daftar dan iterasi melalui kunci di Key Vault.

  • wrapKey: Untuk mengenkripsi DEK. DEK terenkripsi disimpan di Azure Database for PostgreSQL.

  • unwrapKey: Untuk mendekripsi DEK. Azure Database for PostgreSQL memerlukan DEK yang didekripsi untuk mengenkripsi dan mendekripsi data.

Administrator Key Vault juga dapat mengaktifkan pengelogan peristiwa audit Key Vault, sehingga dapat diaudit nanti.

Alternatif untuk mengakses penetapan hak , seperti yang dijelaskan di atas, Anda dapat membuat penetapan peran Azure RBAC baru dengan peran Pengguna Enkripsi Layanan Kripto Key Vault.

Penting

Tidak memberikan hak akses sebelumnya atau penetapan RBAC ke identitas terkelola untuk akses ke Key Vault dapat mengakibatkan kegagalan untuk mengambil kunci enkripsi dan kegagalan untuk menyiapkan fitur CMK.

Saat Anda mengonfigurasi server untuk menggunakan CMK yang disimpan di Key Vault, server mengirimkan DEK ke Key Vault untuk enkripsi. Key Vault mengembalikan DEK terenkripsi yang disimpan dalam database pengguna. Jika perlu, server mengirim DEK yang dilindungi ke Key Vault untuk dekripsi. Auditor dapat menggunakan Azure Monitor untuk meninjau log peristiwa audit Key Vault, jika pengelogan diaktifkan.

Persyaratan untuk mengonfigurasi enkripsi data untuk server fleksibel Azure Database for PostgreSQL

Berikut adalah persyaratan untuk mengonfigurasi Key Vault:

  • Key Vault dan server fleksibel Azure Database for PostgreSQL harus milik penyewa Microsoft Entra yang sama. Key Vault lintas-penyewa dan interaksi server tidak didukung. Memindahkan sumber daya Key Vault setelah itu mengharuskan Anda untuk mengonfigurasi ulang enkripsi data.

  • Hari untuk mempertahankan pengaturan vault yang dihapus untuk Key Vault harus 90. Jika Anda mengonfigurasi instans Key Vault yang ada dengan angka yang lebih rendah, Anda perlu membuat instans Key Vault baru karena Anda tidak dapat memodifikasi instans setelah pembuatan.

  • Disarankan untuk mengatur Hari untuk mempertahankan konfigurasi vault yang dihapus untuk Key Vault menjadi 90 hari. Jika Anda telah mengonfigurasi instans Key Vault yang ada dengan angka yang lebih rendah, instans tersebut masih harus valid. Namun, jika Anda ingin mengubah pengaturan ini dan meningkatkan nilainya, perlu untuk membuat instans Key Vault baru. Setelah instans dibuat, tidak dimungkinkan untuk memodifikasi konfigurasinya.

  • Aktifkan fitur penghapusan sementara di Key Vault untuk membantu melindungi dari kehilangan data jika kunci atau instans Key Vault dihapus secara tidak sengaja. Key Vault mempertahankan sumber daya yang dihapus sementara selama 90 hari kecuali pengguna memulihkan atau membersihkannya sementara itu. Tindakan pemulihan dan penghapusan menyeluruh memiliki izin mereka sendiri yang terkait dengan kebijakan akses Key Vault.

    Fitur penghapusan sementara dinonaktifkan secara default, tetapi Anda dapat mengaktifkannya melalui PowerShell atau Azure CLI. Anda tidak dapat menyalakannya melalui portal Azure.

  • Aktifkan perlindungan penghapusan menyeluruh untuk memberlakukan periode retensi wajib untuk vault dan objek vault yang dihapus.

  • Berikan akses instans server fleksibel Azure Database for PostgreSQL ke Key Vault dengan izin dapatkan, daftar, wrapKey, dan unwrapKey , dengan menggunakan identitas terkelola uniknya. Atau, buat penetapan peran Azure RBAC baru dengan peran Pengguna Enkripsi Layanan Kripto Key Vault untuk identitas terkelola.

Berikut adalah persyaratan untuk mengonfigurasi CMK di server fleksibel Azure Database for PostgreSQL:

  • CMK yang akan digunakan untuk mengenkripsi DEK hanya dapat berupa asimetris, RSA, atau RSA-HSM. Ukuran kunci 2.048, 3.072, dan 4.096 didukung.

  • Tanggal dan waktu untuk aktivasi kunci (jika ditetapkan) harus di masa lalu. Tanggal dan waktu untuk kedaluwarsa (jika ditetapkan) harus di masa mendatang.

  • Kunci harus dalam status *Enabled- .

  • Jika Anda mengimpor kunci yang ada ke Key Vault, berikan dalam format file yang didukung (.pfx, , .byokatau .backup).

Rekomendasi

Saat Anda menggunakan CMK untuk enkripsi data, berikut adalah rekomendasi untuk mengonfigurasi Key Vault:

  • Atur kunci sumber daya pada Key Vault untuk mengontrol siapa yang dapat menghapus sumber daya penting ini dan untuk mencegah penghapusan yang tidak disengaja atau tidak sah.

  • Aktifkan audit dan pelaporan pada semua kunci enkripsi. Key Vault menyediakan log yang mudah disuntikkan ke alat informasi keamanan dan manajemen peristiwa (SIEM) lainnya. Azure Monitor Logs adalah salah satu contoh layanan yang sudah terintegrasi.

  • Kunci Key Vault dengan memilih Nonaktifkan akses publik dan Izinkan layanan Microsoft tepercaya melewati firewall ini.

    Cuplikan layar opsi jaringan untuk menonaktifkan akses publik dan hanya mengizinkan layanan Microsoft tepercaya.

Catatan

Setelah Anda memilih Nonaktifkan akses publik dan Izinkan layanan Microsoft tepercaya untuk melewati firewall ini, Anda mungkin mendapatkan kesalahan yang mirip dengan yang berikut ini ketika Anda mencoba menggunakan akses publik untuk mengelola Key Vault melalui portal: "Anda telah mengaktifkan kontrol akses jaringan. Hanya jaringan yang diizinkan yang akan memiliki akses ke brankas kunci ini." Kesalahan ini tidak menghalangi kemampuan untuk menyediakan kunci selama penyiapan CMK atau mengambil kunci dari Key Vault selama operasi server.

Berikut adalah rekomendasi untuk mengonfigurasi CMK:

  • Simpan salinan CMK di tempat yang aman, atau escrow ke layanan escrow.

  • Jika Key Vault menghasilkan kunci, buat cadangan kunci sebelum Anda menggunakan kunci untuk pertama kalinya. Anda hanya dapat memulihkan cadangan ke Key Vault.

Pencabutan akses kunci yang tidak disengaja dari Key Vault

Seseorang dengan hak akses yang memadai ke Key Vault mungkin secara tidak sengaja menonaktifkan akses server ke kunci dengan:

  • Mencabut daftar, mendapatkan, wrapKey, dan izin unwrapKey dari identitas yang digunakan untuk mengambil kunci di Key Vault.

  • Menghapus kunci.

  • Menghapus instans Key Vault.

  • Mengubah aturan firewall Key Vault.

  • Menghapus identitas server terkelola di ID Microsoft Entra.

Memantau CMK di Key Vault

Untuk memantau status database, dan mengaktifkan pemberitahuan untuk hilangnya akses ke pelindung enkripsi data transparan, konfigurasikan fitur Azure berikut ini:

  • Kesehatan sumber daya: Database yang kehilangan akses ke CMK muncul sebagai Tidak Dapat Diakses setelah koneksi pertama ke database ditolak.
  • Log aktivitas: Saat akses ke CMK dalam instans Key Vault yang dikelola pelanggan gagal, entri ditambahkan ke log aktivitas. Anda dapat mengembalikan akses jika membuat pemberitahuan untuk peristiwa ini sesegera mungkin.
  • Grup tindakan: Tentukan grup ini untuk menerima pemberitahuan dan pemberitahuan berdasarkan preferensi Anda.

Memulihkan dengan kunci yang dikelola pelanggan di Key Vault

Setelah server fleksibel Azure Database for PostgreSQL dienkripsi dengan kunci terkelola pelanggan yang disimpan di Key Vault, salinan server yang baru dibuat juga dienkripsi. Anda dapat membuat salinan baru ini melalui operasi pemulihan titik waktu (PITR) atau replika baca.

Saat menyiapkan enkripsi data yang dikelola pelanggan selama pemulihan atau pembuatan replika baca, Anda dapat menghindari masalah dengan mengikuti langkah-langkah berikut pada server utama dan yang dipulihkan/replika:

  • Mulai proses pemulihan atau proses pembuatan replika baca dari instans server fleksibel Azure Database for PostgreSQL utama.

  • Pada server yang dipulihkan atau replika, Anda dapat mengubah CMK dan/atau identitas Microsoft Entra yang digunakan untuk mengakses Key Vault di pengaturan enkripsi data. Pastikan bahwa server yang baru dibuat memiliki izin daftar, bungkus, dan buka bungkus ke kunci yang disimpan di Key Vault.

  • Jangan cabut kunci asli setelah memulihkan. Saat ini, kami tidak mendukung pencabutan kunci setelah Anda memulihkan server berkemampuan CMK ke server lain.

HSM Terkelola

Modul keamanan perangkat keras (HSM) adalah perangkat keras tahan perubahan yang membantu mengamankan proses kriptografi dengan menghasilkan, melindungi, dan mengelola kunci yang digunakan untuk mengenkripsi data, mendekripsi data, membuat tanda tangan digital, dan membuat sertifikat digital. HSM diuji, divalidasi, dan disertifikasi ke standar keamanan tertinggi, termasuk FIPS 140 dan Kriteria Umum.

Azure Key Vault Managed HSM adalah layanan cloud yang dikelola sepenuhnya, sangat tersedia, penyewa tunggal, dan sesuai standar. Anda dapat menggunakannya untuk melindungi kunci kriptografi untuk aplikasi cloud Anda melalui HSM yang divalidasi FIPS 140-3.

Saat Anda membuat instans server fleksibel Azure Database for PostgreSQL baru di portal Azure dengan fitur CMK, Anda dapat memilih Azure Key Vault Managed HSM sebagai penyimpanan kunci sebagai alternatif untuk Azure Key Vault. Prasyarat, dalam hal identitas dan izin yang ditentukan pengguna, sama dengan Azure Key Vault (seperti yang tercantum sebelumnya dalam artikel ini). Untuk informasi selengkapnya tentang cara membuat instans HSM Terkelola, keuntungan dan perbedaannya dari penyimpanan sertifikat berbasis Key Vault bersama, dan cara mengimpor kunci ke HSM Terkelola, lihat Apa itu Azure Key Vault Managed HSM?.

Kondisi CMK yang tidak dapat diakses

Saat Anda mengonfigurasi enkripsi data dengan kunci yang dikelola pelanggan di Key Vault, akses berkelanjutan ke kunci ini diperlukan agar server tetap online. Jika server kehilangan akses ke CMK di Key Vault, server mulai menolak semua koneksi dalam waktu 10 menit. Server mengeluarkan pesan kesalahan yang sesuai dan mengubah status server menjadi Tidak dapat diakses.

Beberapa alasan mengapa status server menjadi Tidak Dapat Diakses adalah:

  • Jika Anda menghapus instans Key Vault, instans server fleksibel Azure Database for PostgreSQL tidak dapat mengakses kunci dan berpindah ke status Tidak Dapat Diakses . Untuk membuat server Tersedia, pulihkan instans Key Vault dan validasi ulang enkripsi data.
  • Jika Anda menghapus kunci dari Key Vault, instans server fleksibel Azure Database for PostgreSQL tidak dapat mengakses kunci dan berpindah ke status Tidak Dapat Diakses . Untuk membuat server Tersedia, pulihkan kunci dan validasi ulang enkripsi data.
  • Jika Anda menghapus, dari ID Microsoft Entra, identitas terkelola yang digunakan untuk mengambil kunci dari Key Vault, atau dengan menghapus penetapan peran Azure RBAC dengan peran Pengguna Enkripsi Layanan Kripto Key Vault. instans server fleksibel Azure Database for PostgreSQL tidak dapat mengakses kunci dan berpindah ke status Tidak Dapat Diakses . Untuk membuat server Tersedia, pulihkan identitas dan validasi ulang enkripsi data.
  • Jika Anda mencabut daftar Key Vault, dapatkan, wrapKey, dan kebijakan akses unwrapKey dari identitas terkelola yang digunakan untuk mengambil kunci dari Key Vault, instans server fleksibel Azure Database for PostgreSQL tidak dapat mengakses kunci dan berpindah ke status Tidak Dapat Diakses. Tambahkan kebijakan akses yang diperlukan ke identitas di Key Vault.
  • Jika Anda menyiapkan aturan firewall Key Vault yang terlalu ketat, server fleksibel Azure Database for PostgreSQL tidak dapat berkomunikasi dengan Key Vault untuk mengambil kunci. Saat Anda mengonfigurasi firewall Key Vault, pastikan untuk memilih opsi untuk mengizinkan layanan Microsoft tepercaya melewati firewall.

Catatan

Ketika kunci dinonaktifkan, dihapus, kedaluwarsa, atau tidak dapat dijangkau, server yang memiliki data yang dienkripsi melalui kunci tersebut menjadi Tidak Dapat Diakses, seperti yang dinyatakan sebelumnya. Server tidak akan tersedia sampai Anda mengaktifkan kembali kunci atau menetapkan kunci baru.

Umumnya, server menjadi Tidak Dapat Diakses dalam waktu 60 menit setelah kunci dinonaktifkan, dihapus, kedaluwarsa, atau tidak dapat dijangkau. Setelah kunci tersedia, server mungkin membutuhkan waktu hingga 60 menit untuk dapat diakses lagi.

Memulihkan dari Penghapusan Identitas Terkelola

Jarang terjadi ketika identitas terkelola ID Entra, yang digunakan oleh CMK untuk mengambil kunci dari Azure Key Vault (AKV), dihapus dalam ID Microsoft Entra berikut adalah langkah-langkah yang disarankan untuk memulihkan:

  1. Memulihkan identitas atau membuat identitas ID Entra terkelola baru
  2. Pastikan identitas ini memiliki izin yang tepat untuk operasi pada kunci di Azure Key Vault (AKV). Bergantung pada model izin brankas kunci (kebijakan akses atau Azure RBAC), akses brankas kunci dapat diberikan baik dengan membuat kebijakan akses pada brankas kunci (daftar, dapatkan, wrapKey, dan kebijakan akses unwrapKey), atau dengan membuat penetapan peran Azure RBAC baru dengan peran Pengguna Enkripsi Layanan Kripto Key Vault.
  3. Validasi ulang enkripsi data CMK dengan identitas baru atau yang dipulihkan di layar Azure Database for PostgreSQL - Enkripsi Data Server Fleksibel portal Azure.

Penting

Cukup buat identitas ID Entra baru dengan nama yang sama dengan identitas yang dihapus tidak pulih dari penghapusan identitas terkelola.

Menggunakan enkripsi data dengan CMK dan fitur kelangsungan bisnis geo-redundan

Server fleksibel Azure Database for PostgreSQL mendukung fitur pemulihan data tingkat lanjut, seperti replika dan cadangan geo-redundan. Berikut ini adalah persyaratan untuk menyiapkan enkripsi data dengan CMK dan fitur-fitur ini, selain persyaratan dasar untuk enkripsi data dengan CMK:

  • Kunci enkripsi cadangan geo-redundan perlu dibuat dalam instans Key Vault di wilayah tempat cadangan geo-redundan disimpan.
  • Versi REST API Azure Resource Manager untuk mendukung server CMK yang mendukung cadangan geo-redundan adalah pratinjau 2022-11-01. Jika Anda ingin menggunakan templat Azure Resource Manager untuk mengotomatiskan pembuatan server yang menggunakan enkripsi dengan CMK dan fitur cadangan geo-redundan, gunakan versi API ini.
  • Anda tidak dapat menggunakan identitas yang dikelola pengguna yang sama untuk mengautentikasi instans Key Vault database utama dan instans Key Vault yang menyimpan kunci enkripsi untuk cadangan geo-redundan. Untuk menjaga ketahanan regional, kami sarankan Anda membuat identitas yang dikelola pengguna di wilayah yang sama dengan cadangan geo-redundan.
  • Jika Anda menyiapkan database replika baca untuk dienkripsi dengan CMK selama pembuatan, kunci enkripsinya harus berada dalam instans Key Vault di wilayah tempat database replika baca berada. Identitas yang ditetapkan pengguna untuk mengautentikasi terhadap instans Key Vault ini perlu dibuat di wilayah yang sama.

Batasan

Berikut adalah batasan saat ini untuk mengonfigurasi CMK di server fleksibel Azure Database for PostgreSQL:

  • Anda hanya dapat mengonfigurasi enkripsi CMK selama pembuatan server baru, bukan sebagai pembaruan ke instans server fleksibel Azure Database for PostgreSQL yang ada. Anda dapat memulihkan cadangan PITR ke server baru dengan enkripsi CMK sebagai gantinya.

  • Setelah mengonfigurasi enkripsi CMK, Anda tidak dapat menghapusnya. Jika Anda ingin menghapus fitur ini, satu-satunya cara adalah memulihkan server ke server non-CMK.

Langkah berikutnya