Bagikan melalui


Manajemen identitas dan kunci untuk TDE dengan kunci yang dikelola pelanggan tingkat database

Berlaku untuk: Azure SQL Database

Catatan

  • CMK TDE Tingkat Database tersedia untuk Azure SQL Database (semua edisi SQL Database). Ini tidak tersedia untuk Azure SQL Managed Instance, SQL Server lokal, Azure VM, dan Azure Synapse Analytics (kumpulan SQL khusus (sebelumnya SQL DW)).
  • Panduan yang sama dapat diterapkan untuk mengonfigurasi kunci yang dikelola pelanggan tingkat database di penyewa yang sama dengan mengecualikan parameter ID klien federasi. Untuk informasi selengkapnya tentang kunci yang dikelola pelanggan tingkat database, lihat Enkripsi data transparan (TDE) dengan kunci yang dikelola pelanggan di tingkat database.

Dalam panduan ini, kita melalui langkah-langkah untuk membuat, memperbarui, dan mengambil Azure SQL Database dengan enkripsi data transparan (TDE) dan kunci yang dikelola pelanggan (CMK) di tingkat database, menggunakan identitas terkelola yang ditetapkan pengguna untuk mengakses Azure Key Vault. Azure Key Vault berada di penyewa Microsoft Entra yang berbeda dari Azure SQL Database. Untuk informasi selengkapnya, lihat Kunci yang dikelola pelanggan lintas penyewa dengan enkripsi data transparan.

Catatan

ID Microsoft Entra sebelumnya dikenal sebagai Azure Active Directory (Azure AD).

Prasyarat

  • Panduan ini mengasumsikan bahwa Anda memiliki dua penyewa Microsoft Entra.
    • Yang pertama terdiri dari sumber daya Azure SQL Database, aplikasi Microsoft Entra multi-penyewa, dan identitas terkelola yang ditetapkan pengguna.
    • Penyewa kedua menampung Azure Key Vault.
  • Untuk instruksi komprehensif tentang menyiapkan CMK lintas penyewa dan izin RBAC yang diperlukan untuk mengonfigurasi aplikasi Microsoft Entra dan Azure Key Vault, lihat salah satu panduan berikut:
  • Azure CLI versi 2.52.0 atau yang lebih tinggi.
  • Modul Az PowerShell versi 10.3.0 atau yang lebih tinggi.
  • Izin RBAC yang diperlukan untuk CMK tingkat database adalah izin yang sama yang diperlukan untuk CMK tingkat server. Secara khusus, izin RBAC yang sama yang berlaku saat menggunakan Azure Key Vault, identitas terkelola, dan CMK lintas penyewa untuk TDE di tingkat server berlaku di tingkat database. Untuk informasi selengkapnya tentang manajemen kunci dan kebijakan akses, lihat Manajemen kunci.

Sumber daya yang diperlukan pada penyewa pertama

Untuk tujuan tutorial ini, kita akan menganggap penyewa pertama milik vendor perangkat lunak independen (ISV), dan penyewa kedua berasal dari klien mereka. Untuk informasi selengkapnya tentang skenario ini, lihat Kunci yang dikelola pelanggan lintas penyewa dengan enkripsi data transparan.

Sebelum kita dapat mengonfigurasi TDE untuk Azure SQL Database dengan CMK lintas penyewa, kita harus memiliki aplikasi Microsoft Entra multi-penyewa yang dikonfigurasi dengan identitas terkelola yang ditetapkan pengguna yang ditetapkan sebagai kredensial identitas federasi untuk aplikasi. Ikuti salah satu panduan dalam Prasyarat.

  1. Pada penyewa pertama tempat Anda ingin membuat Azure SQL Database, buat dan konfigurasikan aplikasi Microsoft Entra multi-penyewa.

  2. Buat identitas terkelola yang ditetapkan pengguna.

  3. Konfigurasikan identitas terkelola yang ditetapkan pengguna sebagai kredensial identitas federasi untuk aplikasi multi-penyewa.

  4. Rekam nama aplikasi dan ID aplikasi. Ini dapat ditemukan di aplikasi Portal Azure> Microsoft Entra ID>Enterprise dan mencari aplikasi yang dibuat.

Sumber daya yang diperlukan pada penyewa kedua

Catatan

Modul Azure ACTIVE Directory dan MSOnline PowerShell tidak digunakan lagi per 30 Maret 2024. Untuk mempelajari lebih lanjut, baca pembaruan penghentian. Setelah tanggal ini, dukungan untuk modul ini terbatas pada bantuan migrasi ke Microsoft Graph PowerShell SDK dan perbaikan keamanan. Modul yang tidak digunakan lagi akan terus berfungsi hingga Maret, 30 2025.

Sebaiknya migrasi ke Microsoft Graph PowerShell untuk berinteraksi dengan ID Microsoft Entra (sebelumnya Microsoft Azure AD). Untuk pertanyaan umum tentang migrasi, lihat Tanya Jawab Umum Migrasi. Catatan: MSOnline versi 1.0.x mungkin mengalami gangguan setelah 30 Juni 2024.

  1. Pada penyewa kedua tempat Azure Key Vault berada, buat perwakilan layanan (aplikasi) menggunakan ID aplikasi dari aplikasi terdaftar dari penyewa pertama. Berikut adalah beberapa contoh cara mendaftarkan aplikasi multi-penyewa. Ganti <TenantID> dan <ApplicationID> dengan ID Penyewa klien dari ID Microsoft Entra dan ID Aplikasi dari aplikasi multi-penyewa, masing-masing:

    • PowerShell:

      Connect-AzureAD -TenantID <TenantID>
      New-AzADServicePrincipal  -ApplicationId <ApplicationID>
      
    • Azure CLI:

      az login --tenant <TenantID>
      az ad sp create --id <ApplicationID>
      
  2. Buka aplikasi Portal Azure> Microsoft Entra ID>Enterprise dan cari aplikasi yang dibuat.

  3. Buat Azure Key Vault jika Anda tidak memilikinya, dan buat kunci.

  4. Membuat atau mengatur kebijakan akses.

    1. Pilih izin Dapatkan, Bungkus Kunci, Buka Bungkus Kunci di bawah Izin kunci saat membuat kebijakan akses.
    2. Pilih aplikasi multi-penyewa yang dibuat pada langkah pertama dalam opsi Utama saat membuat kebijakan akses.

    Cuplikan layar menu kebijakan akses brankas kunci di portal Azure.

  5. Setelah kebijakan akses dan kunci dibuat, Ambil kunci dari Key Vault dan rekam Pengidentifikasi Kunci.

Membuat Azure SQL Database baru dengan kunci yang dikelola pelanggan tingkat database

Berikut ini adalah contoh untuk membuat database di Azure SQL Database dengan identitas terkelola yang ditetapkan pengguna, dan cara mengatur kunci terkelola pelanggan lintas penyewa di tingkat database. Identitas terkelola yang ditetapkan pengguna diperlukan untuk menyiapkan kunci yang dikelola pelanggan untuk enkripsi data transparan selama fase pembuatan database.

  1. Telusuri halaman opsi Pilih penyebaran SQL di portal Azure.

  2. Jika Anda belum masuk ke portal Azure, masuk jika diminta.

  3. Di bawah database SQL, biarkan Jenis sumber daya diatur ke Database tunggal dan pilih Buat.

  4. Pada tab Dasar dari formulir Buat SQL Database, di bawah Detail proyek, pilih Langganan Azure, Grup sumber daya, dan Server yang diinginkan untuk database Anda. Kemudian, gunakan nama unik untuk nama Database Anda. Jika Anda belum membuat server logis untuk Azure SQL Database, lihat Membuat server yang dikonfigurasi dengan TDE dengan kunci yang dikelola pelanggan (CMK) lintas penyewa untuk referensi.

  5. Saat Anda masuk ke tab Keamanan , pilih Konfigurasikan enkripsi data transparan.

    Cuplikan layar portal Azure dan menu Keamanan saat membuat Azure SQL Database.

  6. Pada menu Enkripsi data transparan, pilih Kunci terkelola pelanggan tingkat database (CMK).

    Cuplikan layar menu enkripsi data transparan portal Azure.

  7. Untuk Identitas Terkelola yang Ditetapkan Pengguna, pilih Konfigurasikan untuk mengaktifkan identitas Database dan Tambahkan identitas terkelola yang ditetapkan pengguna ke sumber daya jika identitas yang diinginkan tidak tercantum di menu Identitas. Lalu, pilih Terapkan.

    Cuplikan layar menu identitas portal Azure.

    Catatan

    Anda dapat mengonfigurasi identitas klien Federasi di sini jika Mengonfigurasi CMK lintas penyewa untuk TDE.

  8. Pada menu Enkripsi data transparan, pilih Ubah kunci. Pilih Langganan yang diinginkan, Brankas kunci, Kunci, dan Versi untuk kunci yang dikelola pelanggan yang akan digunakan untuk TDE. Pilih tombol Pilih. Setelah memilih kunci, Anda juga dapat menambahkan kunci database tambahan sesuai kebutuhan menggunakan URI brankas Kunci Azure (pengidentifikasi objek) di menu Enkripsi data transparan.

    Rotasi kunci otomatis juga dapat diaktifkan pada tingkat database dengan menggunakan kotak centang Putar kunci otomatis di menu Enkripsi data transparan.

    Cuplikan layar menu enkripsi data transparan di referensi portal Azure menambahkan kunci tambahan.

  9. Pilih Terapkan untuk terus membuat database.

  10. Pilih Tinjau + buat di bagian bawah halaman

  11. Pada halaman Tinjau + buat, setelah mengulas, pilih Buat.

Catatan

Pembuatan database akan gagal jika identitas terkelola yang ditetapkan pengguna tidak memiliki izin yang tepat yang diaktifkan pada brankas kunci. Identitas terkelola yang ditetapkan pengguna akan memerlukan izin Get, wrapKey, dan unwrapKey pada brankas kunci. Untuk informasi selengkapnya, lihat Identitas terkelola untuk enkripsi data transparan dengan kunci yang dikelola pelanggan.

Memperbarui Azure SQL Database yang sudah ada dengan kunci yang dikelola pelanggan tingkat database

Berikut ini adalah contoh memperbarui database yang sudah ada di Azure SQL Database dengan identitas terkelola yang ditetapkan pengguna, dan cara mengatur kunci yang dikelola pelanggan lintas penyewa di tingkat database. Identitas terkelola yang ditetapkan pengguna diperlukan untuk menyiapkan kunci yang dikelola pelanggan untuk enkripsi data transparan selama fase pembuatan database.

  1. Di portal Azure, navigasikan ke sumber daya database SQL yang ingin Anda perbarui dengan kunci yang dikelola pelanggan tingkat database.

  2. Di bawah Keamanan, pilih Identitas. Tambahkan Identitas terkelola yang ditetapkan Pengguna untuk database ini, lalu pilih Simpan

  3. Sekarang buka menu Enkripsi Data di bawah Keamanan untuk database Anda. Pilih Kunci terkelola pelanggan tingkat database (CMK). Identitas Database untuk database harus sudah Diaktifkan karena Anda telah mengonfigurasi identitas di langkah terakhir.

  4. Pilih Ubah kunci. Pilih Langganan yang diinginkan, Brankas kunci, Kunci, dan Versi untuk kunci yang dikelola pelanggan yang akan digunakan untuk TDE. Pilih tombol Pilih. Setelah memilih kunci, Anda juga dapat menambahkan kunci database tambahan sesuai kebutuhan menggunakan URI brankas Kunci Azure (pengidentifikasi objek) di menu Enkripsi Data.

    Pilih kotak centang Putar otomatis kunci jika Anda ingin mengaktifkan rotasi kunci otomatis pada tingkat database.

    Cuplikan layar menu enkripsi data transparan portal Azure saat memperbarui database yang sudah ada.

  5. Pilih Simpan.

Menampilkan pengaturan kunci yang dikelola pelanggan tingkat database di Azure SQL Database

Berikut ini adalah contoh pengambilan kunci yang dikelola pelanggan tingkat database untuk database. Sumber daya Microsoft.Sql/servers/databases ARM secara default hanya memperlihatkan pelindung TDE dan identitas terkelola yang dikonfigurasi pada database. Untuk memperluas daftar lengkap kunci, gunakan parameter , -ExpandKeyList. Selain itu, filter seperti -KeysFilter "current" dan nilai titik waktu (misalnya, 2023-01-01) dapat digunakan untuk mengambil kunci saat ini yang digunakan dan kunci yang digunakan di masa lalu pada titik waktu tertentu. Filter ini hanya didukung untuk kueri database individual dan bukan untuk kueri tingkat server.

Untuk melihat kunci yang dikelola pelanggan tingkat database di portal Azure, buka menu Enkripsi Data sumber daya database SQL.

Mencantumkan semua kunci di server logis

Untuk mengambil daftar semua kunci (dan bukan hanya pelindung utama) yang digunakan oleh setiap database di bawah server, itu harus dikueri secara individual dengan filter kunci. Berikut ini adalah contoh kueri PowerShell untuk mencantumkan setiap kunci di bawah server logis.

Gunakan cmdlet Get-AzSqlDatabase.

$dbs = Get-AzSqlDatabase -resourceGroupName <ResourceGroupName> -ServerName <ServerName>
foreach ($db in $dbs)
{
Get-AzSqlDatabase -DatabaseName $db.DatabaseName -ServerName $db.ServerName -ResourceGroupName $db.ResourceGroupName -ExpandKeyList
}

Memvalidasi ulang kunci yang dikelola pelanggan tingkat database pada Azure SQL Database

Dalam kasus pelindung TDE yang tidak dapat diakses seperti yang dijelaskan dalam Transparent Data Encryption (TDE) dengan CMK, setelah akses kunci diperbaiki, operasi kunci validasi ulang dapat digunakan untuk membuat database dapat diakses. Lihat instruksi atau perintah berikut untuk contohnya.

Dengan menggunakan portal Azure, temukan sumber daya database SQL Anda. Setelah Anda memilih sumber daya database SQL Anda, buka tab Enkripsi Data Transparan dari menu Enkripsi Data di bawah pengaturan Keamanan . Jika database kehilangan akses ke Azure Key Vault, tombol Validasi ulang kunci akan muncul, dan Anda akan memiliki opsi untuk memvalidasi ulang kunci yang ada dengan memilih Coba lagi kunci yang ada, atau kunci lain dengan memilih Pilih kunci cadangan.

Mengembalikan kunci yang dikelola pelanggan tingkat database pada Azure SQL Database

Database yang dikonfigurasi dengan CMK tingkat database dapat dikembalikan ke enkripsi tingkat server jika server dikonfigurasi dengan kunci yang dikelola layanan menggunakan perintah berikut.

Untuk mengembalikan pengaturan kunci yang dikelola pelanggan tingkat database ke kunci enkripsi tingkat server di portal Azure, buka tab Enkripsi Data Transparan dari menu Enkripsi Data dari sumber daya database SQL. Pilih Kunci enkripsi tingkat server dan pilih Simpan untuk menyimpan pengaturan.

Catatan

Untuk menggunakan pengaturan kunci enkripsi tingkat Server untuk database individual, server logis untuk Azure SQL Database harus dikonfigurasi untuk menggunakan Kunci yang dikelola layanan untuk TDE.

Langkah berikutnya

Periksa dokumentasi berikut tentang berbagai operasi CMK tingkat database: