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:SQL Server
Neste artigo, você instala e configura o Conector SQL Server para Azure Key Vault e configura Transparent Data Encryption (TDE) usando uma chave no Azure Key Vault.
Pré-requisitos
Antes de começar a usar Azure Key Vault com sua instância de SQL Server, verifique se você atende aos seguintes pré-requisitos:
Você precisa ter uma assinatura do Azure.
Instale o Azure PowerShell, versão 5.2.0 ou posterior.
Criar um tenant do Microsoft Entra.
Examine os princípios do armazenamento de EKM (Gerenciamento Extensível de Chaves) com Azure Key Vault. Consulte Gerenciamento extensível de chaves usando Azure Key Vault (SQL Server).
Você pode modificar o registro no computador SQL Server.
Instale a versão do Pacote Redistribuível do C++ para Visual Studio baseada na versão do SQL Server que está sendo executada:
Versão do SQL Server Versão do Pacote Redistribuível do Visual Studio C++ 2008, 2008 R2, 2012, 2014 Pacotes Redistribuíveis do Visual C++ para o Visual Studio 2013 2016, 2017, 2019, 2022, 2025 Pacotes Redistribuíveis do Visual C++ para Visual Studio 2015 Leia Acessar o Azure Key Vault protegido por firewall se você pretende usar o Conector do SQL Server para Azure Key Vault protegido por firewall ou com um servidor proxy.
Note
No SQL Server 2022 (16.x) 12 e versões posteriores, SQL Server em Linux dá suporte ao Gerenciamento extensível de chaves TDE com Azure Key Vault. Não é necessário seguir as etapas 3 e 4 deste guia para o SQL Server em Linux.
Fluxo rápido
- Selecione um modelo de autenticação na Etapa 1: configurar o modelo de autenticação.
- Crie um cofre de chaves e uma chave na Etapa 2: criar um cofre de chaves.
- Instale o conector na Etapa 3: instalar o conector SQL Server.
- Configure o pré-requisito do Registro na Etapa 4: Adicionar chave do Registro para dar suporte ao provedor EKM.
- Configure SQL Server e valide a criptografia na Etapa 5: Configurar SQL Server.
Etapa 1: Configurar o modelo de autenticação
Importante
Escolha seu modelo de autenticação antes de continuar:
- Use a guia Entidade de Serviço para SQL Server local.
- Use a guia Identidade Gerenciada para o SQL Server em VMs do Azure ou habilitado pelo Azure Arc, nos casos em que há suporte para identidade gerenciada.
Matriz de suporte do modelo de autenticação:
| Modelo de autenticação | Versão do SQL Server | Onde SQL Server é executado | Supported |
|---|---|---|---|
| Entidade de serviço | Versões com suporte abordadas por este artigo | Local, VM do Azure, SQL Server habilitado pelo Azure Arc | Sim |
| Identidade gerenciada | SQL Server 2022 CU17 e posterior | Azure VM | Sim |
| Identidade gerenciada | SQL Server 2025 e posterior | SQL Server habilitado pelo Azure Arc | Sim |
| Identidade gerenciada | Any | On-premises | No |
Para conceder permissões de acesso de instância do SQL Server ao cofre de chaves do Azure, você precisa de uma conta de entidade de serviço na ID do Microsoft Entra.
Entre no portal do Azure e execute uma das seguintes etapas:
Selecione o botão Microsoft Entra ID.
Selecione Mais serviços e, no painel Todos os serviços, digite Microsoft Entra ID.
Registre um aplicativo com Microsoft Entra ID executando as etapas a seguir. Para obter instruções passo a passo detalhadas, consulte a seção Obter uma identidade para o aplicativo da postagem no blog do Azure Key Vault, Azure Key Vault – Passo a passo.
Na seção Gerenciar do recurso Microsoft Entra ID, selecione Registros de aplicativo.
Na página Registros de aplicativo, selecione Novo registro.
No painel Registrar um aplicativo, insira o nome do aplicativo voltado para o usuário e selecione Registrar.
No painel esquerdo, selecione Certificados & segredos>Segredos do cliente>Novo segredo do cliente.
Em Adicionar um segredo do cliente, insira uma descrição e uma validade apropriada e selecione Adicionar. Não é possível escolher um período de expiração superior a 24 meses. Para saber mais, confira Adicionar um segredo do cliente.
No painel
Certificados & segredos , emValor , selecione o botãoCopiar ao lado do valor do segredo do cliente para usá-lo para criar uma chave assimétrica no SQL Server.
No painel esquerdo, selecione Visão geral e, na caixa ID do aplicativo (cliente), copie o valor para usá-lo para criar uma chave assimétrica em SQL Server.
Etapa 2: Crie um cofre de chaves
Selecione o método que deseja usar para criar um cofre de chaves.
Note
Há suporte apenas para o Azure Key Vault e o HSM Gerenciado do Azure Key Vault. Não há suporte para O HSM na Nuvem do Azure.
Criar um cofre de chaves usando o portal do Azure
Para criar um cofre de chaves usando o portal Azure, consulte Início Rápido: Criar um cofre de chaves usando o portal Azure.
Controle de acesso baseado em papéis do Azure
Use Azure RBAC (controle de acesso baseado em função) para gerenciar o acesso ao Azure Key Vault. Não use políticas de acesso herdadas. As políticas de acesso herdadas têm vulnerabilidades de segurança conhecidas, não têm suporte para Privileged Identity Management (PIM) e não devem ser usadas para cargas de trabalho e dados críticos. Para obter mais informações sobre permissões de RBAC do Azure Key Vault, consulte Funções internas do Azure para operações de plano de dados do Key Vault.
Vá para o recurso do cofre de chaves que você criou e selecione a configuração Controle de acesso (IAM).
Selecione Adicionar>Adicionar atribuição de função.
O aplicativo EKM ou a identidade gerenciada precisa da função Key Vault Crypto Service Encryption User para realizar operações de empacotamento e desempacotamento. Procure por Usuário de Criptografia do Serviço Key Vault e selecione a função. Selecione Próximo.
Na guia Membros, selecione a opção Selecionar membros e pesquise o aplicativo Microsoft Entra ou a identidade gerenciada que você criou na Etapa 1. Selecione o aplicativo ou a identidade gerenciada e, em seguida, o botão Selecionar .
Clique em Revisar + atribuir duas vezes para concluir a atribuição de função.
Criar uma chave
O usuário que cria a chave precisa da função Administrador do Cofre de Chaves. Assim como nas etapas anteriores, adicione o membro criando a chave e atribua a função.
No painel Cofre de Chaves, selecione Chaves e, em seguida, selecione a opção Gerar/Importar. Essa ação abre o painel Criar uma chave . Selecione a opção Gerar e insira um nome exclusivo para a chave. O Conector do SQL Server exige que o nome da chave use somente os caracteres "a-z", "A-Z", "0-9" e "-", com um limite de 26 caracteres.
Use o tipo de chave RSA e o tamanho da chave RSA2048. No momento, o EKM oferece suporte apenas a uma chave RSA. Defina as datas de ativação e término conforme apropriado e defina Habilitado como Sim.
Configurar um HSM Gerenciado Azure Key Vault (opcional)
Azure Key Vault HSM gerenciado (Módulo de Segurança de Hardware) dá suporte ao SQL Server, ao SQL Server em Máquinas Virtuais do Azure (VMs), quando você usa a versão mais recente do Conector do SQL Server, e ao SQL do Azure. O HSM gerenciado é um serviço HSM totalmente gerenciado, altamente disponível e de locatário único. O HSM gerenciado fornece uma base segura para operações criptográficas e armazenamento de chaves. O HSM gerenciado é projetado para atender aos mais rigorosos requisitos de segurança e conformidade.
A etapa 2 mostra como criar um cofre de chaves e uma chave em Azure Key Vault. Opcionalmente, você pode usar um HSM gerenciado Azure Key Vault para armazenar ou criar uma chave para o Conector SQL Server. Siga estas etapas:
Crie um HSM gerenciado Azure Key Vault usando o portal Azure, o CLI do Azure, o PowerShell ou um modelo do ARM.
Ative o HSM gerenciado. Somente os administradores designados atribuídos durante a criação podem ativá-lo. No portal Azure, selecione o recurso HSM Gerenciado e, em seguida, selecione Baixar Domínio de Segurança no menu Visão Geral. Siga um dos guias de início rápido para ativar o HSM Gerenciado.
Conceda permissões para que a entidade de serviço do Microsoft Entra ou a identidade gerenciada acesse o HSM gerenciado. A função de Administrador do HSM Gerenciado não concede permissões para criar uma chave. Assim como na etapa 2, a aplicação EKM ou a identidade gerenciada precisa da função Usuário de Criptografia do HSM Gerenciado ou Usuário de Criptografia de Serviço de Criptografia do HSM Gerenciado para executar operações de empacotamento e desempacotamento. Para obter mais informações, confira Funções internas do RBAC local para o HSM gerenciado.
No menu do serviço HSM Gerenciado do Azure Key Vault, em Configuração, selecione Chaves. Na janela Chaves, selecione Gerar/Importar/Restaurar Backup para criar uma chave ou importar uma chave existente.
Note
Algoritmos RSA-HSM_2048 e RSA-HSM_3072 têm suporte a partir da Atualização Cumulativa 13 do SQL Server 2022 (16.x).
O Azure Key Vault Managed HSM oferece suporte à rotação automática de chaves. Para saber mais, confira Configurar rotação automática de chave no HSM gerenciado do Azure.
O HSM gerenciado dá suporte a conexões de ponto de extremidade privado. Para obter mais informações, consulte Integrar o HSM gerenciado com o Link Privado do Azure. Nessa configuração, você deve habilitar a opção Ignorar serviços confiáveis da Microsoft na configuração Rede do HSM Gerenciado do Azure Key Vault.
Etapa 3: Instalação do Conector do SQL Server
Faça com que um administrador de SQL Server baixe a versão mais recente do SQL Server Connector para Microsoft Azure Key Vault do Centro de Download da Microsoft e execute o instalador.
Por padrão, o conector é instalado em C:\Program Files\SQL Server Connector for Microsoft Azure Key Vault. Você pode alterar esse local durante a instalação. Se você alterá-lo, ajuste os scripts na próxima seção.
Uma instalação bem-sucedida coloca Microsoft.AzureKeyVaultService.EKM.dll no computador. Este assembly é a DLL do provedor criptográfico EKM. Registre-o com SQL Server usando a instruçãoCREATE CRYPTOGRAPHIC PROVIDER.
O instalador também oferece scripts de exemplo para criptografia de SQL Server.
Para obter explicações de código de erro, configurações ou tarefas de manutenção, consulte:
- Instruções de manutenção para o Conector do SQL Server
- Explicações de código de erro para o Conector do SQL Server
Etapa 4: adicionar chave do registro para oferecer suporte ao provedor EKM
Warning
Somente um administrador SQL Server que sabe exatamente o que está fazendo deve modificar o registro. Alterações incorretas podem causar sérios problemas. Faça backup do registro antes de fazer qualquer alteração para que você possa restaurá-lo se ocorrer um problema.
Execute regedit para abrir o Editor do Registro.
Crie uma
SQL Server Cryptographic Providerchave do Registro emHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Cryptographic Provider.Clique com o botão direito do mouse na chave
SQL Server Cryptographic Providerdo Registro e selecione Permissões.Conceda Controle Total na chave
SQL Server Cryptographic Providerpara a conta de usuário que executa o serviço do SQL Server.
Selecione Aplicar e, em seguida, OK.
Feche o Editor do Registro e reinicie o serviço SQL Server.
Note
Se você usa TDE com EKM ou Azure Key Vault em uma instância de cluster de failover, adicione também
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Cryptographic Providerà rotina de ponto de verificação do Registro do Cluster para que o registro seja sincronizado entre os nós, facilitando a recuperação do banco de dados após o failover e a rotação de chaves.Execute o seguinte comando do PowerShell para adicionar a chave do Registro à rotina de ponto de verificação:
Add-ClusterCheckpoint -RegistryCheckpoint "SOFTWARE\Microsoft\SQL Server Cryptographic Provider" -Resourcename "SQL Server"
Etapa 5: configurar o SQL Server
Confira B. Perguntas frequentes para ver uma observação sobre os níveis de permissão mínimos necessários para cada ação nesta seção.
Fase 1: Configurar o provedor criptográfico e as credenciais em master
Escolha seu modelo de autenticação e siga as etapas correspondentes.
Execute sqlcmd ou abra o SQL Server Management Studio.
Configure o SQL Server para usar o EKM executando o seguinte script do Transact-SQL:
-- Enable advanced options. USE master; GO EXEC sp_configure 'show advanced options', 1; GO RECONFIGURE; GO -- Enable EKM provider EXEC sp_configure 'EKM provider enabled', 1; GO RECONFIGURE;Registre o Conector do SQL Server como um provedor EKM com o SQL Server.
Crie um provedor criptográfico usando o Conector do SQL Server, que é um provedor EKM do Azure Key Vault. Neste exemplo, o nome do provedor é
AzureKeyVault_EKM.CREATE CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM FROM FILE = 'C:\Program Files\SQL Server Connector for Microsoft Azure Key Vault\Microsoft.AzureKeyVaultService.EKM.dll'; GONote
O tamanho do caminho do arquivo não pode ultrapassar 256 caracteres.
Configure uma credencial do SQL Server para um logon do SQL Server para usar o cofre de chaves.
Adicione uma credencial a cada logon que executa a criptografia usando uma chave do cofre de chaves. Há um mapeamento um-para-um entre credenciais e logons - cada logon deve ter uma credencial exclusiva.
Modifique o script Transact-SQL abaixo das seguintes maneiras:
Edite o argumento
IDENTITY(DocsSampleEKMKeyVault) para apontar para o Cofre de Chaves do Azure.- Se estiver usando o Azure global, substitua o argumento
IDENTITYpelo nome do seu Azure Key Vault da Etapa 2: Criar um cofre de chaves. - Se você estiver usando uma nuvem privada do Azure (por exemplo, Azure Governamental, Microsoft Azure operado pela 21Vianet ou Azure Alemanha), substitua o argumento
IDENTITYpelo URI do cofre retornado em Criar um cofre de chaves e uma chave por meio do PowerShell. Não incluahttps://no URI do cofre de chaves.
- Se estiver usando o Azure global, substitua o argumento
Substitua a primeira parte do
SECRETargumento pela ID do cliente Microsoft Entra da Etapa 1: configurar o modelo de autenticação. Nesse exemplo, a ID do Cliente éd956f6b9xxxxxxx.Importante
Remova os hifens da ID do aplicativo (cliente).
Conclua a segunda parte do
SECRETargumento com o Segredo do Cliente da Etapa 1. A string final é uma longa sequência de letras e números sem hífens (exceto quaisquer hífens no próprio Client Secret).
USE master; CREATE CREDENTIAL sysadmin_ekm_cred -- Set IDENTITY to the vault name (public Azure) or full vault hostname without https:// (sovereign clouds / Managed HSM) -- See https://dotnet.territoriali.olinfo.it/azure/key-vault/general/about-keys-secrets-certificates#dns-suffixes-for-base-url WITH IDENTITY = 'DocsSampleEKMKeyVault', --<----Application (Client) ID ---><--Microsoft Entra app (Client) ID secret--> SECRET = 'd956f6b9xxxxxxxyrA8X~PldtMCvUZPxxxxxxxx' FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM; -- Add the credential to the SQL Server administrator's domain login ALTER LOGIN [<domain>\<login>] ADD CREDENTIAL sysadmin_ekm_cred;Para obter um exemplo de como usar variáveis e remover hifens programaticamente da ID do cliente, consulte CREATE CREDENTIAL.
Abra a chave Azure Key Vault em sua instância de SQL Server.
Se você criou uma nova chave ou importou uma chave assimétrica na Etapa 2: Criar um cofre de chaves, abra a chave em SQL Server usando
CREATE ASYMMETRIC KEY.Importante
Conclua os pré-requisitos do Registro antes de executar esta etapa.
Nos seguintes exemplos:
- Substitua
EKMSampleASYKeypelo nome que você deseja usar no SQL Server. - Substitua
ContosoRSAKey0pelo nome da chave em Azure Key Vault ou HSM Gerenciado.
Use um nome de chave sem versão (recomendado para a maioria dos cenários):
CREATE ASYMMETRIC KEY EKMSampleASYKey FROM PROVIDER [AzureKeyVault_EKM] WITH PROVIDER_KEY_NAME = 'ContosoRSAKey0', CREATION_DISPOSITION = OPEN_EXISTING;Use uma versão de chave específica quando precisar fixar operações em uma versão:
CREATE ASYMMETRIC KEY EKMSampleASYKey FROM PROVIDER [AzureKeyVault_EKM] WITH PROVIDER_KEY_NAME = 'ContosoRSAKey0/1a4d3b9b393c4678831ccc60def75379', CREATION_DISPOSITION = OPEN_EXISTING;Neste exemplo,
1a4d3b9b393c4678831ccc60def75379é a versão de chave específica que SQL Server usa para operações de banco de dados.- Substitua
Crie um novo logon usando a chave assimétrica no SQL Server que você criou na etapa anterior.
-- Create a login that associates the asymmetric key with this login CREATE LOGIN TDE_Login FROM ASYMMETRIC KEY EKMSampleASYKey;Mova o mapeamento de credenciais do logon do administrador original para o logon criado a partir da chave assimétrica.
SQL Server usa o logon criado a partir da chave assimétrica (
TDE_Login) para operações EKM. Para garantir que SQL Server possa acessar Azure Key Vault durante operações de criptografia e recuperação, mapeie a credencial paraTDE_Login, em vez do logon de instalação original.-- Remove the service principal credential from the original setup login ALTER LOGIN [<domain>\<login>] DROP CREDENTIAL sysadmin_ekm_cred; -- Map the service principal credential to the login created from the asymmetric key ALTER LOGIN TDE_Login ADD CREDENTIAL sysadmin_ekm_cred;
Fase 2: Criptografar e validar o banco de dados do usuário
Configure o banco de dados de usuário para ser criptografado
Crie um banco de dados de teste para criptografar usando a chave Azure Key Vault.
-- Create a test database for the TDE example. CREATE DATABASE TestTDE;Crie uma chave de criptografia de banco de dados usando a chave assimétrica do servidor (
EKMSampleASYKey).USE TestTDE; -- Create a DEK protected by the EKM asymmetric key. CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_256 ENCRYPTION BY SERVER ASYMMETRIC KEY EKMSampleASYKey;Habilite o TDE no banco de dados definindo
ENCRYPTION ON.-- Enable TDE for the database. ALTER DATABASE TestTDE SET ENCRYPTION ON;
Verificar o uso da chave e o estado de criptografia
masterNo banco de dados, execute a consulta Transact-SQL a seguir para verificar se a chave assimétrica EKM existe e capturar sua impressão digital.SELECT name, algorithm_desc, thumbprint FROM sys.asymmetric_keys;A instrução retorna uma saída semelhante à seguinte:
name algorithm_desc thumbprint EKMSampleASYKey RSA_2048 <key thumbprint>No banco de dados do usuário (
TestTDE), execute a consulta Transact-SQL a seguir para verificar se o TDE está habilitado e se a chave de criptografia do banco de dados está protegida por uma chave assimétrica.SELECT encryptor_type, encryption_state_desc, encryptor_thumbprint FROM sys.dm_database_encryption_keys WHERE database_id = DB_ID('TestTDE');A instrução retorna uma saída semelhante à seguinte:
encryptor_type encryption_state_desc encryptor_thumbprint ASYMMETRIC KEY ENCRYPTED <key thumbprint>Confirme se
encryptor_thumbprintcorresponde à impressão digital retornada desys.asymmetric_keys. Uma incompatibilidade geralmente indica que a chave de criptografia do banco de dados é protegida por uma chave diferente do esperado.
Limpeza
Use as etapas de limpeza que correspondem ao modelo de autenticação configurado.
Limpe os objetos de teste que você criou neste procedimento.
-- CLEAN UP: shared objects + service principal credential USE master; GO ALTER DATABASE [TestTDE] SET SINGLE_USER WITH ROLLBACK IMMEDIATE; DROP DATABASE [TestTDE]; GO DROP LOGIN [TDE_Login]; GO DROP ASYMMETRIC KEY [EKMSampleASYKey]; DROP CRYPTOGRAPHIC PROVIDER [AzureKeyVault_EKM]; GO DROP CREDENTIAL [sysadmin_ekm_cred]; GOExamine se você deve remover a chave do
SQL Server Cryptographic ProviderRegistro.Importante
A
SQL Server Cryptographic Providerchave do Registro não é removida automaticamente depois que você exclui as chaves EKM.Exclua essa chave do Registro somente quando você não precisar mais de EKM na instância. Excluí-lo cedo demais pode comprometer o funcionamento do EKM e as operações de recuperação.
Caminho do registro:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Cryptographic Provider
Rotacionar chaves assimétricas para TDE com Azure Key Vault
Use um guia operacional dedicado para etapas de rotação de chaves, incluindo scripts específicos de autenticação, verificação e verificações de segurança:
Importante
Não exclua as versões anteriores da chave após uma rotação. Versões anteriores ainda podem ser necessárias para restaurar backups, arquivos de log e artefatos de recuperação mais antigos.