Remover um protetor de TDE (Transparent Data Encryption) usando PowerShell

Aplica-se a: Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics (somente pools de SQL dedicados)

Este artigo descreve como responder a um protetor de TDE potencialmente comprometido para um Banco de Dados SQL do Azure ou Azure Synapse Analytics que esteja usando o TDE compatível com chaves gerenciadas pelo cliente no Azure Key Vault – Bring Your Own Key (BYOK). Para saber mais sobre o suporte BYOK para TDE, consulte a página de visão geral.

Cuidado

Os procedimentos descritos neste artigo devem ser realizados apenas em casos extremos ou em ambientes de teste. Examine as etapas cuidadosamente, pois excluir os protetores de TDE usados ativamente no Azure Key Vault faz com que o banco de dados fique indisponível.

Se houver a suspeita de que uma chave está comprometida, de modo que um serviço ou usuário tenha acesso não autorizado à chave, é melhor excluir a chave.

Tenha em mente que, depois que o protetor de TDE for excluído no Key Vault, em até dez minutos, todos os bancos de dados criptografados começarão a negar todas as conexões com a mensagem de erro correspondente e alterarão o estado para Inacessível.

Este guia de instruções explica a abordagem de tornar os bancos de dados inacessíveis após uma resposta a incidentes comprometida.

Observação

Este artigo se aplica ao Banco de Dados SQL do Azure, à Instância Gerenciada de SQL do Azure e ao Azure Synapse Analytics (pools de SQL dedicados, anteriormente conhecido como SQL DW). Para obter a documentação sobre o Transparent Data Encryption para pools de SQL dedicados nos workspaces do Azure Synapse, confira Criptografia do Azure Synapse Analytics.

Pré-requisitos

  • É necessário ter uma assinatura do Azure e ser um administrador nessa assinatura.
  • É necessário ter o Azure PowerShell instalado e funcionando.
  • Este guia de instruções assume que você já esteja usando uma chave do Azure Key Vault como protetor de TDE para um Banco de Dados SQL do Azure ou Azure Synapse. Consulte Transparent Data Encryption com suporte de BYOK para saber mais.

Para obter instruções de instalação do módulo Az, confira Instalar o Azure PowerShell. Para cmdlets específicos, confira AzureRM.Sql. Use o novo módulo Az do Azure PowerShell.

Verificar as impressões digitais do protetor de TDE

Estas etapas descrevem como verificar as impressões digitais do protetor de TDE que ainda estão em uso com o VLF (arquivo de log virtual) de um banco de dados. A impressão digital do protetor de TDE atual do banco de dados e a ID do banco de dados podem ser encontradas executando:

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 consulta a seguir retorna as respectivas impressões digitais em uso dos VLFs e do protetor de TDE. Cada impressão digital diferente representa uma chave no AKV (Azure Key Vault):

SELECT * FROM sys.dm_db_log_info (database_id)

Como alternativa, você pode usar o PowerShell ou a CLI do Azure:

O comando do PowerShell Get-AzureRmSqlServerKeyVaultKey informa a impressão digital do protetor de TDE usado na consulta para que você possa ver quais chaves manter e quais excluir no AKV. Somente as chaves que não são mais usadas pelo banco de dados podem ser excluídas com segurança do Azure Key Vault.

Manter os recursos criptografados acessíveis

  1. Crie uma nova chave no Key Vault. Certifique-se de que essa nova chave seja criada em um cofre de chaves separado do protetor de TDE potencialmente comprometido, já que o controle de acesso é provisionado em um nível de segurança.

  2. Adicione a nova chave ao servidor usando os cmdlets Add-AzSqlServerKeyVaultKey e Set-AzSqlServerTransparentDataEncryptionProtector e atualize-a como o novo protetor de TDE do servidor.

    # 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. Verifique se o servidor e todas as réplicas foram atualizadas para o novo protetor de TDE usando o cmdlet Get-AzSqlServerTransparentDataEncryptionProtector.

    Observação

    Pode demorar alguns minutos para o novo protetor de TDE se propagar em todos os bancos de dados e bancos de dados secundários no servidor.

    Get-AzSqlServerTransparentDataEncryptionProtector -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>
    
  4. Faça um backup da nova chave no Key Vault.

    # -OutputFile parameter is optional; if removed, a file name is automatically generated.
    Backup-AzKeyVaultKey -VaultName <KeyVaultName> -Name <KeyVaultKeyName> -OutputFile <DesiredBackupFilePath>
    
  5. Exclua a chave comprometida do Key Vault usando o cmdlet Remove-AzKeyVaultKey.

    Remove-AzKeyVaultKey -VaultName <KeyVaultName> -Name <KeyVaultKeyName>
    
  6. Para restaurar uma chave no Key Vault futuramente usando o cmdlet Restore-AzKeyVaultKey.

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

Tornar os recursos criptografados inacessíveis

  1. Remova os bancos de dados que estão sendo criptografados pela chave potencialmente comprometida.

    O backup do banco de dados e dos arquivos de log é feito automaticamente, portanto, uma recuperação pontual do banco de dados poderá ser realizada a qualquer momento (contanto que você forneça a chave). Os bancos de dados deverão ser removidos antes da exclusão de um protetor de TDE ativo para evitar uma possível perda de dados de até 10 minutos das transações mais recentes.

  2. Faça backup do material da chave do protetor de TDE no Key Vault.

  3. Remover a chave potencialmente comprometida do Key Vault.

Observação

As alterações de permissão podem levar cerca de dez minutos para entrar em vigor no cofre de chaves. Isso inclui a revogação de permissões de acesso ao protetor TDE no AKV. Além disso, os usuários dentro desse período ainda podem ter permissões de acesso.