Girar o protetor de TDE (Transparent Data Encryption)

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 a rotação de chave para um servidor usando um protetor TDE do Azure Key Vault. A rotação do protetor de TDE lógico para um servidor significa alternar para uma nova chave assimétrica que protege os bancos de dados no servidor. 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 de TDE do Key Vault, verifique se o material da chave está disponível no servidor de destino. Portanto, é recomendável manter todas as versões antigas do protetor de TDE no AKV Azure Key Vault para que os backups do 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 em AKV. Isso garante que os backups do banco de dados possam, incluindo arquivos de log de backup, ser restaurados com os protetores de TDE armazenados no AKV.
  • 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.
  • Chaves mais antigas precisam ser mantidas em AKV e disponíveis para o servidor com base no período de retenção de backup configurado como parte de trás das políticas de retenção de backup no banco de dados. Isso ajuda a garantir que qualquer backup de LTR (retenção de longo prazo) no servidor ainda possa ser restaurado usando as chaves mais antigas.

Observação

Um pool de SQL dedicado em pausa no Azure Synapse Analytics deve ser retomado antes das rotações de chave.

Este artigo se aplica ao Banco de Dados SQL do Azure, à Instância Gerenciada de SQL do Azure e aos pools de SQL dedicados do Azure Synapse Analytics (antigo SQL DW). 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.

Importante

Não exclua as versões anteriores da chave após uma substituição. Quando as teclas são substituídas, alguns dados ainda são criptografados com as chaves anteriores, como backups de banco de dados mais antigos, arquivos de log de backup e arquivos de log de transações.

Pré-requisitos

  • Este guia de instruções pressupõe que você já esteja usando uma chave do Azure Key Vault como o protetor de TDE para o Banco de Dados SQL do Azure ou o Azure Synapse Analytics. 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 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 da habilitação da rotação automática, será preciso seguir diretrizes adicionais, conforme descrito aqui.

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. Selecione Save.

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

A rotação automática de chave também pode ser habilitada no nível do banco de dados para o banco de dados SQL do Azure. Isso é útil quando você deseja habilitar a rotação automática de chave 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 obter informações do portal do Azure sobre como configurar a rotação automática de chave no nível do banco de dados, confira Atualizar um Banco de Dados SQL do Azure existente com chaves gerenciadas pelo cliente no nível do banco de dados.

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. Selecione Save.

    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. Selecione Save.

    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.

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. Selecione Save.

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. Selecione Save.