Hapus pelindung Enkripsi Data Transparan (TDE) menggunakan PowerShell

Berlaku untuk:Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics (hanya kumpulan SQL khusus)

Artikel ini menjelaskan cara menanggapi perlindungan TDE yang berpotensi disusupi untuk Azure SQL Database atau Azure Synapse Analytics yang menggunakan TDE dengan kunci yang dikelola pelanggan di dukungan Azure Key Vault - Bring Your Own Key (BYOK). Untuk mempelajari lebih lanjut tentang dukungan BYOK untuk TDE, lihat halaman ikhtisar.

Perhatian

Prosedur yang digarisbawahi dalam artikel ini hanya boleh dilakukan di kasus ekstrem atau dalam lingkungan tes. Tinjau ulang langkah dengan hati-hati, karena menghapus pelindung TDE yang digunakan secara aktif dari Azure Key Vault akan mengakibatkan database menjadi tidak tersedia.

Jika kunci dicurigai dikompromikan, seperti layanan atau pengguna memiliki akses ke kunci yang tidak diotorisasi, hal terbaik untuk dilakukan adalah menghapus kunci.

Ingatlah bahwa setelah pelindung TDE dihapus di Key Vault, dalam waktu hingga 10 menit, semua basis data terenkripsi akan mulai menolak semua koneksi dengan pesan galat yang sesuai dan mengubah statusnya menjadi Tidak Dapat Diakses.

Panduan cara ini membahas pendekatan untuk merender database tidak dapat diakses setelah respons insiden yang disusupi.

Catatan

Artikel ini berlaku untuk Azure SQL Database, Azure SQL Managed Instance, dan Azure Synapse Analytics (kumpulan SQL khusus (sebelumnya SQL DW)). Untuk dokumentasi tentang Enkripsi Data Transparan untuk kumpulan SQL khusus di dalam ruang kerja Synapse, lihat enkripsi Azure Synapse Analytics.

Prasyarat

  • Anda harus memiliki langganan Azure dan menjadi admin pada langganan tersebut.
  • Anda harus memiliki Azure PowerShell yang diinstal dan bekerja.
  • Panduan cara kerja ini mengasumsikan bahwa Anda sudah menggunakan kunci dari Azure Key Vault sebagai pelindung TDE untuk Azure SQL Database atau Azure Synapse. Lihat Enkripsi Data Transparan dengan Dukungan BYOK untuk belajar lebih banyak.

Untuk instruksi instalasi modul Az, lihat Instal Azure PowerShell. Untuk cmdlet khusus, lihat AzureRM.Sql. Gunakan modul Azure PowerShell Az baru.

Periksa sidik jari Pelindung TDE

Langkah-langkah berikut menjelaskan cara memeriksa sidik jari Pelindung TDE yang masih digunakan oleh Virtual Log Files (VLF) dari database tertentu. Sidik jari pelindung TDE saat ini dari database, dan ID database dapat ditemukan dengan menjalankan:

SELECT [database_id],
       [encryption_state],
       [encryptor_type], /*asymmetric key means AKV, certificate means service-managed keys*/
       [encryptor_thumbprint]
 FROM [sys].[dm_database_encryption_keys]

Kueri berikut mengembalikan sidik jari masing-masing VLF dan Pelindung TDE yang digunakan. Setiap sidik jari yang berbeda mengacu pada kunci yang berbeda di Azure Key Vault (AKV):

SELECT * FROM sys.dm_db_log_info (database_id)

Jika tidak, Anda dapat menggunakan PowerShell atau Azure CLI:

Perintah Get-AzureRmSqlServerKeyVaultKey PowerShell menyediakan thumbprint Pelindung TDE yang digunakan dalam kueri, sehingga Anda dapat melihat kunci mana yang akan disimpan dan kunci mana yang akan dihapus di AKV. Hanya kunci yang tidak lagi digunakan oleh database yang dapat dihapus dengan aman dari Azure Key Vault.

Jaga agar sumber daya terenkripsi tetap dapat diakses

  1. Buat kunci baru di Key Vault. Pastikan kunci baru ini dibuat di key vault terpisah dari pelindung TDE yang berpotensi disusupi, karena kontrol akses disediakan di level vault.

  2. Tambahkan cmdlet kunci baru ke server menggunakan Add-AzSqlServerKeyVaultKey dan Set-AzSqlServerTransparentDataEncryptionProtector dan perbarui itu seperti pelindung TDE baru server.

    # add the key from Key Vault to the server  
    Add-AzSqlServerKeyVaultKey -ResourceGroupName <SQLDatabaseResourceGroupName> -ServerName <LogicalServerName> -KeyId <KeyVaultKeyId>
    
    # set the key as the TDE protector for all resources under the server
    Set-AzSqlServerTransparentDataEncryptionProtector -ResourceGroupName <SQLDatabaseResourceGroupName> `
        -ServerName <LogicalServerName> -Type AzureKeyVault -KeyId <KeyVaultKeyId>
    
  3. Pastikan server dan replika apa pun telah diperbarui ke pelindung TDE baru menggunakan ekstensi Get-AzSqlServerTransparentDataEncryptionProtector cmdlet.

    Catatan

    Mungkin perlu waktu beberapa menit agar pelindung TDE baru menyebar ke semua database dan database sekunder di bawah server.

    Get-AzSqlServerTransparentDataEncryptionProtector -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>
    
  4. Buat kunci baru cadangan di Key Vault.

    # -OutputFile parameter is optional; if removed, a file name is automatically generated.
    Backup-AzKeyVaultKey -VaultName <KeyVaultName> -Name <KeyVaultKeyName> -OutputFile <DesiredBackupFilePath>
    
  5. Hapus kunci yang disusupi dari Key Vault menggunakan cmdlet Remove-AzKeyVaultKey.

    Remove-AzKeyVaultKey -VaultName <KeyVaultName> -Name <KeyVaultKeyName>
    
  6. Untuk memulihkan kunci ke Key Vault di masa mendatang menggunakan cmdlet Restore-AzKeyVaultKey .

    Restore-AzKeyVaultKey -VaultName <KeyVaultName> -InputFile <BackupFilePath>
    

Jadikan sumber daya terenkripsi tidak dapat diakses

  1. Jatuhkan database yang sedang dienkripsi oleh kunci yang berpotensi disusupi.

    Database dan file log secara otomatis dicadangkan, sehingga pemulihan database point-in-time dapat dilakukan kapan saja (selama Anda memberikan kuncinya). Database harus dihapus sebelum penghapusan pelindung TDE aktif untuk mencegah potensi kehilangan data hingga 10 menit dari transaksi terbaru.

  2. Cadangkan material kunci pelindung TDE di Key Vault.

  3. Hapus kunci yang berpotensi disusupi dari Key Vault.

Catatan

Mungkin perlu waktu sekitar 10 menit agar perubahan izin berlaku untuk brankas kunci. Ini termasuk mencabut izin akses ke pelindung TDE di Azure Key Vault, dan pengguna dalam jangka waktu ini mungkin masih memiliki izin akses.