PowerShell e CLI do Azure: Ativar a Encriptação de Dados Transparente com a chave gerida pelo cliente no Azure Key Vault
Aplica-se a:Banco de Dados SQL do Azure Azure SQLManaged InstanceAzure Synapse Analytics
Este artigo explica como usar uma chave do Cofre de Chaves do Azure para criptografia de dados transparente (TDE) no Banco de Dados SQL do Azure ou no Azure Synapse Analytics. Para saber mais sobre o TDE com a integração do Azure Key Vault - Bring Your Own Key (BYOK) Support, visite TDE com chaves gerenciadas pelo cliente no Azure Key Vault. Se você estiver procurando instruções do portal do Azure sobre como habilitar o TDE com uma chave gerenciada pelo cliente do Cofre de Chaves do Azure, consulte Criar servidor configurado com identidade gerenciada atribuída pelo usuário e TDE gerenciado pelo cliente.
Este artigo aplica-se à Base de Dados SQL do Azure, à Instância Gerida SQL do Azure e ao Azure Synapse Analytics (pools SQL dedicados (anteriormente SQL DW)). Para obter documentação sobre Criptografia de Dados Transparente para pools SQL dedicados dentro de espaços de trabalho Synapse, consulte Criptografia do Azure Synapse Analytics.
Nota
O Azure SQL agora oferece suporte ao uso de uma chave RSA armazenada em um HSM gerenciado como Protetor TDE. O Azure Key Vault Managed HSM é um serviço de nuvem totalmente gerenciado, altamente disponível, de locatário único e compatível com os padrões que permite proteger chaves criptográficas para seus aplicativos em nuvem, usando HSMs validados pelo FIPS 140-2 Nível 3. Saiba mais sobre HSMs gerenciados.
Nota
Microsoft Entra ID é o novo nome para o Azure Ative Directory (Azure AD). Estamos atualizando a documentação neste momento.
Pré-requisitos para o PowerShell
- Você deve ter uma assinatura do Azure e ser um administrador nessa assinatura.
- [Recomendado, mas opcional] Tenha um módulo de segurança de hardware (HSM) ou armazenamento de chaves local para criar uma cópia local do material da chave TDE Protetor.
- Você deve ter o Azure PowerShell instalado e em execução.
- Crie um Cofre da Chave do Azure e uma Chave para usar no TDE.
- Instruções para usar um módulo de segurança de hardware (HSM) e o Cofre da Chave
- O cofre de chaves deve ter a seguinte propriedade a ser usada para TDE:
- Proteção contra exclusão suave e limpeza
- Instruções para usar um módulo de segurança de hardware (HSM) e o Cofre da Chave
- A chave deve ter os seguintes atributos para ser usada para TDE:
- A data de ativação (se definida) deve ser uma data e hora no passado
- A data de expiração (se definida) deve ser uma data e hora futuras
- A chave deve estar no estado Habilitado
- Capaz de executar operações get, wrap key, unwrap key
- Para usar uma chave HSM gerenciada, siga as instruções para criar e ativar um HSM gerenciado usando a CLI do Azure
Para obter instruções de instalação do módulo Az, veja Instalar o Azure PowerShell. Para cmdlets específicos, consulte AzureRM.Sql.
Para obter detalhes sobre o Cofre da Chave, consulte as instruções do PowerShell do Cofre da Chave e Como usar a exclusão suave do Cofre da Chave com o PowerShell.
Importante
O módulo PowerShell Azure Resource Manager (RM) ainda é suportado, mas todo o desenvolvimento futuro é para o módulo Az.Sql. O módulo AzureRM continuará a receber correções de bugs até, pelo menos, dezembro de 2020. Os argumentos para os comandos no módulo Az e nos módulos AzureRm são substancialmente idênticos. Para obter mais informações sobre sua compatibilidade, consulte Apresentando o novo módulo Az do Azure PowerShell.
Atribuir uma identidade do Microsoft Entra ao seu servidor
Se você tiver um servidor existente , use o seguinte para adicionar uma identidade do Microsoft Entra ao seu servidor:
$server = Set-AzSqlServer -ResourceGroupName <SQLDatabaseResourceGroupName> -ServerName <LogicalServerName> -AssignIdentity
Se você estiver criando um servidor, use o cmdlet New-AzSqlServer com a tag -Identity para adicionar uma identidade Microsoft Entra durante a criação do servidor:
$server = New-AzSqlServer -ResourceGroupName <SQLDatabaseResourceGroupName> -Location <RegionName> `
-ServerName <LogicalServerName> -ServerVersion "12.0" -SqlAdministratorCredentials <PSCredential> -AssignIdentity
Conceder permissões do Cofre da Chave ao seu servidor
Use o cmdlet Set-AzKeyVaultAccessPolicy para conceder ao servidor acesso ao cofre de chaves antes de usar uma chave dele para TDE.
Set-AzKeyVaultAccessPolicy -VaultName <KeyVaultName> `
-ObjectId $server.Identity.PrincipalId -PermissionsToKeys get, wrapKey, unwrapKey
Para adicionar permissões ao seu servidor em um HSM gerenciado, adicione a função RBAC local 'Usuário gerenciado de criptografia do serviço de criptografia HSM' ao servidor. Isso permitirá que o servidor execute operações get, wrap key, unwrap key nas chaves no HSM gerenciado. Instruções para provisionar o acesso ao servidor no HSM gerenciado
Adicione a chave do Cofre da Chave ao servidor e defina o Protetor TDE
- Use o cmdlet Get-AzKeyVaultKey para recuperar o ID da chave do cofre de chaves
- Use o cmdlet Add-AzSqlServerKeyVaultKey para adicionar a chave do Cofre da Chave ao servidor.
- Use o cmdlet Set-AzSqlServerTransparentDataEncryptionProtector para definir a chave como o protetor TDE para todos os recursos do servidor.
- Use o cmdlet Get-AzSqlServerTransparentDataEncryptionProtector para confirmar se o protetor TDE foi configurado como pretendido.
Nota
Para chaves HSM gerenciadas, use a versão Az.Sql 2.11.1 do PowerShell.
Nota
O comprimento combinado para o nome do cofre de chaves e o nome da chave não pode exceder 94 caracteres.
Gorjeta
Um exemplo de KeyId do Key Vault: https://contosokeyvault.vault.azure.net/keys/Key1/1a1a2b2b3c3c4d4d5e5e6f6f7g7g8h8h
Um exemplo de KeyId do HSM gerenciado:
https://contosoMHSM.managedhsm.azure.net/keys/myrsakey
# 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>
# confirm the TDE protector was configured as intended
Get-AzSqlServerTransparentDataEncryptionProtector -ResourceGroupName <SQLDatabaseResourceGroupName> -ServerName <LogicalServerName>
Ativar o TDE
Use o cmdlet Set-AzSqlDatabaseTransparentDataEncryption para ativar o TDE.
Set-AzSqlDatabaseTransparentDataEncryption -ResourceGroupName <SQLDatabaseResourceGroupName> `
-ServerName <LogicalServerName> -DatabaseName <DatabaseName> -State "Enabled"
Agora, o banco de dados ou data warehouse tem TDE habilitado com uma chave de criptografia no Cofre de Chaves.
Verificar o estado de encriptação e a atividade de encriptação
Use Get-AzSqlDatabaseTransparentDataEncryption para obter o estado de criptografia de um banco de dados ou data warehouse.
# get the encryption state of the database
Get-AzSqlDatabaseTransparentDataEncryption -ResourceGroupName <SQLDatabaseResourceGroupName> `
-ServerName <LogicalServerName> -DatabaseName <DatabaseName> `
Cmdlets úteis do PowerShell
Use o cmdlet Set-AzSqlDatabaseTransparentDataEncryption para desativar o TDE.
Set-AzSqlDatabaseTransparentDataEncryption -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName> ` -DatabaseName <DatabaseName> -State "Disabled"
Use o cmdlet Get-AzSqlServerKeyVaultKey para retornar a lista de chaves do Cofre da Chave adicionadas ao servidor.
# KeyId is an optional parameter, to return a specific key version Get-AzSqlServerKeyVaultKey -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>
Use o Remove-AzSqlServerKeyVaultKey para remover uma chave do Cofre da Chave do servidor.
# the key set as the TDE Protector cannot be removed Remove-AzSqlServerKeyVaultKey -KeyId <KeyVaultKeyId> -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>
Resolução de Problemas
Verifique o seguinte se ocorrer um problema:
Se o cofre de chaves não puder ser encontrado, certifique-se de que tem a subscrição correta.
Get-AzSubscription -SubscriptionId <SubscriptionId>
- Se a nova chave não puder ser adicionada ao servidor, ou se a nova chave não puder ser atualizada como o Protetor TDE, verifique o seguinte:
- A chave não deve ter uma data de validade
- A chave deve ter as operações get, wrap key e unwrap key habilitadas.
Próximos passos
- Saiba como girar o protetor TDE de um servidor para cumprir os requisitos de segurança: gire o protetor de criptografia de dados transparente usando o PowerShell.
- Em caso de risco de segurança, saiba como remover um Protetor TDE potencialmente comprometido: Remova uma chave potencialmente comprometida.