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 multipenyewa, 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 yang lintas penyewa, kita harus memiliki aplikasi Microsoft Entra multipenyewa yang dikonfigurasi dengan identitas terkelola yang ditetapkan oleh pengguna dan ditetapkan sebagai kredensial identitas federasi untuk aplikasi tersebut. Ikuti salah satu panduan dalam Prasyarat.
Pada tenant pertama tempat Anda ingin membuat Azure SQL Database, buat dan konfigurasikan aplikasi Microsoft Entra multitenant.
Buat identitas terkelola yang ditetapkan pengguna.
Konfigurasikan identitas terkelola yang ditetapkan pengguna sebagai kredensial identitas federatif untuk aplikasi multipenyewa.
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.
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 multipenyewa. Ganti <TenantID>
dan <ApplicationID>
dengan ID Penyewa klien dari ID Microsoft Entra dan ID Aplikasi dari aplikasi multipenyewa, masing-masing:
>
Enterprise dan cari aplikasi yang dibuat.
Buat Azure Key Vault jika Anda tidak memilikinya, dan buat kunci.
Membuat atau mengatur kebijakan akses.
-
Pilih izin Dapatkan, Bungkus Kunci, Buka Bungkus Kunci di bawah Izin kunci saat membuat kebijakan akses.
- Pilih aplikasi multipenyewa yang dibuat pada langkah pertama di opsi Utama saat membuat kebijakan akses.
Setelah kebijakan akses dan kunci dibuat, Ambil kunci dari Azure 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.
Telusuri halaman opsi Pilih penyebaran SQL di portal Azure.
Jika Anda belum masuk ke portal Azure, masuk jika diminta.
Di bawah database SQL, biarkan Jenis sumber daya diatur ke Database tunggal dan pilih Buat.
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.
Saat Anda masuk ke tab Keamanan , pilih Konfigurasikan enkripsi data transparan.
Pada menu Enkripsi data transparan, pilih Kunci terkelola pelanggan tingkat database (CMK).
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.
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.
Pilih Terapkan untuk terus membuat database.
Pilih Tinjau + buat di bagian bawah halaman
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.
Untuk informasi tentang penginstalan rilis Azure CLI saat ini, lihat artikel Menginstal Azure CLI.
Buat database yang dikonfigurasi dengan identitas terkelola yang ditetapkan pengguna dan TDE yang dikelola pelanggan lintas penyewa menggunakan perintah az sql db create . Pengidentifikasi Kunci dari penyewa kedua dapat digunakan di encryption-protector
bidang . ID Aplikasi dari aplikasi multipenyewa dapat digunakan di kolom federated-client-id
. Parameter --encryption-protector-auto-rotation
dapat digunakan untuk mengaktifkan rotasi kunci otomatis pada tingkat database.
Untuk mendapatkan ID Sumber Daya identitas terkelola yang ditetapkan oleh pengguna, telusuri Identitas Terkelola di portal Microsoft Azure. Temukan identitas terkelola Anda, dan buka Properti. Contoh ID Sumber Daya UMI Anda terlihat seperti/subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>
az sql db create --resource-group $resourceGroupName --server $serverName --name mySampleDatabase --sample-name AdventureWorksLT --edition GeneralPurpose --compute-model Serverless --family Gen5 --capacity 2 --assign-identity --user-assigned-identity-id $identityid --encryption-protector $keyid --federated-client-id $federatedclientid --encryption-protector-auto-rotation True
Buat database yang dikonfigurasi dengan identitas terkelola yang ditetapkan pengguna dan TDE yang dikelola pelanggan lintas penyewa di tingkat database menggunakan PowerShell.
Untuk instruksi penginstalan modul Az PowerShell, lihat Menginstal Azure PowerShell.
Gunakan cmdlet New-AzSqlDatabase.
Ganti nilai berikut dalam contoh:
-
<ResourceGroupName>
: Nama grup sumber daya untuk server logis Azure SQL Anda
-
<DatabaseName>
: Gunakan nama database Azure SQL yang unik
-
<ServerName>
: Gunakan nama server logis Azure SQL yang unik
-
<UserAssignedIdentityId>
: Daftar identitas terkelola yang ditetapkan pengguna untuk ditetapkan ke server (bisa satu atau beberapa)
-
<CustomerManagedKeyId>
: Pengidentifikasi Kunci dari penyewa kedua Azure Key Vault
-
<FederatedClientId>
: ID Aplikasi dari aplikasi multipenyewa
-
-EncryptionProtectorAutoRotation
: Dapat digunakan untuk mengaktifkan rotasi kunci otomatis pada tingkat database
Untuk mendapatkan ID Sumber Daya identitas terkelola yang ditetapkan oleh pengguna, telusuri Identitas Terkelola di portal Microsoft Azure. Temukan identitas terkelola Anda, dan buka Properti. Contoh ID Sumber Daya UMI Anda terlihat seperti/subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>
# create a server with user-assigned managed identity and cross-tenant customer-managed TDE with automatic key rotation enabled
$params = @{
ResourceGroupName = '<ResourceGroupName>'
ServerName = '<ServerName>'
DatabaseName = '<DatabaseName>'
AssignIdentity = $true
UserAssignedIdentityId = '<UserAssignedIdentityId>'
EncryptionProtector = '<CustomerManagedKeyId>'
FederatedClientId = '<FederatedClientId>'
EncryptionProtectorAutoRotation = $true
}
New-AzSqlDatabase @params
Berikut adalah contoh templat ARM yang membuat Azure SQL Database dengan identitas terkelola yang ditetapkan pengguna dan TDE yang dikelola pelanggan di tingkat database. Untuk CMK lintas tenant, gunakan Pengidentifikasi Kunci dari Azure Key Vault di tenant kedua, dan ID Aplikasi dari aplikasi multitenant.
Untuk informasi selengkapnya dan template ARM, lihat Template Azure Resource Manager untuk Azure SQL Database & SQL Managed Instance.
Gunakan Penyebaran khusus di portal Microsoft Azure, dan Buat template Anda sendiri di editor. Selanjutnya, Simpan konfigurasi setelah Anda menempelkan pada contoh.
Untuk mendapatkan ID Sumber Daya identitas terkelola yang ditetapkan oleh pengguna, telusuri Identitas Terkelola di portal Microsoft Azure. Temukan identitas terkelola Anda, dan buka Properti. Contoh ID Sumber Daya UMI Anda terlihat seperti /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>
.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"server_name": {
"type": "String"
},
"database_name": {
"type": "String"
},
"user_assigned_identity": {
"type": "String"
},
"encryption_protector": {
"type": "String"
},
"federated_client_id": {
"type": "String"
},
"location": {
"type": "String"
},
"encryption_protector_auto_rotation": {
"type": "bool"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.Sql/servers/databases",
"apiVersion": "2023-02-01-preview",
"name": "[concat(parameters('server_name'), concat('/',parameters('database_name')))]",
"location": "[parameters('location')]",
"sku": {
"name": "Basic",
"tier": "Basic",
"capacity": 5
},
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"[parameters('user_assigned_identity')]": {}
}
},
"properties": {
"collation": "SQL_Latin1_General_CP1_CI_AS",
"maxSizeBytes": 104857600,
"catalogCollation": "SQL_Latin1_General_CP1_CI_AS",
"zoneRedundant": false,
"readScale": "Disabled",
"requestedBackupStorageRedundancy": "Geo",
"maintenanceConfigurationId": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_Default",
"isLedgerOn": false,
"encryptionProtector": "[parameters('encryption_protector')]",
"federatedClientId": "[parameters('federated_client_id')]",
"encryptionProtectorAutoRotation": "[parameters('encryption_protector_auto_rotation')]"
}
}
]
}
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.
Di portal Azure, navigasikan ke sumber daya database SQL yang ingin Anda perbarui dengan kunci yang dikelola pelanggan tingkat database.
Di bawah Keamanan, pilih Identitas. Tambahkan Identitas terkelola yang ditetapkan Pengguna untuk database ini, lalu pilih Simpan
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.
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.
Pilih Simpan.
Untuk informasi tentang penginstalan rilis Azure CLI saat ini, lihat artikel Menginstal Azure CLI.
Perbarui database yang dikonfigurasi dengan identitas terkelola yang ditetapkan pengguna dan TDE yang dikelola pelanggan lintas penyewa menggunakan perintah az sql db create . Pengidentifikasi Kunci dari penyewa kedua dapat digunakan di encryption-protector
bidang . ID Aplikasi dari aplikasi multipenyewa dapat digunakan di kolom federated-client-id
.
Untuk mendapatkan ID Sumber Daya identitas terkelola yang ditetapkan oleh pengguna, telusuri Identitas Terkelola di portal Microsoft Azure. Temukan identitas terkelola Anda, dan buka Properti. Contoh ID Sumber Daya UMI Anda terlihat seperti /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>
. Parameter --encryption-protector-auto-rotation
dapat digunakan untuk mengaktifkan rotasi kunci otomatis pada tingkat database.
az sql db update --resource-group $resourceGroupName --server $serverName --name mySampleDatabase --sample-name AdventureWorksLT --edition GeneralPurpose --compute-model Serverless --family Gen5 --capacity 2 --assign-identity --user-assigned-identity-id $identityid --encryption-protector $keyid --federated-client-id $federatedclientid --keys $keys --keys-to-remove $keysToRemove --encryption-protector-auto-rotation True
Daftar $keys
adalah daftar kunci yang dipisahkan spasi yang akan ditambahkan pada database dan $keysToRemove
merupakan daftar kunci yang dipisahkan spasi yang harus dihapus dari database
$keys = '"https://yourvault.vault.azure.net/keys/yourkey1/6638b3667e384aefa31364f94d230000" "https://yourvault.vault.azure.net/keys/yourkey2/ fd021f84a0d94d43b8ef33154bca0000"'
$keysToRemove = '"https://yourvault.vault.azure.net/keys/yourkey3/6638b3667e384aefa31364f94d230000" "https://yourvault.vault.azure.net/keys/yourkey4/fd021f84a0d94d43b8ef33154bca0000"'
Perbarui database yang dikonfigurasi dengan identitas terkelola yang ditetapkan pengguna dan TDE yang dikelola pelanggan lintas penyewa di tingkat database menggunakan PowerShell.
Untuk instruksi penginstalan modul Az PowerShell, lihat Menginstal Azure PowerShell.
Gunakan cmdlet Set-AzSqlDatabase.
Ganti nilai berikut dalam contoh:
-
<ResourceGroupName>
: Nama grup sumber daya untuk server logis Azure SQL Anda
-
<DatabaseName>
: Gunakan nama database Azure SQL yang unik
-
<ServerName>
: Gunakan nama server logis Azure SQL yang unik
-
<UserAssignedIdentityId>
: Daftar identitas terkelola yang ditetapkan pengguna untuk ditetapkan ke server (bisa satu atau beberapa)
-
<CustomerManagedKeyId>
: Pengidentifikasi Kunci dari penyewa kedua Azure Key Vault
-
<FederatedClientId>
: ID Aplikasi dari aplikasi multipenyewa
-
<ListOfKeys>
: Daftar kunci yang dikelola pelanggan tingkat database yang dipisahkan koma untuk ditambahkan ke database
-
<ListOfKeysToRemove>
: Daftar kunci yang dikelola pelanggan tingkat database yang dipisahkan koma yang akan dihapus dari database
-
-EncryptionProtectorAutoRotation
: Dapat digunakan untuk mengaktifkan rotasi kunci otomatis pada tingkat database
Untuk mendapatkan ID Sumber Daya identitas terkelola yang ditetapkan oleh pengguna, telusuri Identitas Terkelola di portal Microsoft Azure. Temukan identitas terkelola Anda, dan buka Properti. Contoh ID Sumber Daya UMI Anda terlihat seperti /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>
.
$params = @{
ResourceGroupName = "<ResourceGroupName>"
ServerName = "<ServerName>"
DatabaseName = "<DatabaseName>"
AssignIdentity = $true
UserAssignedIdentityId = "<UserAssignedIdentityId>"
EncryptionProtector = "<CustomerManagedKeyId>"
FederatedClientId = "<FederatedClientId>"
KeyList = "<ListOfKeys>"
KeysToRemove = "<ListOfKeysToRemove>"
EncryptionProtectorAutoRotation = $true
}
Set-AzSqlDatabase @params
Contoh -KeyList dan -KeysToRemove adalah:
$keysToAdd = "https://yourvault.vault.azure.net/keys/yourkey1/fd021f84a0d94d43b8ef33154bca0000","https://yourvault.vault.azure.net/keys/yourkey2/fd021f84a0d94d43b8ef33154bca0000"
$keysToRemove = "https://yourvault.vault.azure.net/keys/yourkey3/fd021f84a0d94d43b8ef33154bca0000"
Berikut adalah contoh templat ARM yang memperbarui Azure SQL Database dengan identitas terkelola yang ditetapkan pengguna dan TDE yang dikelola pelanggan di tingkat database. Untuk CMK lintas tenant, gunakan Pengidentifikasi Kunci dari Azure Key Vault di tenant kedua, dan ID Aplikasi dari aplikasi multitenant.
Untuk informasi selengkapnya dan template ARM, lihat Template Azure Resource Manager untuk Azure SQL Database & SQL Managed Instance.
Gunakan Penyebaran khusus di portal Microsoft Azure, dan Buat template Anda sendiri di editor. Selanjutnya, Simpan konfigurasi setelah Anda menempelkan pada contoh.
Untuk mendapatkan ID Sumber Daya identitas terkelola yang ditetapkan oleh pengguna, telusuri Identitas Terkelola di portal Microsoft Azure. Temukan identitas terkelola Anda, dan buka Properti. Contoh ID Sumber Daya UMI Anda terlihat seperti /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>
.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"server_name": {
"type": "String"
},
"database_name": {
"type": "String"
},
"user_assigned_identity": {
"type": "String"
},
"encryption_protector": {
"type": "String"
},
"location": {
"type": "String"
},
"federated_client_id": {
"type": "String"
},
"keys_to_add": {
"type": "Object"
},
"encryption_protector_auto_rotation": {
"type": "bool"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.Sql/servers/databases",
"apiVersion": "2023-02-01-preview",
"name": "[concat(parameters('server_name'), concat('/',parameters('database_name')))]",
"location": "[parameters('location')]",
"sku": {
"name": "Basic",
"tier": "Basic",
"capacity": 5
},
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"[parameters('user_assigned_identity')]": {}
}
},
"properties": {
"collation": "SQL_Latin1_General_CP1_CI_AS",
"maxSizeBytes": 104857600,
"catalogCollation": "SQL_Latin1_General_CP1_CI_AS",
"zoneRedundant": false,
"readScale": "Disabled",
"requestedBackupStorageRedundancy": "Geo",
"maintenanceConfigurationId": "/subscriptions/e1775f9f-a286-474d-b6f0-29c42ac74554/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_Default",
"isLedgerOn": false,
"encryptionProtector": "[parameters('encryption_protector')]",
"keys": "[parameters('keys_to_add')]",
"federatedClientId": "[parameters('federated_client_id')]",
"encryptionProtectorAutoRotation": "[parameters('encryption_protector_auto_rotation')]"
}
}
]
}
Contoh encryption_protector
parameter dan keys_to_add
adalah:
"keys_to_add": {
"value": {
"https://yourvault.vault.azure.net/keys/yourkey1/fd021f84a0d94d43b8ef33154bca0000": {},
"https://yourvault.vault.azure.net/keys/yourkey2/fd021f84a0d94d43b8ef33154bca0000": {}
}
},
"encryption_protector": {
"value": "https://yourvault.vault.azure.net/keys/yourkey2/fd021f84a0d94d43b8ef33154bca0000"
}
Penting
Untuk menghapus kunci dari database, nilai kamus kunci kunci tertentu harus diteruskan sebagai null. Contohnya,"https://yourvault.vault.azure.net/keys/yourkey1/fd021f84a0d94d43b8ef33154bca0000": null
.
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.
Untuk informasi tentang penginstalan rilis Azure CLI saat ini, lihat artikel Menginstal Azure CLI.
# Retrieve the basic database level customer-managed key settings from a database
az sql db show --resource-group $resourceGroupName --server $serverName --name mySampleDatabase
# Retrieve the basic database level customer-managed key settings from a database and all the keys ever added
az sql db show --resource-group $resourceGroupName --server $serverName --name mySampleDatabase --expand-keys
# Retrieve the basic database level customer-managed key settings from a database and the current keys in use
az sql db show --resource-group $resourceGroupName --server $serverName --name mySampleDatabase --expand-keys --keys-filter current
# Retrieve the basic database level customer-managed key settings from a database and the keys in use at a particular point in time
az sql db show --resource-group $resourceGroupName --server $serverName --name mySampleDatabase --expand-keys --keys-filter 01-01-2015
# Retrieve all the databases in a server to check which ones are configured with database level customer-managed keys
az sql db list --resource-group $resourceGroupName --server $serverName
Untuk instruksi penginstalan modul Az PowerShell, lihat Menginstal Azure PowerShell.
Gunakan cmdlet Get-AzSqlDatabase.
# Retrieve the basic database level customer-managed key settings from a database
Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName>
# Retrieve the basic database level customer-managed key settings from a database and all the keys ever added
Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName> -ExpandKeyList
# Retrieve the basic database level customer-managed key settings from a database and the current keys in use
Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName> -ExpandKeyList -KeysFilter "current"
# Retrieve the basic database level customer-managed key settings from a database and the keys in use at a particular point in time
Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName> -ExpandKeyList -KeysFilter '2023-02-03 00:00:00'
# Retrieve all the databases in a server to check which ones are configured with database level customer-managed keys
Get-AzSqlDatabase -resourceGroupName <ResourceGroupName> -ServerName <ServerName> | Select DatabaseName, EncryptionProtector
Gunakan REST API pratinjau 2022-08-01 untuk Azure SQL Database.
Ambil pengaturan kunci yang dikelola pelanggan tingkat database dasar dari database.
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}?api-version=2022-08-01-preview
Mengambil pengaturan kunci dasar yang dikelola pelanggan tingkat database dari database dan semua kunci yang pernah ditambahkan
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}?api-version=2022-08-01-preview&$expand=keys
Mengambil pengaturan kunci dasar tingkat database yang dikelola pelanggan dari database dan kunci saat ini yang digunakan
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'))
Mengambil pengaturan kunci dasar yang dikelola pelanggan tingkat database dari database dan kunci yang digunakan pada titik waktu tertentu
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('2023-02-04T01:57:42.49Z'))
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.
Untuk informasi tentang penginstalan rilis Azure CLI saat ini, lihat artikel Menginstal Azure CLI.
az sql db tde key revalidate --resource-group $resourceGroupName --server $serverName --database mySampleDatabase
Gunakan REST API pratinjau 2022-08-01 untuk Azure SQL Database.
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/encryptionProtector/current/revalidate?api-version=2022-08-01-preview
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.
Untuk informasi tentang penginstalan rilis Azure CLI saat ini, lihat artikel Menginstal Azure CLI.
az sql db tde key revert --resource-group $resourceGroupName --server $serverName --name mySampleDatabase
Gunakan REST API pratinjau 2022-08-01 untuk Azure SQL Database.
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/encryptionProtector/current/revert?api-version=2022-08-01-preview
Langkah berikutnya
Periksa dokumentasi berikut tentang berbagai operasi CMK tingkat database: