Rodar a chave de proteção da Encriptação Transparente de Dados no Azure Synapse Analytics

Dica

Microsoft Fabric Data Warehouse é um armazém relacional de escala empresarial baseado numa base de data lake, com uma arquitetura pronta para o futuro, IA incorporada e novas funcionalidades. Se és novo no data warehousing, começa pelo Fabric Data Warehouse. As cargas de trabalho existentes de pool SQL dedicado podem atualizar para o Fabric para acessar novas capacidades em ciência de dados, análise em tempo real e relatórios.

Aplica-se a: Pools SQL dedicados do Azure Synapse Analytics (anteriormente SQL DW)

Este artigo descreve a rotação de chaves para um servidor SQL que utiliza um protetor TDE do Azure Key Vault. A rotação do protetor TDE lógico de um servidor consiste em mudar para uma nova chave suportada que protege as bases de dados no servidor. Dependendo da configuração, o protetor TDE pode ser suportado por uma chave assimétrica (RSA) ou simétrica (AES) suportada armazenada no Azure Key Vault ou no Azure Key Vault Managed HSM. A rotação de chaves é uma operação online e deve demorar apenas alguns segundos a ser concluída, porque esta operação apenas desencripta e volta a encriptar a chave de encriptação de dados da base de dados, não toda a base de dados.

Este artigo discute métodos automatizados e manuais para girar o protetor TDE no servidor.

Note

Este artigo aborda pools SQL dedicados independentes (anteriormente SQL DW). Para pools SQL dedicados num espaço de trabalho Synapse, veja Encriptação para espaços de trabalho do Azure Synapse Analytics.

Considerações importantes

  • Manter as versões antigas das chaves pelo menos durante o período de retenção de backup da base de dados. Restaurar um backup antigo requer o protetor que o encriptou.
  • Mantém as chaves antigas mesmo que voltes a usar um protetor com gestão de serviços.
  • Um pool SQL dedicado pausado deve ser retomado antes da rotação.
  • O nome combinado do cofre de chaves e o nome da chave não podem exceder 94 caracteres.

Prerequisites

  • Este artigo assume que já está a usar uma chave do Azure Key Vault como protetor TDE para Base de Dados SQL do Azure ou Azure Synapse Analytics. Para mais informações, consulte Customer-managed TDE for Azure Synapse Analytics.
  • Você deve ter o Azure PowerShell instalado e em execução.

Dica

Recomendado, mas opcional - crie primeiro o material de chave para o protetor TDE em um módulo de segurança de hardware (HSM) ou armazenamento de chaves local e importe o material de chave para o Cofre de Chaves do Azure. Para saber mais, consulte as instruções para usar um módulo de segurança de hardware (HSM) e o Azure Key Vault.

Vai para o portal Azure.

Rotação automática de chaves

Ative a rotação automática do protetor TDE quando configurar o protetor TDE para o servidor ou para a base de dados. Pode ativar a rotação automática a partir do portal Azure ou usando os seguintes comandos PowerShell ou CLI do Azure. Quando ativa a rotação automática, o servidor ou base de dados verifica continuamente o cofre de chaves para novas versões da chave usada como protetor TDE. Se o servidor ou base de dados detetar uma nova versão da chave, roda automaticamente o protetor TDE para a versão mais recente da chave dentro de 24 horas.

Utilize a rotação automática num servidor, base de dados ou instância gerida com rotação automática de chaves no Azure Key Vault para permitir rotação automática integral sem intervenção para chaves TDE.

portal do Azure

Usando o portal do Azure:

  1. Navegue até a seção Criptografia de dados transparente para um servidor existente ou instância gerenciada.
  2. Selecione a opção de chave gerida pelo cliente e selecione o cofre de chaves e a chave para usar como protetor de TDE.
  3. Selecione a caixa de seleção Auto-rotação.
  4. Selecione Guardar.

PowerShell

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

Para permitir a rotação automática do protetor TDE usando o PowerShell, consulte o script seguinte. Podes recuperar o <keyVaultKeyId> do Azure Key Vault.

Utilize Set-AzSqlServerTransparentDataEncryptionProtector:

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

CLI do Azure

Para informações sobre a instalação da versão atual do CLI do Azure, consulte Instalar o CLI do Azure.

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

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 da chave

A rotação manual de chaves utiliza os seguintes comandos para adicionar uma nova chave, que pode estar com um novo nome de chave ou até mesmo em outro cofre de chaves. Também podes usar o portal do Azure para rodar manualmente as chaves.

Quando efetua manualmente a rotação das chaves e cria uma nova versão da chave no Key Vault (seja manualmente ou através de uma política de rotação automática de chaves), tem de definir manualmente essa versão da chave como TDE protector no servidor.

Note

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

portal do Azure

  1. Abra Transparent data encryption no servidor SQL.
  2. Selecione a chave gerida pelo cliente.
  3. Selecione a opção de chave gerida pelo cliente e selecione o cofre de chaves e a chave para usar como novo protetor TDE.
  4. Selecione Guardar.

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-AzSqlServerKeyVaultKey
  • Set-AzSqlServerTransparentDataEncryptionProtector

# 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 protetor do TDE

portal do Azure

Utilize o portal do Azure para mudar o protetor TDE do modo Microsoft-managed para o modo BYOK:

  1. Navegue até o menu de criptografia de dados Transparent para um servidor existente ou instância gerenciada.
  2. Selecione a opção chave gerenciada pelo cliente.
  3. Selecione o cofre de chaves e a chave para usar como protetor TDE.
  4. Selecione Guardar.

PowerShell

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

    Set-AzSqlServerTransparentDataEncryptionProtector -Type AzureKeyVault `
         -KeyId <keyVaultKeyId> -ServerName <logicalServerName> -ResourceGroup <SQLDatabaseResourceGroupName>
    
  • Para alternar o protetor TDE do modo BYOK para o 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 mudar o protetor TDE do modo gerenciado pela Microsoft para o modo BYOK:

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

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