PowerShell kullanarak Saydam Veri Şifrelemesi (TDE) koruyucuyu kaldırma

Şunlar için geçerlidir:Azure SQL Veritabanı Azure SQL Yönetilen Örneği Azure Synapse Analytics (yalnızca ayrılmış SQL havuzları)

Bu makalede, Azure Key Vault'ta müşteri tarafından yönetilen anahtarlarla TDE kullanan Azure SQL Veritabanı veya Azure Synapse Analytics için güvenliği aşılmış olabilecek TDE koruması - Kendi Anahtarını Getir (BYOK) desteğinin nasıl yanıtlandığı açıklanır. TDE için KAG desteği hakkında daha fazla bilgi edinmek için genel bakış sayfasına bakın.

Dikkat

Bu makalede açıklanan yordamlar yalnızca aşırı durumlarda veya test ortamlarında yapılmalıdır. Etkin olarak kullanılan TDE koruyucularının Azure Key Vault'tan silinmesi veritabanının kullanılamaz duruma gelmesine neden olacağı için adımları dikkatlice gözden geçirin.

Bir hizmetin veya kullanıcının anahtara yetkisiz erişimi olması gibi bir anahtarın gizliliğinin ihlal edilmiş olduğundan şüpheleniliyorsa, anahtarı silmek en iyisidir.

Key Vault'ta TDE koruyucusu silindikten sonra 10 dakikaya kadar tüm şifrelenmiş veritabanlarının ilgili hata iletisiyle tüm bağlantıları reddetmeye başlayacağını ve durumunu Erişilemez olarak değiştireceğini unutmayın.

Bu nasıl yapılır kılavuzu, güvenliği aşılmış bir olay yanıtının ardından veritabanlarını erişilemez hale getirmek için yaklaşımın üzerinden geçmektedir.

Not

Bu makale Azure SQL Veritabanı, Azure SQL Yönetilen Örneği ve Azure Synapse Analytics (ayrılmış SQL havuzları (eski adı SQL DW) için geçerlidir. Synapse çalışma alanlarındaki ayrılmış SQL havuzları için Saydam Veri Şifrelemesi belgeleri için bkz. Azure Synapse Analytics şifrelemesi.

Önkoşullar

  • Bir Azure aboneliğinizin olması ve bu abonelikte yönetici olmanız gerekir.
  • Azure PowerShell'in yüklü ve çalışır durumda olması gerekir.
  • Bu nasıl yapılır kılavuzunda, bir Azure SQL Veritabanı veya Azure Synapse için TDE koruyucusu olarak Azure Key Vault'tan bir anahtar kullandığınız varsayılır. Daha fazla bilgi edinmek için bkz. BYOK Desteği ile Saydam Veri Şifrelemesi.

Az modülü yükleme yönergeleri için bkz. Azure PowerShell'i yükleme. Belirli cmdlet'ler için bkz . AzureRM.Sql. Yeni Azure PowerShell Az modülünü kullanın.

TDE Koruyucusu parmak izlerini denetleme

Aşağıdaki adımlarda, belirli bir veritabanının Sanal Günlük Dosyaları (VLF) tarafından hala kullanılan TDE Koruyucusu parmak izlerinin nasıl denetlendiği özetlenmiştir. Veritabanının geçerli TDE koruyucusunun parmak izi ve veritabanı kimliği şu şekilde çalıştırılarak bulunabilir:

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

Aşağıdaki sorgu, VLF'leri ve TDE Koruyucusu'nda kullanılan ilgili parmak izlerini döndürür. Her farklı parmak izi, Azure Key Vault'taki (AKV) farklı anahtara başvurur:

SELECT * FROM sys.dm_db_log_info (database_id)

Alternatif olarak, PowerShell'i veya Azure CLI'yı kullanabilirsiniz:

PowerShell komutu Get-AzureRmSqlServerKeyVaultKey sorguda kullanılan TDE Koruyucusu'nun parmak izini sağlar, böylece AKV'de hangi anahtarların tutulabileceğini ve hangi anahtarların silindiğini görebilirsiniz. Azure Key Vault'tan yalnızca veritabanı tarafından artık kullanılmayan anahtarlar güvenle silinebilir.

Şifrelenmiş kaynakları erişilebilir tutma

  1. Key Vault'ta yeni bir anahtar oluşturun. Erişim denetimi bir kasa düzeyinde sağlandığından, bu yeni anahtarın güvenliği aşılmış olabilecek TDE koruyucusundan ayrı bir anahtar kasasında oluşturulduğundan emin olun.

  2. Add-AzSqlServerKeyVaultKey ve Set-AzSqlServerTransparentDataEncryptionProtector cmdlet'lerini kullanarak yeni anahtarı sunucuya ekleyin ve sunucunun yeni TDE koruyucusu olarak güncelleştirin.

    # 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. Sunucunun ve tüm çoğaltmaların Get-AzSqlServerTransparentDataEncryptionProtector cmdlet'ini kullanarak yeni TDE koruyucusunun güncelleştirildiğinden emin olun.

    Not

    Yeni TDE koruyucusunun sunucu altındaki tüm veritabanlarına ve ikincil veritabanlarına yayılması birkaç dakika sürebilir.

    Get-AzSqlServerTransparentDataEncryptionProtector -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>
    
  4. Key Vault'ta yeni anahtarın yedeğini alın.

    # -OutputFile parameter is optional; if removed, a file name is automatically generated.
    Backup-AzKeyVaultKey -VaultName <KeyVaultName> -Name <KeyVaultKeyName> -OutputFile <DesiredBackupFilePath>
    
  5. Güvenliği aşılmış anahtarı Remove-AzKeyVaultKey cmdlet'ini kullanarak Key Vault'tan silin.

    Remove-AzKeyVaultKey -VaultName <KeyVaultName> -Name <KeyVaultKeyName>
    
  6. Gelecekte Restore-AzKeyVaultKey cmdlet'ini kullanarak key'i Key Vault'a geri yüklemek için.

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

Şifrelenmiş kaynaklara erişilemez hale getirme

  1. Güvenliği aşılmış olabilecek anahtar tarafından şifrelenen veritabanlarını bırakın.

    Veritabanı ve günlük dosyaları otomatik olarak yedeklenir, bu nedenle veritabanının belirli bir noktaya geri yüklemesi herhangi bir noktada yapılabilir (anahtarı sağladığınız sürece). En son işlemlerin 10 dakikasına kadar olası veri kaybını önlemek için veritabanları etkin bir TDE koruyucusu silinmeden önce bırakılmalıdır.

  2. Key Vault'ta TDE koruyucusunun anahtar malzemesini yedekleyin.

  3. Güvenliği aşılmış olabilecek anahtarı Key Vault'tan kaldırın.

Not

Tüm izin değişikliklerinin anahtar kasası için geçerli olması yaklaşık 10 dakika sürebilir. Buna AKV'de TDE koruyucusunun erişim izinlerinin iptali dahildir ve bu zaman dilimi içindeki kullanıcıların erişim izinleri hala olabilir.