Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
Azure Synapse Analytics
Este artigo explica como usar uma chave do Azure Key Vault para a TDE (Transparent Data Encryption) no banco de dados SQL do Azure ou no Azure Synapse Analytics. Para saber mais sobre a integração da TDE com o Azure Key Vault - Suporte a Bring Your Own Key (BYOK), visite TDE com chaves gerenciadas pelo cliente no Azure Key Vault. Se você estiver procurando por instruções no portal do Azure sobre como habilitar a TDE com uma chave gerenciada pelo cliente do Azure Key Vault, confira Criar servidor configurado com identidade gerenciada atribuída pelo usuário e TDE gerenciada pelo cliente.
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. Para obter a documentação sobre o Transparent Data Encryption para pools de SQL dedicados nos workspaces do Azure Synapse, confira Criptografia do Azure Synapse Analytics.
Observação
O SQL do Azure também dá suporte ao uso de uma chave RSA armazenada em um HSM Gerenciado como Protetor de TDE. O HSM Gerenciado do Azure é um serviço de nuvem totalmente gerenciado, altamente disponível, de locatário único e compatível com padrões que permite proteger chaves criptográficas para seus aplicativos de nuvem, usando HSMs validados fips 140-2 nível 3. Saiba mais sobre o HSMs Gerenciado.
Observação
O Microsoft Entra ID era conhecido anteriormente como Azure Active Directory (Azure AD).
Pré-requisitos do PowerShell
- É necessário ter uma assinatura do Azure e ser um administrador nessa assinatura.
- [Recomendado, mas opcional] Tenha um HSM (Módulo de Segurança de Hardware) ou armazenamento de chave local para criar uma cópia local do material da chave do Protetor de TDE.
- É necessário ter o Azure PowerShell instalado e funcionando.
- Crie um Azure Key Vault e Chave para usar na TDE.
- Instruções para usar um HSM (módulo de segurança de hardware) e o Azure Key Vault
- O cofre de chaves deve ter a seguinte propriedade a ser usada para TDE:
- Exclusão temporária e proteção contra limpeza
- Instruções para usar um HSM (módulo de segurança de hardware) e o Azure Key Vault
- A chave deve ter os seguintes atributos a serem usados 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 realizar operações get, codificar chave, decodificar chave
- Para usar uma chave gerenciada por HSM, 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 do PowerShell, confira 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 reversível do Azure Key Vault com o 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 estiver criando um servidor, use o cmdlet New-AzSqlServer com a tag -Identidade para adicionar uma identidade do 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 servidor
Use o cmdlet Set-AzureRmKeyVaultAccessPolicy 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 de RBAC local 'Usuário de criptografia do serviço de criptografia de HSM gerenciado' ao servidor. Isso permite que o servidor execute operações obter, encapsular e desencapsular chave, nas chaves no HSM gerenciado. Para obter mais informações, consulte Gerenciamento de funções do HSM gerenciado.
Adicionar a chave do Azure Key Vault ao servidor e definir o Protetor de TDE
- Use o cmdlet Get-AzKeyVaultKey para recuperar a ID da chave do cofre de chaves.
- Use o cmdlet Add-AzSqlServerKeyVaultKey para adicionar a chave do Azure Key Vault ao servidor.
- Use o cmdlet Set-AzureRmSqlServerTransparentDataEncryptionProtector para definir a chave como o protetor de TDE a todos os recursos do servidor.
- Use o cmdlet Get-AzureRmSqlServerTransparentDataEncryptionProtector para confirmar que o protetor de 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 para o nome do cofre de chaves e o nome da chave não pode exceder 94 caracteres.
Dica
Um exemplo de KeyId do Azure Key Vault: https://contosokeyvault.vault.azure.net/keys/Key1/<key-id>
Um exemplo de KeyId do HSM gerenciado:
https://contosoMHSM.managedhsm.azure.net/keys/myrsakey
# 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 TDE
Use o cmdlet Set-AzureRMSqlDatabaseTransparentDataEncryption para ativar a TDE.
Set-AzSqlDatabaseTransparentDataEncryption -ResourceGroupName <SQLDatabaseResourceGroupName> `
-ServerName <LogicalServerName> -DatabaseName <DatabaseName> -State "Enabled"
Agora, o banco de dados ou data warehouse tem o TDE habilitado com uma chave de criptografia no Azure Key Vault.
Verificar o estado de criptografia e a atividade de criptografia
Use o Get-AzSqlDatabaseTransparentDataEncryption para obter o estado de criptografia para 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-AzureRMSqlDatabaseTransparentDataEncryption para desativar a TDE.
Set-AzSqlDatabaseTransparentDataEncryption -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName> ` -DatabaseName <DatabaseName> -State "Disabled"Use o cmdlet Get-AzSqlServerKeyVaultKey para retornar a lista de chaves do Azure Key Vault 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 de chaves não puder ser encontrado, verifique se você está na assinatura 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 de TDE, verifique o seguinte:
- A chave não deve ter uma data de validade.
- A chave deve ter as operações get, codificar chave e decodificar chave habilitadas.
Conteúdo relacionado
- Saiba como girar o protetor de TDE de um servidor para atender aos requisitos de segurança: Girar o Protetor de TDE usando PowerShell.
- Saiba como remover um Protetor de TDE potencialmente comprometido: Remover uma chave potencialmente comprometida.