Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: Base de Dados SQL do Azure
Azure SQL Managed Instance
Este artigo mostra como usar uma chave do Azure Key Vault para encriptação de dados transparentes (TDE) no Base de Dados SQL do Azure. Para saber mais sobre a integração TDE com o Azure Key Vault - Bring Your Own Key (BYOK) Support, visite TDE com chaves gerenciadas pelo cliente no Azure Key Vault. Se quiser instruções do portal Azure sobre como ativar o TDE com uma chave gerida pelo cliente do Azure Key Vault, veja Criar servidor configurado com identidade gerida atribuída pelo utilizador e TDE com chave gerida pelo cliente.
Observação
O Base de Dados SQL do Azure suporta chaves assimétricas (RSA) e simétricas (AES) para Encriptação de Dados Transparente gerida pelo cliente, dependendo da configuração. O suporte para chaves simétricas (AES) está atualmente em pré-visualização pública e está limitado ao Base de Dados SQL do Azure. Pode ver esta funcionalidade aparecer ao longo do tempo, dependendo da sua região e do estado de implementação do serviço. Para mais detalhes, consulte Encriptação de Dados Transparente with customer-managed keys (BYOK).
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 de Chaves do Azure e uma Chave para usar no TDE.
-
Instruções para usar um módulo de segurança de hardware (HSM) e o Azure Key Vault
- O cofre de chaves deve ter a seguinte propriedade para usar para TDE:
- exclusão suave e proteção contra limpeza
-
Instruções para usar um módulo de segurança de hardware (HSM) e o Azure Key Vault
- 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 de obter, encapsular chave, desencapsular chave
- Para usar uma chave HSM gerida Azure Key Vault, siga instruções para criar e ativar um HSM gerido usando CLI do Azure
Para obter instruções de instalação do módulo Az PowerShell, consulte Instalar o Azure PowerShell.
Para obter detalhes sobre o Azure Key Vault, consulte as instruções do PowerShell do Azure Key Vault e Como usar a exclusão suave do Azure Key Vault com o PowerShell.
Atribuir uma identidade do Microsoft Entra ao seu servidor
Se já tem um servidor, use as seguintes instruções para adicionar uma identidade Microsoft Entra ao seu servidor:
$server = Set-AzSqlServer -ResourceGroupName <SQLDatabaseResourceGroupName> -ServerName <LogicalServerName> -AssignIdentity
Se estiver a criar um servidor, use o cmdlet New-AzSqlServer com a -Identity tag 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 Azure Key Vault 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 num HSM Gerido, adicione a função RBAC local Managed HSM Crypto Service Encryption User ao servidor. Esta função permite ao servidor realizar get, wrap key, e unwrap key operações nas chaves do HSM Gerido. Para mais informações, consulte gestão de funções do Managed HSM.
Adicione a chave do Azure Key Vault ao servidor e defina o TDE Protetor
- Use o cmdlet Get-AzKeyVaultKey para obter o ID da chave do cofre de chaves.
- Use o cmdlet Add-AzSqlServerKeyVaultKey para adicionar a chave do Cofre de Chaves do Azure ao servidor.
- Use o cmdlet Set-AzSqlServerTransparentDataEncryptionProtector para definir a chave como o protetor TDE para todos os recursos do servidor.
- Utilize o cmdlet Get-AzSqlServerTransparentDataEncryptionProtector para confirmar que o protetor TDE foi configurado conforme o esperado.
Observação
Para chaves HSM gerenciadas, use a versão Az.Sql 2.11.1 do PowerShell ou superior.
Observação
O comprimento combinado do nome do cofre de chave e do nome da chave não pode exceder 94 caracteres.
Dica
Utilização de chaves Azure Key Vault versionadas e sem versão para TDE
Ao definir o protetor TDE, pode referenciar uma chave do Azure Key Vault usando uma versão específica da chave ou um identificador de chave sem versão.
Em ambos os casos, o Base de Dados SQL do Azure utiliza e resolve sempre a versão mais recente habilitada da chave no Azure Key Vault ou no Azure Key Vault Managed HSM. Use identificadores de chave sem versão para evitar incorporar uma versão específica de chave na configuração do protetor TDE.
Identificadores de chave sem versão são atualmente suportados apenas para Base de Dados SQL do Azure.
Exemplos:
Identificador de chave que inclui uma versão específica
https://<key-vault-name>.vault.azure.net/keys/<key-name>/<key-version>Identificador de chave sem versão
https://<key-vault-name>.vault.azure.net/keys/<key-name>
# add the key from Azure 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
Utilize o cmdlet Set-AzSqlDatabaseTransparentDataEncryption para ativar o TDE.
Set-AzSqlDatabaseTransparentDataEncryption -ResourceGroupName <SQLDatabaseResourceGroupName> `
-ServerName <LogicalServerName> -DatabaseName <DatabaseName> -State "Enabled"
Agora a base de dados tem o TDE ativado com uma chave de encriptação no Azure Key Vault.
Verificar o estado de encriptação e a atividade de encriptação
Utilize o Get-AzSqlDatabaseTransparentDataEncryption para obter o estado de encriptação de uma base de dados.
# get the encryption state of the database
Get-AzSqlDatabaseTransparentDataEncryption -ResourceGroupName <SQLDatabaseResourceGroupName> `
-ServerName <LogicalServerName> -DatabaseName <DatabaseName> `
Cmdlets úteis do PowerShell
- PowerShell
- da CLI do Azure
Utilize 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 de Chaves do Azure 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 Azure Key Vault do servidor.
# the key set as the TDE Protector cannot be removed Remove-AzSqlServerKeyVaultKey -KeyId <KeyVaultKeyId> -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>
Solução de problemas
Se o cofre das chaves não for encontrado, certifique-se de que está na subscrição correta.
- PowerShell
- da CLI do Azure
Get-AzSubscription -SubscriptionId <SubscriptionId>
Se não conseguir adicionar a nova chave ao servidor, ou se não conseguir atualizar a nova chave como Protetor TDE, verifique as seguintes condições:
- A chave não deveria ter data de validade.
- A chave deve ter as operações obter, encapsular chave, e desempacotar chave habilitadas.
TDE BYOK Azure Synapse Analytics
Para a documentação TDE BYOK sobre Azure Synapse Analytics, consulte Azure Synapse Analytics SQL documentation. Para obter documentação sobre Criptografia de Dados Transparente para pools SQL dedicados dentro de espaços de trabalho Synapse, consulte sobre a criptografia no Azure Synapse Analytics.