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:Banco de Dados SQL do Azure
Observação
- O TDE CMK de nível de banco de dados está disponível para o Banco de Dados SQL do Azure (todas as edições do Banco de Dados SQL). Ele não está disponível para Instância Gerenciada SQL do Azure, SQL Server local, VMs do Azure e Azure Synapse Analytics (pools SQL dedicados (anteriormente SQL DW)).
- O mesmo guia pode ser aplicado para configurar chaves gerenciadas pelo cliente no nível do banco de dados no mesmo locatário, excluindo o parâmetro de ID do cliente federado. Para obter mais informações sobre chaves gerenciadas pelo cliente no nível do banco de dados, consulte Criptografia de dados transparente (TDE) com chaves gerenciadas pelo cliente no nível do banco de dados.
Neste guia, percorremos as etapas para criar, atualizar e recuperar um Banco de Dados SQL do Azure com criptografia de dados transparente (TDE) e chaves gerenciadas pelo cliente (CMK) no nível do banco de dados, utilizando uma identidade gerenciada atribuída pelo usuário para acessar o Cofre de Chaves do Azure. O Azure Key Vault está num cliente do Microsoft Entra diferente do Banco de Dados SQL do Azure. Para obter mais informações, consulte chaves gerenciadas pelo cliente entre locatários com criptografia de dados transparente.
Observação
O Microsoft Entra ID era conhecido anteriormente como Azure Ative Directory (Azure AD).
Pré-requisitos
- Este guia pressupõe que você tenha dois locatários do Microsoft Entra.
- O primeiro consiste no recurso Banco de Dados SQL do Azure, um aplicativo Microsoft Entra multilocatário e uma identidade gerenciada atribuída pelo usuário.
- O segundo locatário abriga o Cofre de Chaves do Azure.
- Para obter instruções abrangentes sobre como configurar a CMK entre locatários e as permissões RBAC necessárias para configurar aplicativos Microsoft Entra e o Azure Key Vault, consulte um dos seguintes guias:
- A CLI do Azure versão 2.52.0 ou mais recente.
- Módulo Az PowerShell versão 10.3.0 ou superior.
- As permissões RBAC necessárias para CMK no nível do banco de dados são as mesmas permissões necessárias para a CMK no nível do servidor. Especificamente, as mesmas permissões RBAC aplicáveis ao usar o Cofre de Chaves do Azure, identidades gerenciadas e CMK entre locatários para TDE no nível do servidor são aplicáveis no nível do banco de dados. Para obter mais informações sobre gerenciamento de chaves e política de acesso, consulte Gerenciamento de chaves.
Recursos necessários para o primeiro inquilino
Para o propósito deste tutorial, assumiremos que o primeiro locatário pertence a um fornecedor independente de software (ISV) e o segundo locatário é de seu cliente. Para obter mais informações sobre esse cenário, consulte chaves gerenciadas pelo cliente entre locatários com criptografia de dados transparente.
Antes de podermos configurar o TDE para a Base de Dados SQL do Azure com uma CMK entre locatários, precisamos ter uma aplicação Microsoft Entra multilocatária configurada com uma identidade gerida atribuída pelo utilizador, atribuída como uma credencial de identidade federada para a aplicação. Siga um dos guias na secção de Pré-requisitos.
No primeiro locatário onde você deseja criar o Banco de Dados SQL do Azure, crie e configure um aplicativo Microsoft Entra multilocatário.
Crie uma identidade gerenciada atribuída pelo usuário.
Configure a identidade gerenciada atribuída pelo usuário como uma credencial de identidade federada para o aplicativo multilocatário.
Registre o nome e a ID do aplicativo. Encontre esta informação em Azure portal>Microsoft Entra ID>Aplicações empresariais e procure a aplicação criada.
Recursos necessários no segundo locatário
Observação
Os módulos Azure AD e MSOnline PowerShell foram preteridos a partir de 30 de março de 2024. Para saber mais, leia a notificação sobre descontinuação. Após essa data, o suporte para esses módulos é limitado à assistência de migração para o SDK do Microsoft Graph PowerShell e correções de segurança. Os módulos preteridos continuarão a funcionar até 30 de março de 2025.
Recomendamos migrar para o Microsoft Graph PowerShell para interagir com o Microsoft Entra ID (anteriormente Azure AD). Para perguntas comuns sobre migração, consulte as Perguntas frequentes sobre migração. Observação: As versões 1.0.x do MSOnline podem sofrer interrupções após 30 de junho de 2024.
No segundo tenant onde reside o Azure Key Vault, crie um principal de serviço (aplicação) usando o ID da aplicação registada no primeiro tenant. Aqui estão alguns exemplos de como registar a aplicação multiinquilino. Substitua
<TenantID>e<ApplicationID>pelo ID do Locatário do Cliente da ID do Microsoft Entra e pelo ID do Aplicativo do aplicativo multilocatário, respectivamente.PowerShell:
Connect-Entra -TenantID <TenantID> New-EntraServicePrincipal -AppId <ApplicationID>A CLI do Azure:
az login --tenant <TenantID> az ad sp create --id <ApplicationID>
Vá para o portal> do AzureMicrosoft Entra ID>aplicações empresariais e procure o aplicativo que foi criado.
Crie um Cofre da Chave do Azure se não tiver um e crie uma chave.
Crie ou defina a política de acesso.
- Selecione as permissões Get, Wrap Key, Unwrap Key em Permissões de Chave ao criar a política de acesso.
- Selecione o aplicativo multilocatário criado na primeira etapa na opção Principal ao criar a política de acesso.
Depois de criares a política de acesso e a chave, recupera a chave do Azure Key Vault e regista o Identificador de Chave.
Criar um novo Banco de Dados SQL do Azure com chaves gerenciadas pelo cliente no nível do banco de dados
Os exemplos seguintes mostram como criar uma base de dados no Base de Dados SQL do Azure com uma identidade gerida atribuída pelo utilizador e como definir uma chave gerida pelo cliente entre tenants ao nível da base de dados. Precisa da identidade gerida atribuída pelo utilizador para configurar uma chave gerida pelo cliente para encriptação de dados transparentes durante a fase de criação da base de dados.
No menu de recursos, expanda Base de Dados SQL do Azure e selecione bases de dados SQL.
Na lista pendente + Criar, selecione base de dados SQL.
Na guia Noções básicas do formulário Criar Banco de Dados SQL , em Detalhes do projeto, selecione a Assinatura do Azure, o grupo de recursos e o Servidor desejados para seu banco de dados. Em seguida, use um nome exclusivo para o nome do banco de dados. Se você não criou um servidor lógico para o Banco de Dados SQL do Azure, consulte Criar servidor configurado com TDE com chave gerenciada pelo cliente (CMK) entre locatários para referência.
Quando chegar à guia Segurança , selecione Configurar criptografia de dados transparente para a chave de nível de banco de dados.
No menu Criptografia de dados transparente , selecione Chave gerenciada pelo cliente (CMK) no nível do banco de dados.
Para Identidade Gerida Atribuída pelo Utilizador, selecione Configurar para ativar uma identidade da base de dados e Adicionar uma identidade gerida atribuída pelo utilizador ao recurso, caso a identidade pretendida não conste do menu Identidade. Em seguida, selecione Aplicar.
Observação
Você pode configurar a identidade do cliente federado aqui se estiver configurando a CMK entre locatários para TDE.
No menu Criptografia de dados transparente , selecione Alterar chave. Selecione a Assinatura desejada, Cofre de chaves, Chave e Versão para a chave gerida pelo cliente a ser usada para TDE. Selecione o botão Selecionar. Depois de selecionar uma chave, você também pode adicionar chaves de banco de dados adicionais, conforme necessário, usando o URI (identificador de objeto) do cofre da Chave do Azure no menu Criptografia de dados transparente .
A rotação automática de chaves também pode ser ativada no nível do banco de dados usando a caixa de seleção Rotação automática de chaves no menu Criptografia de dados transparente .
Selecione Aplicar para continuar a criar o banco de dados.
Selecione Seguinte: Configurações adicionais.
Selecione Next: Tags.
Considere usar tags do Azure. Por exemplo, a tag "Owner" ou "CreatedBy" para identificar quem criou o recurso e a tag Environment para identificar se esse recurso está em Produção, Desenvolvimento, etc. Para obter mais informações, consulte Desenvolver sua estratégia de nomenclatura e marcação para recursos do Azure.
Selecione Verificar + criar.
Na página Rever + criar , depois de rever, selecione Criar.
Observação
A criação do banco de dados falhará se a identidade gerenciada atribuída pelo usuário não tiver as permissões corretas habilitadas no cofre de chaves. A identidade gerenciada atribuída pelo usuário precisará das permissões Get, wrapKey e unwrapKey no cofre de chaves. Para obter mais informações, consulte Identidades gerenciadas para criptografia de dados transparente com chave gerenciada pelo cliente.
Atualizar um Banco de Dados SQL do Azure existente com chaves gerenciadas pelo cliente no nível do banco de dados
Os exemplos seguintes mostram como atualizar uma base de dados existente no Base de Dados SQL do Azure com uma identidade gerida atribuída pelo utilizador e como configurar uma chave gerida pelo cliente entre tenants ao nível da base de dados. Precisa de uma identidade gerida atribuída pelo utilizador para configurar uma chave gerida pelo cliente para encriptação de dados transparentes.
Para obter informações sobre como instalar a versão atual da CLI do Azure, consulte o artigo Instalar a CLI do Azure.
Atualize um banco de dados que tenha uma identidade gerida atribuída pelo utilizador e TDE gerida pelo cliente entre diferentes locatários usando o comando az sql db create. O Identificador de Chave do segundo locatário pode ser usado no campo encryption-protector. O ID do Aplicativo da aplicação multilocatária pode ser usado no campo federated-client-id.
Para obter a sua identidade gerida atribuída ao utilizador ID de Recurso, pesquise por Identidades Geridas no portal do Azure . Encontre sua identidade gerenciada e vá para Propriedades. Um exemplo do seu ID de Recurso UMI parece-se com /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>. O --encryption-protector-auto-rotation parâmetro pode ser usado para habilitar a rotação automática de chaves no nível do banco de dados.
az sql db update --resource-group $resourceGroupName --server $serverName --name mySampleDatabase --sample-name AdventureWorksLT --edition GeneralPurpose --compute-model Serverless --family Gen5 --capacity 2 --assign-identity --user-assigned-identity-id $identityid --encryption-protector $keyid --federated-client-id $federatedclientid --keys $keys --keys-to-remove $keysToRemove --encryption-protector-auto-rotation True
A lista $keys é uma lista separada por espaço de chaves que devem ser adicionadas no banco de dados e $keysToRemove é uma lista separada por espaço de chaves que devem ser removidas do banco de dados
$keys = '"https://yourvault.vault.azure.net/keys/yourkey1/6638b3667e384aefa31364f94d230000" "https://yourvault.vault.azure.net/keys/yourkey2/ fd021f84a0d94d43b8ef33154bca0000"'
$keysToRemove = '"https://yourvault.vault.azure.net/keys/yourkey3/6638b3667e384aefa31364f94d230000" "https://yourvault.vault.azure.net/keys/yourkey4/fd021f84a0d94d43b8ef33154bca0000"'
Exibir as configurações de chave gerenciadas pelo cliente no nível do banco de dados em um Banco de Dados SQL do Azure
A seguir estão exemplos de recuperação das chaves gerenciadas pelo cliente no nível do banco de dados para um banco de dados. Por padrão, o recurso Microsoft.Sql/servers/databases ARM mostra apenas o protetor TDE e a identidade gerenciada configurados no banco de dados. Para expandir a lista completa de chaves, use o parâmetro, -ExpandKeyList. Além disso, filtros como -KeysFilter "current" e um valor point-in-time (por exemplo, 2023-01-01) podem ser usados para recuperar as chaves atuais usadas e as chaves usadas no passado em um ponto específico no tempo. Esses filtros são suportados apenas para consultas de banco de dados individuais e não para consultas no nível do servidor.
Para obter informações sobre como instalar a versão atual da CLI do Azure, consulte o artigo Instalar a CLI do Azure.
# Retrieve the basic database level customer-managed key settings from a database
az sql db show --resource-group $resourceGroupName --server $serverName --name mySampleDatabase
# Retrieve the basic database level customer-managed key settings from a database and all the keys ever added
az sql db show --resource-group $resourceGroupName --server $serverName --name mySampleDatabase --expand-keys
# Retrieve the basic database level customer-managed key settings from a database and the current keys in use
az sql db show --resource-group $resourceGroupName --server $serverName --name mySampleDatabase --expand-keys --keys-filter current
# Retrieve the basic database level customer-managed key settings from a database and the keys in use at a particular point in time
az sql db show --resource-group $resourceGroupName --server $serverName --name mySampleDatabase --expand-keys --keys-filter 01-01-2015
# Retrieve all the databases in a server to check which ones are configured with database level customer-managed keys
az sql db list --resource-group $resourceGroupName --server $serverName
Listar todas as chaves em um servidor lógico
Para buscar a lista de todas as chaves (e não apenas o protetor primário) usadas por cada banco de dados no servidor, ela deve ser consultada individualmente com os filtros de chave. A seguir está um exemplo de uma consulta do PowerShell para listar cada chave no servidor lógico.
Utilize o cmdlet Get-AzSqlDatabase.
$dbs = Get-AzSqlDatabase -resourceGroupName <ResourceGroupName> -ServerName <ServerName>
foreach ($db in $dbs)
{
Get-AzSqlDatabase -DatabaseName $db.DatabaseName -ServerName $db.ServerName -ResourceGroupName $db.ResourceGroupName -ExpandKeyList
}
Revalidar a chave gerenciada pelo cliente no nível do banco de dados em um Banco de Dados SQL do Azure
Se o protetor TDE for inacessível, conforme descrito na encriptação de dados transparentes do SQL do Azure com chave gerida pelo cliente, a base de dados torna-se inacessível. Depois de corrigir o acesso à chave, use a operação de revalidação de chave para tornar a base de dados acessível novamente. Os comandos seguintes fornecem exemplos.
Para obter informações sobre como instalar a versão atual da CLI do Azure, consulte o artigo Instalar a CLI do Azure.
az sql db tde key revalidate --resource-group $resourceGroupName --server $serverName --database mySampleDatabase
Reverter a chave gerenciada pelo cliente no nível do banco de dados em um Banco de Dados SQL do Azure
Um banco de dados configurado com CMK no nível do banco de dados pode ser revertido para a criptografia no nível do servidor se o servidor estiver configurado com uma chave gerenciada pelo serviço usando os seguintes comandos.
Para obter informações sobre como instalar a versão atual da CLI do Azure, consulte o artigo Instalar a CLI do Azure.
az sql db tde key revert --resource-group $resourceGroupName --server $serverName --name mySampleDatabase