Girar o protetor de TDE (Transparent Data Encryption)

Aplica-se a:Banco de Dados SQL do AzureInstância Gerenciada de SQL do Azure

Este artigo descreve a rotação de chave para um servidor usando um protetor TDE do Azure Key Vault. Girar o Protetor TDE lógico para um servidor SQL do Azure significa alternar para uma nova chave compatível que protege os bancos de dados no servidor. Dependendo da configuração, o protetor de TDE pode ser apoiado por uma chave assimétrica (RSA) ou simétrica (AES) com suporte armazenada em Azure Key Vault ou Azure Key Vault HSM Gerenciado. A rotação de chave é uma operação online e deve demorar apenas alguns segundos para ser concluída, porque isso somente descriptografa e criptografa novamente a chave de criptografia de dados do banco de dados, não o banco de dados inteiro.

Este artigo aborda ambos os métodos automatizado e manual para girar o protetor de TDE no servidor.

Considerações importantes ao girar o protetor de TDE

  • Quando o protetor de TDE é alterado/girado, os backups antigos do banco de dados, incluindo os arquivos de log de backup, não são atualizados para usar o protetor de TDE mais recente. Para restaurar um backup criptografado com um protetor TDE do Azure Key Vault ou do HSM Gerenciado do Azure, verifique se o material da chave está disponível para o servidor de destino. Portanto, recomendamos manter todas as versões antigas do protetor de TDE no Azure Key Vault ou no HSM Gerenciado do Azure, para que os backups de banco de dados possam ser restaurados.

  • Mesmo ao alternar da CMK (chave gerenciada pelo cliente) para a chave gerenciada pelo serviço, mantenha todas as chaves usadas anteriormente no Azure Key Vault ou no HSM Gerenciado do Azure. Isso garante que os backups de banco de dados, incluindo arquivos de log copiados, possam ser restaurados com os protetores TDE armazenados no Azure Key Vault ou no HSM Gerenciado do Azure.

  • Além dos backups antigos, os arquivos de log de transações também podem exigir acesso ao protetor de TDE mais antigo. Para determinar se há algum log restante que ainda exija a chave mais antiga, depois de executar a rotação de chaves, use o Sys.DM_DB_LOG_INFO DMV (exibição de gerenciamento dinâmico). Essa DMV retorna informações sobre o VLF (arquivo de log virtual) do log de transações com a impressão digital da chave de criptografia do VLF.

  • Mantenha chaves antigas no Azure Key Vault ou no Azure Managed HSM e torne-as disponíveis para o servidor com base no período de retenção de backup configurado como parte das políticas de retenção de backup no banco de dados. Essa prática ajuda a garantir que quaisquer backups de Retenção de Longo Prazo (LTR) no servidor ainda possam ser restaurados usando as chaves antigas.

  • Você pode rotacionar o protetor do TDE alterando a configuração para usar uma nova chave armazenada no Azure Key Vault ou no Azure Key Vault Managed HSM. Dependendo da oferta SQL do Azure e da configuração com suporte, isso pode incluir:

    • Mudar para uma nova versão da mesma chave

    • Alternar para uma chave diferente

    • Alternar entre tipos de chave com suporte, como chaves assimétricas (RSA) e simétricas (AES)

      Observação

      Transparent Data Encryption com chaves simétricas (AES) tem suporte apenas para Banco de Dados SQL do Azure e está em versão prévia pública. Você pode ver essa funcionalidade aparecer ao longo do tempo, dependendo do status da sua região e da implantação do serviço.

Pré-requisitos

  • Este artigo parte do pressuposto de que você já está usando uma chave do Azure Key Vault como protetor TDE para Banco de Dados SQL do Azure ou Instância Gerenciada de SQL do Azure. Confira Transparent Data Encryption com suporte de BYOK.
  • É necessário ter o Azure PowerShell instalado e funcionando.

Dica

Recomendado, mas opcional – Crie o material da chave para o protetor de TDE em um HSM (módulo de segurança de hardware) ou o armazenamento de chaves local primeiro e importe o material da chave para o Azure Key Vault. Siga as instruções para usar um HSM (módulo de segurança de hardware) e o Azure Key Vault para saber mais.

Vá para o Portal do Azure

Rotação automática de chaves

A Rotação automática para o protetor de TDE pode ser habilitada durante a configuração do protetor de TDE para o servidor ou o banco de dados, por meio do portal do Azure, do PowerShell abaixo ou dos comandos da CLI do Azure. Depois que ela for habilitada, o servidor ou o banco de dados verificará continuamente o cofre de chaves em busca de versões novas da chave que está sendo usada como protetor de TDE. Se uma nova versão da chave for detectada, o protetor de TDE no servidor ou no banco de dados será girado automaticamente para a versão mais recente da chave no período de até 24 horas.

A rotação automática em um servidor, banco de dados ou em uma instância gerenciada pode ser usada com a rotação automática de chaves no Azure Key Vault para habilitar a rotação de toque zero de ponta a ponta para chaves de TDE.

Observação

Se o servidor ou a instância gerenciada tiver a replicação geográfica configurada, antes de habilitar a rotação automática, consulte as considerações de replicação geográfica ao configurar a rotação automatizada do protetor de TDE.

Usando o portal do Azure:

  1. Procure a seção Transparent Data Encryption de um servidor ou uma instância gerenciada existente.
  2. Selecione a opção Chave gerenciada pelo cliente e escolha o cofre de chaves e a chave a ser usada como o protetor de TDE.
  3. Marque a caixa de seleção Girar chave automaticamente.
  4. Clique em Salvar.

Captura de tela da configuração Girar chave automaticamente da Transparent Data Encryption.

Rotação automática de chave no nível do banco de dados

Você também pode ativar a rotação automática de chaves no nível do banco de dados para o Banco de Dados SQL do Azure. Essa abordagem é útil quando você quer habilitar a rotação automática de chaves para apenas um ou um subconjunto de bancos de dados em um servidor. Para obter mais informações, confira Gerenciamento de identidades e chaves para TDE com chaves gerenciadas pelo cliente no nível do banco de dados.

Para habilitar a rotação automática no protetor de TDE no nível do banco de dados usando o PowerShell, confira o comando a seguir. Use o parâmetro -EncryptionProtectorAutoRotation e configure como $true para habilitar a rotação automática de chave ou $false para desabilitar a rotação automática de chave.

Set-AzSqlDatabase -ResourceGroupName <resource_group_name> -ServerName <server_name> -DatabaseName <database_name> -EncryptionProtectorAutoRotation:$true

Rotação automática de chaves para as configurações de replicação geográfica

Em uma configuração de replicação geográfica do Banco de Dados SQL do Azure em que o servidor primário está definido para usar a TDE com a CMK, o servidor secundário também precisa ser configurado para habilitar a TDE com a CMK com a mesma chave usada no primário.

Usando o portal do Azure:

  1. Procure a seção Transparent Data Encryption do servidor primário.

  2. Selecione a opção Chave gerenciada pelo cliente e escolha o cofre de chaves e a chave a ser usada como o protetor de TDE.

  3. Marque a caixa de seleção Girar chave automaticamente.

  4. Clique em Salvar.

    Captura de tela da configuração de rotação automática de chaves para a Transparent Data Encryption em um cenário de replicação geográfica no servidor primário.

  5. Procure a seção Transparent Data Encryption do servidor secundário.

  6. Selecione a opção Chave gerenciada pelo cliente e escolha o cofre de chaves e a chave a ser usada como o protetor de TDE. Use a mesma chave usada para o servidor primário.

  7. Desmarque a opção Tornar esta chave o protetor de TDE padrão.

  8. Clique em Salvar.

    Captura de tela da configuração de rotação automática de chaves para a Transparent Data Encryption em um cenário de replicação geográfica no servidor secundário.

Quando a chave é girada no servidor primário, ela é transferida automaticamente para o servidor secundário.

Observação

Se você usar a mesma chave do cofre de chaves no servidor principal como protetor TDE padrão no servidor secundário, certifique-se de que a rotação automática de chave esteja habilitada para ambos os servidores. Se você não ativar essa configuração, os fluxos de trabalho de rotação automática podem entrar em estado de erro e impedir novas operações manuais de rotação de chaves.

Usar chaves diferentes para cada servidor

É possível configurar os servidores primário e secundário com uma chave de cofre de chaves diferente ao configurar a TDE com a CMK no portal do Azure. Não é evidente no portal do Azure que a chave usada para proteger o servidor primário também é a mesma chave que protege o banco de dados primário que foi replicado para o servidor secundário. No entanto, você pode usar o PowerShell, a CLI do Azure ou as APIs REST para obter detalhes sobre as chaves usadas no servidor. Isso mostra que as chaves giradas automaticamente são transferidas do servidor primário para o servidor secundário.

Veja um exemplo de como usar comandos do PowerShell para verificar se há chaves transferidas do servidor primário para o servidor secundário após a rotação de chaves.

  1. Execute o seguinte comando no servidor primário para ver os detalhes da chave de um servidor:

    Get-AzSqlServerKeyVaultKey -ServerName <logicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName> 
    
  2. Você deverá ver resultados semelhantes ao seguinte:

    ResourceGroupName : <SQLDatabaseResourceGroupName> 
    ServerName        : <logicalServerName> 
    ServerKeyName     : <keyVaultKeyName> 
    Type              : AzureKeyVault 
    Uri               : https://<keyvaultname>.vault.azure.net/keys/<keyName>/<GUID> 
    Thumbprint        : <thumbprint> 
    CreationDate      : 12/13/2022 8:56:32 PM
    
  3. Execute o mesmo comando Get-AzSqlServerKeyVaultKey no servidor secundário:

    Get-AzSqlServerKeyVaultKey -ServerName <logicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName> 
    
  4. Se o servidor secundário tiver um protetor de TDE padrão que usa uma chave diferente do servidor primário, você verá duas (ou mais) chaves. A primeira chave é o protetor de TDE padrão, e a segunda chave é a chave usada no servidor primário usado para proteger o banco de dados replicado.

  5. Quando a chave é girada no servidor primário, ela é transferida automaticamente para o servidor secundário. Se você executar a Get-AzSqlServerKeyVaultKey novamente no servidor primário, verá duas chaves. A primeira chave é a chave original e a segunda chave, que é a chave atual gerada como parte da rotação da chave.

  6. A execução do comando Get-AzSqlServerKeyVaultKey no servidor secundário também mostrará as mesmas chaves presentes no servidor primário. Isso confirma que as chaves giradas no servidor primário são transferidas automaticamente para o servidor secundário e usadas para proteger a réplica de banco de dados.

Rotação manual de chaves

A rotação manual de chaves usa os comandos a seguir para adicionar uma nova chave, que pode ter um novo nome ou estar em outro cofre de chaves. Usar essa abordagem dá suporte à adição da mesma chave a diferentes cofres de chaves para dar suporte a cenários de alta disponibilidade e recuperação de desastres geográficos. A rotação manual de chaves também pode ser feita por meio do portal do Azure.

Com a rotação manual de chaves, quando uma nova versão da chave é gerada no cofre de chaves (manualmente ou por meio da política de rotação automática de chaves no cofre de chaves), ela precisa ser definida manualmente como o protetor de TDE no servidor.

Observação

O comprimento combinado para o nome do cofre de chaves e o nome da chave não pode exceder 94 caracteres.

Usando o portal do Azure:

  1. Procure o menu Transparent Data Encryption de um servidor ou uma instância gerenciada existente.
  2. Selecione a opção Chave gerenciada pelo cliente e escolha o cofre de chaves e a chave a ser usada como o novo protetor de TDE.
  3. Clique em Salvar.

Captura de tela da configuração Girar chave manualmente da Transparent Data Encryption.

Alternar o modo do protetor TDE

Usando o portal do Azure para alternar o protetor de TDE do modo gerenciado pela Microsoft para BYOK:

  1. Procure o menu Transparent Data Encryption de um servidor ou uma instância gerenciada existente.
  2. Selecione a opção Chave gerenciada pelo cliente.
  3. Escolha o cofre de chaves e a chave a ser usada como o protetor de TDE.
  4. Clique em Salvar.

TDE in Azure Synapse Analytics

Para informações sobre como rotacionar o protetor TDE no Azure Synapse Analytics, veja Rotacionar o protetor TDE. Para ver a documentação sobre a TDE (Transparent Data Encryption) nos pools de SQL dedicados dos workspaces do Azure Synapse, confira Criptografia do Azure Synapse Analytics.