Girar o protetor do Transparent Data Encryption no Azure Synapse Analytics

Dica

Microsoft Fabric Data Warehouse é um armazém relacional de escala empresarial com base de data lake, arquitetura pronta para o futuro, IA integrada e novos recursos. Se você não estiver familiarizado com o data warehouse, comece com Fabric Data Warehouse. As cargas de trabalho existentes de pools de SQL dedicados podem ser atualizadas para Fabric para acessar novos recursos em ciência de dados, análise em tempo real e relatórios.

Aplica-se a: pools de SQL dedicados do Azure Synapse Analytics (antes conhecido como SQL DW)

Este artigo descreve a rotação de chaves para um servidor SQL que utiliza um protetor TDE do Azure Key Vault. Girar o protetor de TDE lógico para um servidor significa alternar para uma nova chave com suporte 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 chaves é uma operação online e deve levar apenas alguns segundos para ser concluída, pois essa operação apenas descriptografa e recriptografa 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.

Note

Este artigo aborda pools SQL dedicados independentes (anteriormente SQL DW). Para pools SQL dedicados em um workspace Synapse, veja Criptografia para Azure Synapse Analytics workspaces.

Considerações importantes

  • Mantenha as versões antigas das chaves pelo menos durante o período de retenção de backup do banco de dados. Restaurar um backup antigo requer o protetor que o criptografou.
  • Mantenha as chaves antigas mesmo que volte para um protetor gerenciado por serviços.
  • Um pool SQL dedicado pausado deve ser reativado antes do rodízio.
  • O nome combinado do cofre de chaves e o nome da chave não podem exceder 94 caracteres.

Prerequisites

  • 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 Azure Synapse Analytics. Para mais informações, veja Customer-managed TDE para Azure Synapse Analytics.
  • É 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. Para saber mais, veja as instruções para usar um módulo de segurança de hardware (HSM) e o Azure Key Vault.

Vá para o portal do Azure.

Rotação automática de chaves

Ative a rotação automática do protetor TDE ao configurar o protetor TDE para o servidor ou o banco de dados. Você pode ativar a rotação automática pelo portal do Azure ou usando os seguintes comandos do PowerShell ou CLI do Azure. Quando você ativa a rotação automática, o servidor ou banco de dados verifica continuamente o cofre de chaves em busca de novas versões da chave usada como protetor TDE. Se o servidor ou banco de dados detecta uma nova versão da chave, ele automaticamente rotaciona o protetor TDE para a versão mais recente da chave em 24 horas.

Use a rotação automática em um servidor, banco de dados ou instância gerenciada com rotação automática de chaves no Azure Key Vault para permitir a rotação zero-touch de ponta a ponta para chaves TDE.

portal do Azure

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 selecione o cofre de chaves e a chave para usar como protetor TDE.
  3. Selecione a caixa de seleção Auto-rotate key.
  4. Clique em Salvar.

PowerShell

Para obter instruções de instalação do módulo Az do PowerShell, confira Instalar o Azure PowerShell.

Para habilitar a rotação automática do protetor TDE usando o PowerShell, veja o script a seguir. Você pode recuperar o <keyVaultKeyId> do Azure Key Vault.

Use o comando Set-AzSqlServerTransparentDataEncryptionProtector:

Set-AzSqlServerTransparentDataEncryptionProtector -Type AzureKeyVault -KeyId <keyVaultKeyId> `
   -ServerName <logicalServerName> -ResourceGroup <SQLDatabaseResourceGroupName> `
    -AutoRotationEnabled <boolean>

CLI do Azure

Para informações sobre como instalar a versão atual do CLI do Azure, veja Instalar o CLI do Azure.

Para permitir a rotação automática do protetor TDE usando o CLI do Azure, veja o script a seguir.

Use az sql server tde-key set:

az sql server tde-key set --server-key-type AzureKeyVault
                          --auto-rotation-enabled true
                          [--kid] <keyVaultKeyId>
                          [--resource-group] <SQLDatabaseResourceGroupName> 
                          [--server] <logicalServerName>

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. Você também pode usar o portal do Azure para girar chaves manualmente.

Quando você gira manualmente as chaves e cria uma nova versão de chave no Key Vault (seja manualmente ou por meio de uma política de rotação automática de chaves), você deve definir manualmente essa versão como o protetor TDE no servidor.

Note

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

portal do Azure

  1. Abra a criptografia de dados transparente no servidor SQL.
  2. Selecione a chave gerenciada pelo cliente.
  3. Selecione a opção de chave gerenciada pelo cliente e selecione o cofre de chaves e a chave para usar como novo protetor TDE.
  4. Clique em Salvar.

PowerShell

Use o comando Add-AzKeyVaultKey para adicionar uma nova chave ao cofre de chaves.

# add a new key to Azure Key Vault
Add-AzKeyVaultKey -VaultName <keyVaultName> -Name <keyVaultKeyName> -Destination <hardwareOrSoftware>

Use os seguintes comandos:


# add the new key from Azure Key Vault to the server
Add-AzSqlServerKeyVaultKey -KeyId <keyVaultKeyId> -ServerName <logicalServerName> -ResourceGroup <SQLDatabaseResourceGroupName>
  
# set the key as the TDE protector for all resources under the server
Set-AzSqlServerTransparentDataEncryptionProtector -Type AzureKeyVault -KeyId <keyVaultKeyId> `
   -ServerName <logicalServerName> -ResourceGroup <SQLDatabaseResourceGroupName>

CLI do Azure

Use o comando az keyvault key create para adicionar uma nova chave ao cofre de chaves.

# add a new key to Azure Key Vault
az keyvault key create --name <keyVaultKeyName> --vault-name <keyVaultName> --protection <hsmOrSoftware>

Use os seguintes comandos:

# add the new key from Azure Key Vault to the server
az sql server key create --kid <keyVaultKeyId> --resource-group <SQLDatabaseResourceGroupName> --server <logicalServerName>

# set the key as the TDE protector for all resources under the server
az sql server tde-key set --server-key-type AzureKeyVault --kid <keyVaultKeyId> --resource-group <SQLDatabaseResourceGroupName> --server <logicalServerName>

Alternar o modo do protetor TDE

portal do Azure

Use o portal do Azure para trocar o protetor TDE do modo gerenciado pela Microsoft para o modo 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. Selecione o cofre de chaves e a chave para usar como protetor TDE.
  4. Clique em Salvar.

PowerShell

  • Para alternar o protetor TDE do modo gerenciado pela Microsoft para o modo BYOK, use o comando Set-AzSqlServerTransparentDataEncryptionProtector.

    Set-AzSqlServerTransparentDataEncryptionProtector -Type AzureKeyVault `
         -KeyId <keyVaultKeyId> -ServerName <logicalServerName> -ResourceGroup <SQLDatabaseResourceGroupName>
    
  • Para alternar o protetor TDE do modo BYOK para gerenciado pela Microsoft, use o comando Set-AzSqlServerTransparentDataEncryptionProtector.

    Set-AzSqlServerTransparentDataEncryptionProtector -Type ServiceManaged `
         -ServerName <logicalServerName> -ResourceGroup <SQLDatabaseResourceGroupName>
    

CLI do Azure

Os exemplos a seguir usam az sql server tde-key set.

  • Para alternar o protetor de TDE do modo gerenciado pela Microsoft para BYOK:

    az sql server tde-key set --server-key-type AzureKeyVault --kid <keyVaultKeyId> --resource-group <SQLDatabaseResourceGroupName> --server <logicalServerName>
    
  • Para alternar o protetor de TDE do modo BYOK para o gerenciado pela Microsoft:

    az sql server tde-key set --server-key-type ServiceManaged --resource-group <SQLDatabaseResourceGroupName> --server <logicalServerName>