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)).
Dalam panduan ini, kita melalui langkah-langkah untuk mengonfigurasi replikasi geografis dan pemulihan cadangan pada Azure SQL Database. Azure SQL Database dikonfigurasi 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. Baik Azure Key Vault maupun server logis untuk Azure SQL berada dalam penyewa Microsoft Entra yang sama untuk panduan ini, tetapi dapat berada di penyewa yang berbeda.
Catatan
ID Microsoft Entra sebelumnya dikenal sebagai Azure Active Directory (Azure AD).
Panduan yang sama dapat diterapkan untuk mengonfigurasi kunci yang dikelola pelanggan tingkat database di penyewa yang berbeda dengan menyertakan parameter ID klien federasi. Untuk informasi selengkapnya, lihat Identitas dan manajemen kunci untuk TDE dengan kunci yang dikelola pelanggan tingkat database.
Penting
Setelah database dibuat atau dipulihkan, menu Enkripsi Data Transparan di portal Azure akan menampilkan database baru dengan pengaturan yang sama dengan database sumber, tetapi mungkin memiliki kunci yang hilang. Dalam semua kasus di mana database baru dibuat dari database sumber, jumlah kunci yang ditampilkan untuk database target dalam daftar portal Azure Kunci Database Tambahan bisa kurang dari jumlah kunci yang ditampilkan untuk database sumber. Ini karena jumlah kunci yang ditampilkan tergantung pada persyaratan fitur individual yang digunakan untuk membuat database target. Untuk mencantumkan semua kunci yang tersedia untuk database yang baru dibuat, gunakan API yang tersedia di Menampilkan pengaturan kunci yang dikelola pelanggan tingkat database di Azure SQL Database.
Membuat Azure SQL Database dengan kunci yang dikelola pelanggan tingkat database sebagai sekunder atau salinan
Gunakan instruksi atau perintah berikut untuk membuat replika sekunder atau menyalin target Azure SQL Database yang dikonfigurasi dengan kunci yang dikelola pelanggan tingkat database. Identitas terkelola yang ditetapkan pengguna diperlukan untuk menyiapkan kunci yang dikelola pelanggan untuk enkripsi data transparan selama fase pembuatan database.
Membuat salinan database yang memiliki kunci yang dikelola pelanggan tingkat database
Untuk membuat database di Azure SQL Database sebagai salinan dengan kunci yang dikelola pelanggan tingkat database, ikuti langkah-langkah berikut:
Buka portal Azure dan navigasikan ke Azure SQL Database yang dikonfigurasi dengan kunci yang dikelola pelanggan tingkat database. Akses tab Enkripsi Data Transparan dari menu Enkripsi Data dan periksa daftar kunci saat ini yang digunakan oleh database.
Buat salinan database dengan memilih Salin dari menu Gambaran Umum database.
Menu Buat Database SQL - Salin database muncul. Gunakan server lain untuk database ini, tetapi pengaturan yang sama dengan database yang coba Anda salin. Di bagian Manajemen Kunci Enkripsi Data Transparan, pilih Konfigurasikan enkripsi data transparan.
Saat menu Enkripsi Data Transparan muncul, tinjau pengaturan CMK untuk database salinan ini. Pengaturan dan kunci harus diisi dengan identitas dan kunci yang sama yang digunakan dalam database sumber.
Pilih Terapkan untuk melanjutkan lalu pilih Tinjau + buat, dan Buat untuk membuat database salinan.
Membuat replika sekunder yang memiliki kunci yang dikelola pelanggan tingkat database
Buka portal Azure dan navigasikan ke Azure SQL Database yang dikonfigurasi dengan kunci yang dikelola pelanggan tingkat database. Akses menu Enkripsi Data Transparan dan periksa daftar kunci saat ini yang digunakan oleh database.
Di bawah Pengaturan manajemen data untuk database, pilih Replika. Pilih Buat replika untuk membuat replika sekunder database.
Menu Buat SQL Database - Geo Replika muncul. Gunakan server sekunder untuk database ini, tetapi pengaturan yang sama dengan database yang anda coba replikasi. Di bagian Manajemen Kunci Enkripsi Data Transparan, pilih Konfigurasikan enkripsi data transparan.
Saat menu Enkripsi Data Transparan muncul, tinjau pengaturan CMK untuk replika database ini. Pengaturan dan kunci harus diisi dengan identitas dan kunci yang sama yang digunakan dalam database utama.
Pilih Terapkan untuk melanjutkan lalu pilih Tinjau + buat, dan Buat untuk membuat database salinan.
Untuk informasi tentang penginstalan rilis Azure CLI saat ini, lihat artikel Menginstal Azure CLI.
Siapkan daftar kunci saat ini yang digunakan oleh database utama menggunakan expand-keys parameter dengan current sebagai keys-filter.
az sql db show --name $databaseName --resource-group $resourceGroup --server $serverName --expand-keys --keys-filter current
Pilih identitas terkelola yang ditetapkan pengguna (dan ID klien gabungan jika mengonfigurasi akses lintas penyewa).
Buat database baru sebagai sekunder dan berikan daftar kunci yang telah diisi sebelumnya yang diperoleh dari database sumber dan identitas di atas (dan ID klien gabungan jika mengonfigurasi akses lintas penyewa).
# Create a secondary replica with Active Geo Replication with the same name as the primary database
az sql db replica create -g $resourceGroup -s $serverName -n $databaseName --partner-server $secondaryServer --partner-database $secondaryDatabase --partner-resource-group $secondaryResourceGroup -i --encryption-protector $encryptionProtector --user-assigned-identity-id $umi --keys $keys
Penting
$keys adalah daftar kunci yang dipisahkan spasi yang diambil dari database sumber.
Untuk membuat salinan database, salinan az sql db dapat digunakan dengan parameter yang sama.
# Create a copy of a database configured with database level customer-managed keys
az sql db copy -g $resourceGroup -s $serverName -n $databaseName --dest-name $secondaryDatabase -i --encryption-protector $encryptionProtector --user-assigned-identity-id $umi --keys $keys
Siapkan daftar kunci saat ini yang digunakan oleh database utama menggunakan perintah Get-AzSqlDatabase dan -ExpandKeyList parameter dan -KeysFilter "current" . Kecualikan -KeysFilter jika Anda ingin mengambil semua kunci.
Berikut adalah contoh templat ARM yang membuat replika sekunder dan salinan Azure SQL Database yang dikonfigurasi dengan identitas terkelola yang ditetapkan pengguna dan TDE yang dikelola pelanggan di tingkat database.
Siapkan daftar kunci saat ini yang digunakan oleh database utama menggunakan permintaan REST API berikut:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}?api-version=2022-08-01-preview&$expand=keys($filter=pointInTime('current'))
Pilih identitas terkelola yang ditetapkan pengguna (dan ID klien gabungan jika mengonfigurasi akses lintas penyewa).
Buat database baru sebagai sekunder dan berikan daftar kunci yang telah diisi sebelumnya yang diperoleh dari database sumber dan identitas di atas (dan ID klien federasi jika mengonfigurasi akses lintas penyewa) dalam templat ARM sebagai keys_to_add parameter.
Memulihkan Azure SQL Database dengan kunci yang dikelola pelanggan tingkat database
Bagian ini memandikan Anda melalui langkah-langkah untuk memulihkan Azure SQL Database yang dikonfigurasi dengan kunci yang dikelola pelanggan tingkat database. Identitas terkelola yang ditetapkan pengguna diperlukan untuk menyiapkan kunci yang dikelola pelanggan untuk enkripsi data transparan selama fase pembuatan database.
Pemulihan Titik Waktu Tertentu
Bagian berikut menjelaskan cara memulihkan database yang dikonfigurasi dengan kunci yang dikelola pelanggan di tingkat database ke titik waktu tertentu. Untuk mempelajari selengkapnya tentang pemulihan backup untuk SQL Database, lihat Memulihkan database di Database SQL.
Buka portal Azure dan navigasikan ke Azure SQL Database yang dikonfigurasi dengan kunci yang dikelola pelanggan tingkat database yang ingin Anda pulihkan.
Untuk memulihkan database ke titik waktu tertentu, pilih Pulihkan dari menu Gambaran Umum database.
Menu Buat Database SQL - Pulihkan database muncul. Isi detail sumber dan database yang diperlukan. Di bagian Manajemen Kunci Enkripsi Data Transparan, pilih Konfigurasikan enkripsi data transparan.
Saat menu Enkripsi Data Transparan muncul, tinjau pengaturan CMK untuk database. Pengaturan dan kunci harus diisi dengan identitas dan kunci yang sama yang digunakan dalam database yang coba Anda pulihkan.
Pilih Terapkan untuk melanjutkan lalu pilih Tinjau + buat, dan Buat untuk membuat database salinan.
Untuk informasi tentang penginstalan rilis Azure CLI saat ini, lihat artikel Menginstal Azure CLI.
Siapkan daftar kunci yang digunakan oleh database utama menggunakan expand-keys parameter dengan titik pemulihan Anda tepat waktu sebagai keys-filter.
az sql db show --name $databaseName --resource-group $resourceGroup --server $serverName --expand-keys --keys-filter $timestamp
Pilih identitas terkelola yang ditetapkan pengguna (dan ID klien gabungan jika mengonfigurasi akses lintas penyewa).
Buat database baru sebagai target pemulihan dan berikan daftar kunci yang telah diisi sebelumnya yang diperoleh dari database sumber dan identitas di atas (dan ID klien gabungan jika mengonfigurasi akses lintas penyewa).
# Create a restored database
az sql db restore --dest-name $destName --name $databaseName --resource-group $resourceGroup --server $serverName --subscription $subscriptionId --time $timestamp -i --encryption-protector $encryptionProtector --user-assigned-identity-id $umi --keys $keys
Penting
$keys adalah daftar kunci yang dipisahkan spasi yang diambil dari database sumber.
Siapkan daftar kunci yang digunakan oleh database utama menggunakan perintah Get-AzSqlDatabase dan -ExpandKeyList parameter dan -KeysFilter "2023-01-01" (2023-01-01 adalah contoh titik waktu yang ingin Anda pulihkan databasenya). Kecualikan -KeysFilter jika Anda ingin mengambil semua kunci.
Pilih identitas terkelola yang ditetapkan pengguna (dan ID klien gabungan jika mengonfigurasi akses lintas penyewa).
Gunakan perintah Restore-AzSqlDatabase dengan parameter dan berikan daftar kunci yang telah diisi sebelumnya yang diperoleh dari langkah-langkah di atas dan identitas di atas (dan ID klien federasi jika mengonfigurasi akses lintas penyewa) dalam panggilan API menggunakan -KeyListparameter , , -UserAssignedIdentityId-AssignIdentity, -EncryptionProtector (dan jika perlu, -FederatedClientId).-FromPointInTimeBackup
Bagian berikut menjelaskan cara memulihkan database yang dihapus yang dikonfigurasi dengan kunci yang dikelola pelanggan di tingkat database. Untuk mempelajari selengkapnya tentang pemulihan backup untuk SQL Database, lihat Memulihkan database di Database SQL.
Buka portal Azure dan navigasikan ke server logis untuk database yang dihapus yang ingin Anda pulihkan. Di bawah Manajemen data, pilih Database yang dihapus.
Pilih database yang dihapus yang ingin Anda pulihkan.
Menu Buat Database SQL - Pulihkan database muncul. Isi detail sumber dan database yang diperlukan. Di bagian Manajemen Kunci Enkripsi Data Transparan, pilih Konfigurasikan enkripsi data transparan.
Saat menu Enkripsi Data Transparan muncul, konfigurasikan bagian Identitas Terkelola yang Ditetapkan Pengguna, Kunci yang Dikelola Pelanggan, dan Kunci Database Tambahan untuk database Anda.
Pilih Terapkan untuk melanjutkan lalu pilih Tinjau + buat, dan Buat untuk membuat database salinan.
Untuk informasi tentang penginstalan rilis Azure CLI saat ini, lihat artikel Menginstal Azure CLI.
Siapkan daftar kunci yang digunakan oleh database yang dihilangkan expand-keys menggunakan parameter . Disarankan untuk meneruskan semua kunci yang digunakan database sumber. Anda juga dapat mencoba pemulihan dengan kunci yang disediakan pada waktu penghapusan dengan menggunakan keys-filter parameter .
az sql db show-deleted --name $databaseName --resource-group $resourceGroup --server $serverName --restorable-dropped-database-id "databaseName,133201549661600000" --expand-keys
Penting
restorable-dropped-database-id dapat diambil dengan mencantumkan semua database yang dihilangkan yang dapat dihilangkan di server dan berformat databaseName,deletedTimestamp.
Pilih identitas terkelola yang ditetapkan pengguna (dan ID klien gabungan jika mengonfigurasi akses lintas penyewa).
Buat database baru sebagai target pemulihan dan berikan daftar kunci yang telah diisi sebelumnya yang diperoleh dari database sumber yang dihapus dan identitas di atas (dan ID klien federasi jika mengonfigurasi akses lintas penyewa).
# Create a restored database
az sql db restore --dest-name $destName --name $databaseName --resource-group $resourceGroup --server $serverName --subscription $subscriptionId --time $timestamp -i --encryption-protector $encryptionProtector --user-assigned-identity-id $umi --keys $keys --deleted-time "2023-02-06T11:02:46.160000+00:00"
Penting
$keys adalah daftar kunci yang dipisahkan spasi yang diambil dari database sumber.
Siapkan daftar kunci yang digunakan oleh database utama menggunakan perintah Get-AzSqlDeletedDatabaseBackup dan -ExpandKeyList parameter . Disarankan untuk meneruskan semua kunci yang digunakan database sumber. Anda juga dapat mencoba pemulihan dengan kunci yang disediakan pada waktu penghapusan dengan menggunakan -KeysFilter parameter .
DatabaseId dapat diambil dengan mencantumkan semua database yang dihilangkan yang dapat dihilangkan di server dan berformat databaseName,deletedTimestamp.
Pilih identitas terkelola yang ditetapkan pengguna (dan ID klien gabungan jika mengonfigurasi akses lintas penyewa).
Gunakan perintah Restore-AzSqlDatabase dengan parameter dan berikan daftar kunci yang telah diisi sebelumnya yang diperoleh dari langkah-langkah di atas dan identitas di atas (dan ID klien federasi jika mengonfigurasi akses lintas penyewa) dalam panggilan API menggunakan -KeyListparameter , , -UserAssignedIdentityId-AssignIdentity, -EncryptionProtector (dan jika perlu, -FederatedClientId).-FromDeletedDatabaseBackup
Bagian berikut menjelaskan cara memulihkan cadangan database yang direplikasi secara geografis yang dikonfigurasi dengan kunci yang dikelola pelanggan di tingkat database. Untuk mempelajari selengkapnya tentang pemulihan backup untuk SQL Database, lihat Memulihkan database di Database SQL.
Buka portal Azure dan navigasi ke server logis tempat Anda ingin memulihkan database.
Di menu Gambaran Umum, pilih Buat database.
Menu Buat SQL Database muncul. Isi tab Dasar dan Jaringan untuk database baru Anda. Di Pengaturan tambahan, pilih Cadangan untuk bagian Gunakan data yang ada, dan pilih cadangan yang direplikasi secara geografis.
Buka tab Keamanan . Di bagian Manajemen Kunci Enkripsi Data Transparan, pilih Konfigurasikan enkripsi data transparan.
Saat menu Enkripsi Data Transparan muncul, pilih Kunci yang Dikelola Pelanggan (CMK) tingkat database. Identitas Terkelola yang Ditetapkan Pengguna, Kunci yang Dikelola Pelanggan, dan Kunci Database Tambahan harus cocok dengan database sumber yang ingin Anda pulihkan. Pastikan identitas terkelola yang ditetapkan pengguna memiliki akses ke brankas kunci yang berisi kunci yang dikelola pelanggan yang digunakan dalam cadangan.
Pilih Terapkan untuk melanjutkan lalu pilih Tinjau + buat, dan Buat untuk membuat database cadangan.
Untuk informasi tentang penginstalan rilis Azure CLI saat ini, lihat artikel Menginstal Azure CLI.
Siapkan daftar kunci yang digunakan oleh cadangan geografis database yang dikonfigurasi dengan kunci yang dikelola pelanggan di tingkat database menggunakan expand-keys parameter .
az sql db geo-backup --database-name $databaseName --g $resourceGroup --server $serverName --expand-keys
Pilih identitas terkelola yang ditetapkan pengguna (dan ID klien gabungan jika mengonfigurasi akses lintas penyewa).
Buat database baru sebagai target pemulihan geografis dan berikan daftar kunci yang telah diisi sebelumnya yang diperoleh dari database sumber yang dihapus dan identitas di atas (dan ID klien gabungan jika mengonfigurasi akses lintas penyewa).
# Create a geo restored database
az sql db geo-backup restore --geo-backup-id "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/recoverableDatabases/{databaseName}" --dest-database $destName --resource-group $resourceGroup --dest-server $destServerName -i --encryption-protector $encryptionProtector --user-assigned-identity-id $umi --keys $keys
Penting
$keys adalah daftar kunci yang dipisahkan spasi yang diambil dari database sumber.
Siapkan daftar kunci yang digunakan oleh database utama menggunakan perintah Get-AzSqlDatabaseGeoBackup dan -ExpandKeyList untuk mengambil semua kunci.
DatabaseId dapat diambil dengan mencantumkan semua database yang dihilangkan yang dapat dihilangkan di server dan berformat databaseName,deletedTimestamp.
Pilih identitas terkelola yang ditetapkan pengguna (dan ID klien gabungan jika mengonfigurasi akses lintas penyewa).
Gunakan perintah Restore-AzSqlDatabase dengan parameter dan berikan daftar kunci yang telah diisi sebelumnya yang diperoleh dari langkah-langkah di atas dan identitas di atas (dan ID klien federasi jika mengonfigurasi akses lintas penyewa) dalam panggilan API menggunakan -KeyListparameter , , -UserAssignedIdentityId-AssignIdentity, -EncryptionProtector (dan jika perlu, -FederatedClientId).-FromGeoBackup
Cadangan retensi jangka panjang (LTR) tidak menyediakan daftar kunci yang digunakan oleh cadangan. Untuk memulihkan cadangan LTR, semua kunci yang digunakan oleh database sumber harus diteruskan ke target pemulihan LTR.
Opsi rotasi kunci otomatis untuk database yang disalin atau dipulihkan
Database yang baru disalin atau dipulihkan dapat dikonfigurasi untuk secara otomatis memutar kunci yang dikelola pelanggan yang digunakan untuk enkripsi data transparan. Untuk informasi tentang cara mengaktifkan rotasi kunci otomatis di portal Azure atau menggunakan API, lihat Rotasi kunci otomatis di tingkat database.
Langkah berikutnya
Periksa dokumentasi berikut tentang berbagai operasi CMK tingkat database: