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: SQL Server
Neste artigo, instala e configura o SQL Server Connector para Azure Key Vault, e depois configura o Encriptação de Dados Transparente (TDE) utilizando uma chave no Azure Key Vault.
Prerequisites
Antes de começar a usar o Azure Key Vault com a sua instância do SQL Server, certifique-se de que cumpre os seguintes pré-requisitos:
Você deve ter uma assinatura do Azure.
Instale o Azure PowerShell versão 5.2.0 ou posterior.
Crie um tenant do Microsoft Entra.
Revise os princípios do armazenamento de Gestão Extensível de Chaves (EKM) com o Azure Key Vault. Veja Gestão de Chaves Extensível Usando Azure Key Vault (SQL Server).
Pode modificar o registo no computador SQL Server.
Instale a versão do Visual Studio C++ Redistributable baseada na versão do SQL Server que você está executando:
Versão do SQL Server Versão redistribuível do Visual Studio C++ 2008, 2008 R2, 2012, 2014 Pacotes do Visual C++ Redistributable para Visual Studio 2013 2016, 2017, 2019, 2022, 2025 Visual C++ Redistributable para Visual Studio 2015 Leia Aceder ao Azure Key Vault por trás de uma firewall se tenciona utilizar o Conector do SQL Server para o Azure Key Vault por trás de uma firewall ou com um servidor proxy.
Note
No SQL Server 2022 (16.x) CU 12 e em versões posteriores, o SQL Server no Linux suporta a Gestão Extensível de Chaves (TDE) com o Azure Key Vault. As etapas 3 e 4 deste guia não são necessárias para o SQL Server no Linux.
Fluxo rápido
- Selecione um modelo de autenticação no Passo 1: Configure o modelo de autenticação.
- Crie um cofre de chaves e uma chave no Passo 2: Crie um cofre de chaves.
- Instale o conector no Passo 3: Instale o SQL Server Connector.
- Configure o pré-requisito do registo no Passo 4: Adicionar chave do registo para suportar o fornecedor EKM.
- Configure o SQL Server e valide a encriptação no Passo 5: Configure o SQL Server.
Passo 1: Configurar o modelo de autenticação
Importante
Escolha o seu modelo de autenticação antes de continuar:
- Use o separador principal de serviço para SQL Server on-premises.
- Use o separador Identidade Gerida para o SQL Server em VMs Azure ou o SQL Server ativado pelo Azure Arc, onde a identidade gerida é suportada.
Matriz de suporte ao modelo de autenticação:
| Modelo de autenticação | Versão do SQL Server | Onde o SQL Server corre | Suportado |
|---|---|---|---|
| Serviço principal | Versões suportadas abordadas por este artigo | On-premises, Azure VM, SQL Server ativado pelo Azure Arc | Sim |
| Identidade gerenciada | SQL Server 2022 CU17 e posteriores | Azure VM | Sim |
| Identidade gerenciada | SQL Server 2025 e posteriores | SQL Server ativado pelo Azure Arc | Sim |
| Identidade gerenciada | Any | On-premises | No |
Para conceder permissões de acesso à instância do SQL Server ao cofre de chaves do Azure, precisa-se de uma conta principal de serviço no Microsoft Entra ID.
Inicie sessão no portal Azure e siga um dos seguintes passos:
Selecione o botão Microsoft Entra ID.
Selecione Mais serviços e, em seguida, no painel Todos os serviços, digite Microsoft Entra ID.
Registe uma candidatura com o Microsoft Entra ID seguindo os seguintes passos. Para obter instruções detalhadas passo a passo, consulte a seção Obter uma identidade para o aplicativo da postagem do blog Azure Key Vault, Azure Key Vault – Step by Step.
Na seção Gerenciar do recurso ID do Microsoft Entra, selecione Registros de aplicativo.
Na página Registos na aplicação, selecione Novo registo.
No painel Registrar um aplicativo, insira o nome voltado para o usuário do aplicativo 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 expiração apropriada e selecione Adicionar. Não pode escolher um período de validade superior a 24 meses. Para obter mais informações, veja Adicionar um segredo do cliente.
No painel
de Certificados & Segredos , emValor , selecione o botãoCopiar ao lado do valor do segredo do cliente para o usar e criar uma chave assimétrica no SQL Server.
No painel esquerdo, selecione Visão Geral e depois, na caixa ID da Aplicação (cliente), copie o valor para o usar para criar uma chave assimétrica no SQL Server.
Etapa 2: Criar um cofre de chaves
Selecione o método que deseja usar para criar um cofre de chaves.
Note
Apenas o Azure Key Vault e o Azure Key Vault Managed HSM são suportados. O Azure Cloud HSM não é suportado.
Criar um cofre de chaves usando o portal do Azure
Para criar um cofre de chaves usando o portal Azure, veja Quickstart: Criar um cofre de chaves usando o portal Azure.
Controle de acesso baseado em funções no Azure
Use o controlo de acesso baseado em papéis (RBAC) do Azure para gerir o acesso ao Azure Key Vault. Não uses políticas de acesso legadas. As políticas de acesso legadas têm vulnerabilidades de segurança conhecidas, não suportam Privileged Identity Management (PIM) e não devem ser usadas para dados críticos e cargas de trabalho. Para obter mais informações sobre as permissões RBAC do Cofre de Chaves do Azure, consulte funções internas incorporadas do Azure para operações do plano de dados do Cofre de Chaves.
Vá ao recurso do cofre de chaves que criaste e seleciona a definição Controle de acesso (IAM).
Selecione Adicionar>Adicionar atribuição de função.
A aplicação EKM ou identidade gerida precisa da função Key Vault Crypto Service Encryption User para realizar operações de encapsulamento e desencapsulamento. Pesquise por Key Vault Crypto Service Encryption User e selecione a função. Selecione Seguinte.
No separador Membros, selecione a opção Selecionar membros e depois procure a aplicação Microsoft Entra ou identidade gerida que criou no Passo 1. Selecione a aplicação ou identidade gerida e depois o botão Select .
Selecione Revisar e atribuir duas vezes para concluir a atribuição de função.
Criar uma chave
O utilizador que cria a chave precisa da função Administrador do Cofre de Chaves. Assim como as etapas anteriores, adicione o membro que está criando a chave e atribua a função.
No painel Cofre de Chaves , selecione Chaves e, em seguida, selecione a opção Gerar/Importar. Esta ação abre o painel de Criar uma tecla . Selecione a opção Gerar e insira um nome para a chave. O SQL Server Connector requer que o nome da chave use apenas os caracteres "a-z", "A-Z", "0-9" e "-", com um limite de 26 caracteres.
Use o tipo de chave RSA e o tamanho de chave RSA como 2048 . Atualmente, o EKM suporta apenas uma chave RSA. Defina as datas de ativação e expiração conforme apropriado e defina Ativado como Sim.
Configurar um Azure Key Vault Managed HSM (opcional)
O Azure Key Vault Managed HSM (Hardware Security Module) suporta SQL Server e SQL Server nas Máquinas Virtuais do Azure (VMs) quando utiliza a versão mais recente do SQL Server Connector e do SQL do Azure. O Managed HSM é um serviço HSM de locatário único, altamente disponível e totalmente gerido. O HSM gerenciado fornece uma base segura para operações criptográficas e armazenamento de chaves. O HSM gerenciado foi projetado para atender aos mais rigorosos requisitos de segurança e conformidade.
O Passo 2 mostra como criar um cofre de chaves e uma chave no Azure Key Vault. Pode, opcionalmente, usar um Azure Key Vault Managed HSM para armazenar ou criar uma chave para o SQL Server Connector. Siga estes passos:
Crie um HSM gerido pelo Azure Key Vault usando o portal Azure, o CLI do Azure, PowerShell ou um template ARM.
Ative o HSM gerenciado. Apenas os administradores designados designados durante a criação podem ativá-la. No portal Azure, selecione o recurso HSM Gerido e depois selecione Download Security Domain no menu Visão Geral. Siga um dos guias de iniciação rápida para ativar o seu HSM gerido.
Conceder permissões ao principal do serviço Microsoft Entra ou identidade gerida para aceder ao HSM Gerido. A função Managed HSM Administrator não concede permissões para criar uma chave. À semelhança do passo 2, a aplicação EKM ou identidade gerida necessita da função Utilizador de Criptografia do HSM Gerido ou da função Utilizador de Encriptação de Serviço de Criptografia do HSM Gerido para realizar operações de encapsulamento e desencapsulamento. Para obter mais informações, consulte funções internas locais do RBAC para 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
Os algoritmos RSA-HSM_2048 e RSA-HSM_3072 são suportados a partir da Atualização Cumulativa 13 do SQL Server 2022 (16.x).
O Azure Key Vault Managed HSM suporta rotação automática de chaves. Para obter mais informações, consulte Configurar a rotação automática das chaves no Azure Managed HSM.
O HSM gerenciado oferece suporte a conexões de ponto de extremidade privadas. Para obter mais informações, consulte Integrar HSM gerido com Azure Private Link. Nesta configuração, deve ativar a opção ignorar serviços fidedignos da Microsoft na definição Rede do Azure Key Vault Managed HSM.
Etapa 3: Instalar o SQL Server Connector
Pede a um administrador do SQL Server para descarregar a versão mais recente do SQL Server Connector para Microsoft Azure Key Vault no Centro de Transferências da Microsoft e executar o instalador.
Por padrão, o conector é instalado em C:\Program Files\SQL Server Connector for Microsoft Azure Key Vault. Podes mudar esta localização durante a configuração. Se o alterares, ajusta os scripts na secção seguinte.
Uma instalação bem-sucedida instala Microsoft.AzureKeyVaultService.EKM.dll na máquina. Este assembly é a DLL do fornecedor EKM criptográfico. Registe-o no SQL Server usando a CREATE CRYPTOGRAPHIC PROVIDER instrução.
O instalador também oferece scripts de exemplo para encriptação do SQL Server.
Para explicações de código de erro, definições de configuração ou tarefas de manutenção, veja:
- Instruções de manutenção para o SQL Server Connector
- Explicações do código de erro para o SQL Server Connector
Etapa 4: Adicionar chave do Registro para dar suporte ao provedor EKM
Warning
Só um administrador do SQL Server que saiba exatamente o que está a fazer deve modificar o registo. Alterações incorretas podem causar problemas graves. Faça uma cópia de segurança do registo antes de fazer qualquer alteração, para poder restaurá-lo caso ocorra algum problema.
Execute regedit para abrir o Editor do Registro.
Crie uma
SQL Server Cryptographic Providerchave de registo emHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Cryptographic Provider.Clique com o botão direito do rato na chave de registo
SQL Server Cryptographic Providere, em seguida, selecione Permissões.Atribua Controlo Total na chave
SQL Server Cryptographic Providerà conta de utilizador que executa o serviço SQL Server.
Selecione Aplicar e, em seguida, OK.
Feche o Editor do Registro e reinicie o serviço SQL Server.
Note
Se utilizar TDE com EKM ou o Azure Key Vault numa instância de cluster de ativação pós-falha, adicione também
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Cryptographic Providerao procedimento de ponto de verificação do registo do cluster, para que o registo seja sincronizado entre os nós, o que facilita a recuperação da base de dados após a ativação pós-falha e a rotação de chaves.Execute o seguinte comando PowerShell para adicionar a chave do registo à rotina de checkpoint:
Add-ClusterCheckpoint -RegistryCheckpoint "SOFTWARE\Microsoft\SQL Server Cryptographic Provider" -Resourcename "SQL Server"
Etapa 5: Configurar o SQL Server
Para obter uma observação sobre os níveis mínimos de permissão necessários para cada ação nesta seção, consulte B. Perguntas freqüentes.
Fase 1: Configurar o fornecedor e credenciais criptográficas em master
Escolha o seu modelo de autenticação e siga os passos correspondentes.
Execute sqlcmd ou abra o SQL Server Management Studio.
Configure o SQL Server para usar o EKM executando o seguinte script 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 SQL Server Connector como um provedor EKM com o SQL Server.
Crie um provedor criptográfico usando o SQL Server Connector, que é um provedor EKM para o Cofre de Chaves do Azure. 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 comprimento do caminho do arquivo não pode exceder 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 login que realize encriptação usando uma chave do cofre de chaves. Existe um mapeamento um-para-um entre credenciais e logins – cada login deve ter uma credencial única.
Modifique esse script Transact-SQL das seguintes maneiras:
Edite o argumento
IDENTITY(DocsSampleEKMKeyVault) para apontar para o seu Azure Key Vault.- Se estiver a utilizar Azureglobal, substitua o argumento
IDENTITYpelo nome do seu cofre de chaves do Azure a partir do Passo 2: Criar um cofre de chaves. - Se estiver a usar uma nuvem privada do Azure (por exemplo, Azure Government, Microsoft Azure operado pela 21Vianet ou Azure Alemanha), substitua o argumento
IDENTITYpelo URI do cofre devolvido em Criar um cofre de chaves e uma chave com o PowerShell. Não incluahttps://no URI do cofre de chaves.
- Se estiver a utilizar Azureglobal, substitua o argumento
Substitua a primeira parte do
SECRETargumento pelo Microsoft Entra Client ID do Passo 1: Configurar o modelo de autenticação. Neste exemplo, o ID do Cliente éd956f6b9xxxxxxx.Importante
Remova os hífens do ID da App (Cliente).
Complete a segunda parte do
SECRETargumento com o Segredo do Cliente do Passo 1. A sequência final é uma longa sequência de letras e números sem hífens (exceto os hífens que possam existir no próprio Segredo do Cliente).
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://learn.microsoft.com/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 um exemplo de utilização de variáveis e remoção programática de hífens do ID do cliente, veja CREATE CREDENTIAL.
Abra a chave do Azure Key Vault na sua instância do SQL Server.
Quer tenha criado uma nova chave ou importado uma chave assimétrica no Passo 2: Crie um cofre de chaves, abra a chave no SQL Server usando
CREATE ASYMMETRIC KEY.Importante
Preencha os pré-requisitos do registo antes de realizar este passo.
Nos seguintes exemplos:
- Substitui
EKMSampleASYKeypelo nome que queres usar no SQL Server. - Substitua
ContosoRSAKey0pelo seu nome de chave no Azure Key Vault ou Managed HSM.
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 específica da chave quando precisar de fixar operações a 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 específica da chave que o SQL Server utiliza para operações de base de dados.- Substitui
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;Mover o mapeamento de credenciais do login original do administrador para o login criado a partir da chave assimétrica.
O SQL Server utiliza o login criado a partir da chave assimétrica (
TDE_Login) para operações EKM. Para garantir que o SQL Server pode aceder ao Azure Key Vault durante operações de encriptação e recuperação, mapeie a credencial paraTDE_Logino login original da configuração em vez do 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: Encriptar e validar a base de dados do utilizador
Configurar o banco de dados de usuários para ser criptografado
Crie uma base de dados de teste para encriptar usando a chave do Azure Key Vault.
-- Create a test database for the TDE example. CREATE DATABASE TestTDE;Crie uma chave de encriptação de base 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;Ative o TDE na base de dados definindo
ENCRYPTION ON.-- Enable TDE for the database. ALTER DATABASE TestTDE SET ENCRYPTION ON;
Verificar o uso da chave e o estado da encriptação
Na
masterbase de dados, execute a seguinte consulta Transact-SQL para verificar se a chave assimétrica EKM existe e capturar a sua impressão digital.SELECT name, algorithm_desc, thumbprint FROM sys.asymmetric_keys;A instrução devolve uma saída semelhante à seguinte:
name algorithm_desc thumbprint EKMSampleASYKey RSA_2048 <key thumbprint>Na base de dados do utilizador (
TestTDE), execute a seguinte consulta Transact-SQL para verificar se o TDE está ativado e que a chave de encriptação da base 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 devolve uma saída semelhante à seguinte:
encryptor_type encryption_state_desc encryptor_thumbprint ASYMMETRIC KEY ENCRYPTED <key thumbprint>Confirme que
encryptor_thumbprintcoincide com a impressão digital devolvida porsys.asymmetric_keys. Um desajuste indica geralmente que a chave de encriptação da base de dados está protegida por uma chave diferente da esperada.
Limpeza
Use os passos de limpeza que correspondam ao modelo de autenticação que configurou.
Limpa os objetos de teste que criaste 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]; GOVerifique se deve remover a chave de registo
SQL Server Cryptographic Provider.Importante
A
SQL Server Cryptographic Providerchave do registo não é removida automaticamente depois de apagares as chaves EKM.Apague esta chave de registo apenas quando já não precisar de EKM na instância. Eliminá-lo demasiado cedo pode quebrar a funcionalidade do EKM e as operações de recuperação.
Caminho do registo:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Cryptographic Provider
Efetuar a rotação de chaves assimétricas para TDE com o Azure Key Vault
Use um guia operacional dedicado para os passos chave da rotação, incluindo scripts específicos de autenticação, verificação e verificações de segurança:
Importante
Não exclua versões anteriores da chave após a rotação. Versões anteriores podem ainda ser necessárias para restaurar backups antigos, ficheiros de registo e artefactos de recuperação.