Enkripsi data server Azure Database for PostgreSQL Single dengan kunci yang dikelola pelanggan

BERLAKU UNTUK: Azure Database for PostgreSQL - Server Tunggal

Penting

Azure Database for PostgreSQL - Server Tunggal berada di jalur penghentian. Kami sangat menyarankan Agar Anda meningkatkan ke Azure Database for PostgreSQL - Server Fleksibel. Untuk informasi selengkapnya tentang migrasi ke Azure Database for PostgreSQL - Server Fleksibel, lihat Apa yang terjadi pada Server Tunggal Azure Database for PostgreSQL?.

Azure PostgreSQL memanfaatkan enkripsi Azure Storage untuk mengenkripsi data secara default menggunakan kunci yang dikelola Microsoft. Untuk pengguna Azure PostgreSQL, ini sangat mirip dengan Transparent Data Encryption (TDE) di database lain seperti SQL Server. Banyak organisasi memerlukan kontrol penuh pada akses ke data menggunakan kunci yang dikelola pelanggan. Enkripsi data dengan kunci yang dikelola pelanggan untuk server Azure Database for PostgreSQL Single memungkinkan Anda Bring Your Own Key (BYOK) untuk perlindungan data saat tidak aktif. Ini juga memungkinkan organisasi menerapkan pemisahan tugas dalam pengelolaan kunci dan data. Dengan enkripsi yang dikelola pelanggan, Anda bertanggung jawab untuk, dan dalam kendali penuh, siklus hidup kunci, izin penggunaan kunci, dan audit operasi pada kunci.

Enkripsi data dengan kunci yang dikelola pelanggan untuk server Azure Database for PostgreSQL Single, diatur di tingkat server. Untuk server tertentu, kunci yang dikelola pelanggan, yang disebut kunci enkripsi kunci (KEK), digunakan untuk mengenkripsi kunci enkripsi data (DEK) yang digunakan oleh layanan. KEK adalah kunci asimetris yang disimpan dalam instans Azure Key Vault milik pelanggan dan dikelola pelanggan. Kunci Enkripsi Kunci (KEK) dan Kunci Enkripsi Data (DEK) dijelaskan secara lebih rinci nanti di 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 memungkinkan akses langsung ke kunci yang disimpan, tetapi menyediakan layanan enkripsi dan dekripsi ke entitas yang berwenang. Azure Key Vault dapat menghasilkan kunci, mengimpornya, atau mentransfernya dari perangkat HSM lokal.

Catatan

Fitur ini tersedia di semua wilayah Azure di mana server Azure Database for PostgreSQL Single mendukung tingkat harga "Tujuan Umum" dan "Memori Dioptimalkan". Untuk batasan lainnya, lihat bagian pembatasan.

Keuntungan

Enkripsi data dengan kunci yang dikelola pelanggan untuk server Azure Database for PostgreSQL Single memberikan manfaat berikut:

  • Akses data sepenuhnya dikendalikan oleh Anda dengan kemampuan untuk menghapus kunci dan menutup akses ke database.
  • Kontrol penuh atas siklus hidup kunci, termasuk rotasi kunci agar selaras dengan kebijakan perusahaan.
  • Manajemen pusat dan organisasi kunci di Azure Key Vault.
  • Mengaktifkan enkripsi tidak memiliki dampak kinerja tambahan dengan atau tanpa kunci terkelola pelanggan (CMK) karena PostgreSQL bergantung pada lapisan penyimpanan Azure untuk enkripsi data di kedua skenario, satu-satunya perbedaan adalah ketika CMK digunakan Kunci Enkripsi Azure Storage yang melakukan enkripsi data aktual dienkripsi menggunakan CMK.
  • Kemampuan untuk menerapkan pemisahan tugas antara petugas keamanan, serta DBA dan administrator sistem.

Terminologi dan deskripsi

Kunci enkripsi data (DEK): Kunci AES256 simetris yang digunakan untuk mengenkripsi partisi atau blok data. Mengenkripsi setiap blok data dengan berbagai kunci membuat serangan analisis kripto lebih sulit. Akses ke DEK diperlukan oleh penyedia sumber daya atau instans aplikasi yang mengenkripsi dan mendekripsi blok tertentu. 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 dengan entitas yang memerlukan DEK. Karena KEK diperlukan untuk mendekripsi DEK, KEK secara efektif merupakan satu titik di mana DEK dapat dihapus secara efektif dengan menghapus KEK.

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

Cara kerja enkripsi data dengan kunci yang dikelola pelanggan

Diagram yang menunjukkan Ringkasan Bring Your Own Key

Agar server PostgreSQL menggunakan kunci yang dikelola pelanggan yang disimpan di Azure Key Vault untuk enkripsi DEK, administrator Azure Key Vault memberikan hak akses berikut ke server:

  • get: Untuk mengambil bagian publik dan properti kunci di brankas kunci.
  • wrapKey: Untuk dapat mengenkripsi DEK. DEK terenkripsi disimpan di Azure Database for PostgreSQL.
  • unwrapKey: Untuk dapat mendekripsi DEK. Azure Database for PostgreSQL memerlukan DEK terdekripsi untuk mengenkripsi/mendekripsi data

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

Ketika server dikonfigurasi untuk menggunakan kunci terkelola pelanggan yang disimpan di brankas kunci, server mengirimkan DEK ke brankas kunci untuk enkripsi. Key Vault menampilkan DEK terenkripsi, yang disimpan dalam database pengguna. Demikian pula, jika diperlukan, server mengirimkan DEK yang dilindungi ke brankas kunci untuk dekripsi. Auditor dapat menggunakan Azure Monitor untuk meninjau log peristiwa audit Azure Key Vault, jika pembuatan log diaktifkan.

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

Berikut ini adalah persyaratan untuk mengonfigurasi Key Vault:

  • Key Vault dan Server Tunggal Azure Database for PostgreSQL harus milik penyewa Microsoft Entra yang sama. Key Vault lintas-penyewa dan interaksi server tidak didukung. Memindahkan sumber daya Azure Key Vault setelah itu mengharuskan Anda untuk mengonfigurasi ulang enkripsi data.
  • key vault harus diatur dengan 90 hari agar 'Hari mempertahankan vaults yang dihapus'. Jika key vault yang ada telah dikonfigurasi dengan angka yang lebih rendah, Anda harus membuat key vault baru karena tidak dapat dimodifikasi setelah pembuatan.
  • Aktifkan fitur penghapusan sementara pada key vault, untuk melindungi dari kehilangan data jika penghapusan kunci yang tidak disengaja (atau Azure Key Vault) terjadi. Sumber daya yang dihapus sementara dipertahankan selama 90 hari, kecuali pengguna memulihkan atau menghapusnya sementara itu. Tindakan memulihkan dan menghapus memiliki izin sendiri yang terkait dalam kebijakan akses Azure Key Vault. Fitur penghapusan sementara dinonaktifkan secara default, tetapi Anda dapat mengaktifkannya melalui PowerShell atau Azure CLI (perhatikan bahwa Anda tidak dapat mengaktifkannya melalui portal Azure).
  • Aktifkan perlindungan Penghapusan untuk memberlakukan periode penyimpanan wajib untuk vaults dan objek vaults yang dihapus
  • Berikan server Azure Database for PostgreSQL Single ke key vault dengan izin get, wrapKey, dan unwrapKey dengan menggunakan identitas terkelola uniknya. Di portal Microsoft Azure, identitas 'Layanan' yang unik secara otomatis dibuat saat enkripsi data diaktifkan di server PostgreSQL Single. Lihat Enkripsi data untuk server Azure Database for PostgreSQL Single dengan menggunakan portal Microsoft Azure untuk instruksi langkah demi langkah yang terperinci saat Anda menggunakan portal Microsoft Azure.

Berikut ini adalah persyaratan untuk mengonfigurasi kunci yang dikelola pelanggan:

  • Kunci terkelola pelanggan yang akan digunakan untuk mengenkripsi DEK hanya boleh asimetris, RSA 2048.
  • Tanggal aktivasi kunci (jika ditetapkan) harus berupa tanggal dan waktu di masa lalu. Tanggal kedaluwarsa (jika ditetapkan) harus merupakan tanggal dan waktu mendatang.
  • Kunci harus dalam status Aktfkan.
  • Jika Anda mengimpor kunci yang ada ke dalam key vault, pastikan untuk menyediakannya dalam format file yang didukung (.pfx, .byok, .backup).

Rekomendasi

Saat Anda menggunakan enkripsi data dengan menggunakan kunci yang dikelola pelanggan, berikut adalah rekomendasi untuk mengonfigurasi Key Vault:

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

  • Aktifkan audit dan pelaporan pada semua kunci enkripsi. Key Vault menyediakan log yang mudah dimasukkan ke dalam informasi keamanan dan alat manajemen peristiwa lainnya. Azure Monitor Log Analytics adalah salah satu contoh layanan yang sudah terintegrasi.

  • Pastikan bahwa Azure Key Vault dan server Azure Database for PostgreSQL Single berada di wilayah yang sama, untuk memastikan akses yang lebih cepat untuk operasi DEK wrap, dan unwrap.

  • Kunci KeyVault Azure hanya ke titik akhir pribadi dan jaringan yang dipilih dan izinkan hanya layanan Microsoft tepercaya untuk mengamankan sumber daya.

    trusted-service-with-AKV

Berikut adalah rekomendasi untuk mengonfigurasi kunci yang dikelola pelanggan:

  • Simpan salinan kunci yang dikelola pelanggan di tempat yang aman, atau escrow ke layanan escrow.

  • Jika Key Vault membuat kunci, buat cadangan kunci sebelum menggunakan kunci untuk pertama kali. Anda hanya dapat memulihkan cadangan ke Key Vault. Untuk informasi selengkapnya tentang perintah pencadangan, lihat Backup-AzKeyVaultKey.

Kondisi kunci yang dikelola pelanggan 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 kunci yang dikelola pelanggan 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 server dapat mencapai status ini adalah:

  • Jika kita membuat server Point In Time Restore untuk server Azure Database for PostgreSQL Single, yang mengaktifkan enkripsi data, server yang baru dibuat akan berada dalam keadaan yang Tidak Dapat Diakses. Anda dapat memperbaiki status server melalui portal Microsoft Azure atau CLI.
  • Jika kami membuat replika baca untuk server Azure Database for PostgreSQL Single, yang mengaktifkan enkripsi data, server replika akan berada dalam keadaan yang Tidak Dapat Diakses. Anda dapat memperbaiki status server melalui portal Microsoft Azure atau CLI.
  • Jika Anda menghapus Azure Key Vault, server Azure Database for PostgreSQL Single tidak akan dapat mengakses kunci dan akan pindah ke keadaan yang Tidak Dapat Diakses. Pulihkan Key Vault dan validasi ulang enkripsi data untuk membuat server Tersedia.
  • Jika Anda menghapus kunci dari Azure Key Vault, server Azure Database for PostgreSQL Single tidak akan dapat mengakses kunci dan akan pindah ke keadaan yang Tidak Dapat Diakses. Pulihkan Kunci dan validasi ulang enkripsi data untuk membuat server Tersedia.
  • Jika kunci yang disimpan di Azure KeyVault kedaluwarsa, kunci akan menjadi tidak valid dan server Azure Database for PostgreSQL Single akan beralih ke keadaan yang Tidak Dapat Diakses. Perpanjang tanggal kedaluwarsa utama menggunakan CLI lalu validasi ulang enkripsi data untuk membuat server Tersedia.

Pencabutan akses kunci yang tidak disengaja dari Key Vault

Mungkin saja seseorang dengan hak akses yang memadai ke Key Vault secara tidak sengaja menonaktifkan akses server ke kunci dengan:

  • Mencabut brankas kunci izin get, wrapKey, dan unwrapKey dari server.

  • Menghapus kunci.

  • Menghapus brankas kunci.

  • Mengubah aturan firewall brankas kunci.

  • Menghapus identitas server terkelola di ID Microsoft Entra.

Memantau kunci yang dikelola pelanggan di Key Vault

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

  • Azure Resource Health: Database yang tidak dapat diakses yang telah kehilangan akses ke kunci pelanggan ditampilkan sebagai "Tidak dapat diakses" setelah koneksi pertama ke basis data ditolak.

  • Log aktivitas: Saat akses ke kunci pelanggan di Key Vault yang dikelola pelanggan gagal, entri ditambahkan ke log aktivitas. Anda dapat memulihkan akses sesegera mungkin, jika Anda membuat peringatan untuk peristiwa ini.

  • Grup tindakan: Tentukan grup ini untuk mengirimi Anda pemberitahuan dan peringatan berdasarkan preferensi Anda.

Memulihkan dan mereplikasi dengan kunci yang dikelola pelanggan di Azure Key Vault

Setelah server Tunggal Azure Database for PostgreSQL dienkripsi dengan kunci terkelola pelanggan yang disimpan di Key Vault, setiap salinan server yang baru dibuat juga dienkripsi. Anda dapat membuat salinan baru ini baik melalui operasi lokal atau geo-restore, atau melalui replika baca. Namun, salinan dapat diubah guna mencerminkan kunci yang dikelola pelanggan baru untuk enkripsi. Saat kunci yang dikelola pelanggan diubah, cadangan lama server mulai menggunakan kunci terbaru.

Untuk menghindari masalah saat menyiapkan enkripsi data yang dikelola pelanggan selama pemulihan atau pembuatan replika baca, penting untuk mengikuti langkah-langkah ini pada server utama dan dipulihkan/replika:

  • Memulai proses pemulihan atau membaca pembuatan replika dari server Azure Database for PostgreSQL Single.
  • Menjaga server yang baru dibuat (dipulihkan/replika) dalam keadaan tidak dapat diakses, karena identitas uniknya belum diberikan izin ke Key Vault.
  • Pada server yang dipulihkan/replika, validasi ulang kunci yang dikelola pelanggan dalam pengaturan enkripsi data. Ini memastikan bahwa server yang baru dibuat diberikan izin wrap dan unwrap ke kunci yang disimpan di Azure Key Vault.

Batasan

Untuk Azure database for PostgreSQL, dukungan untuk enkripsi data saat tidak aktif menggunakan kunci yang dikelola pelanggan (CMK) memiliki beberapa batasan -

  • Dukungan untuk fungsi ini terbatas pada tingkat harga Tujuan Umum dan Memori yang Dioptimalkan.

  • Fitur ini hanya didukung di wilayah dan server yang mendukung penyimpanan hingga 16TB. Untuk daftar wilayah Azure yang mendukung penyimpanan hingga 16 TB, lihat bagian penyimpanan dalam dokumentasi di sini

    Catatan

    • Semua server PostgreSQL baru yang dibuat di wilayah yang tercantum di atas, dukungan untuk enkripsi dengan kunci manajer pelanggan tersedia. Server Point In Time Restored (PITR) atau replika baca tidak akan memenuhi syarat meskipun secara teori mereka 'baru'.
    • Untuk memvalidasi apakah server yang disediakan mendukung hingga 16TB, Anda dapat membuka blade tingkat harga di portal dan melihat ukuran penyimpanan maksimum yang didukung oleh server yang disediakan. Jika Anda dapat memindahkan penggeser hingga 4TB, server Anda mungkin tidak mendukung enkripsi dengan kunci yang dikelola pelanggan. Namun, data dienkripsi menggunakan kunci yang dikelola layanan setiap saat. Silakan hubungi AskAzureDBforPostgreSQL@service.microsoft.com jika Anda memiliki pertanyaan.
  • Enkripsi hanya didukung dengan kunci kriptografi RSA 2048.

Langkah berikutnya

Pelajari cara menyiapkan enkripsi data dengan kunci yang dikelola pelanggan untuk server Azure database for PostgreSQL Single dengan menggunakan portal Microsoft Azure.