Suporte de identidade gerenciada para gerenciamento extensível de chaves com o Azure Key Vault
Aplica-se a:SQL Server na VM do Azure (somente Windows)
Este artigo mostra como usar identidades gerenciadas para Gerenciamento Extensível de Chaves (EKM) com o Azure Key Vault (AKV) em SQL Server em Máquinas Virtuais (VM) do Azure.
Visão geral
A partir da CU17 (Atualização Cumulativa 17) do SQL Server 2022, as identidades gerenciadas têm suporte para EKM com AKV e HSM (Managed Hardware Security Modules) no SQL Server em VMs do Azure. As identidades gerenciadas são o método de autenticação recomendado para permitir que diferentes serviços do Azure autentiquem o recurso SQL Server na VM do Azure sem usar senhas ou segredos. Para obter mais informações sobre identidades gerenciadas, consulte Tipos de identidade gerenciados.
Observação
As identidades gerenciadas são suportadas apenas para o SQL Server em VMs do Azure e não para o SQL Server local.
Para obter informações sobre como configurar o EKM com AKV para SQL Server local, consulte Configurar o Gerenciamento Extensível de Chaves TDE do SQL Server usando o Azure Key Vault.
Pré-requisitos
- Um SQL Server numa VM do Azure com SQL Server 2022 CU17 ou posterior configurado com a autenticação do Microsoft Entra.
- Um Cofre de Chaves do Azure e uma chave criada no cofre. Para obter mais informações, consulte Criar um cofre de chaves.
- As identidades gerenciadas são suportadas para EKM com AKV. A identidade gerenciada principal para o SQL Server na VM do Azure precisa:
- Ser atribuído a uma identidade gerida atribuída pelo utilizador ou a uma identidade gerida atribuída pelo sistema. Para obter mais informações, consulte Configurar identidades gerenciadas em máquinas virtuais (VMs) do Azure e Habilitar autenticação do Microsoft Entra.
- Para ter a função
Key Vault Crypto Service Encryption User
para a identidade gerida principal atribuída ao Cofre de Chaves, se estiver a utilizar o controlo de acesso baseado em função do Azure , ou as permissões de Desembrulhar Chave e Encapsular Chave se estiver a utilizar a política de acesso ao cofre .
- Transfira a versão mais recente do SQL Server Connector a partir do Centro de Transferências da Microsoft.
Adicionar chave do Registro para o provedor EKM
Antes de criar uma credencial usando uma identidade gerenciada, você precisa adicionar uma chave do Registro para permitir que o provedor EKM use identidades gerenciadas. Esta etapa precisa ser executada pelo administrador do computador. Para obter etapas detalhadas, consulte Etapa 4: Adicionar chave do registo para dar suporte ao fornecedor de EKM.
Criar uma credencial de servidor usando identidades gerenciadas
O exemplo a seguir mostra como criar uma credencial para uma identidade gerenciada para usar com o AKV:
CREATE CREDENTIAL [<akv-name>.vault.azure.net]
WITH IDENTITY = 'Managed Identity'
FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM_Prov
Você pode verificar o nome AKV consultando sys.credentials
:
SELECT name, credential_identity
FROM sys.credentials
A cláusula WITH IDENTITY = 'Managed Identity'
requer uma identidade gerenciada primária atribuída ao SQL Server na VM do Azure.
Para obter mais informações sobre como configurar o EKM com AKV, consulte Configurar o Gerenciamento Extensível de Chaves TDE do SQL Server usando o Azure Key Vault.
Criando uma credencial para usar com Módulos de Segurança de Hardware Geridos (HSMs)
Para criar uma credencial para usar com os HSMs (Módulos de Segurança de Hardware Gerenciados) do Cofre da Chave do Azure, use a seguinte sintaxe:
CREATE CREDENTIAL [<akv-name>.managedhsm.azure.net]
WITH IDENTITY = 'Managed Identity'
FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM_Prov
Para obter mais informações sobre como configurar o EKM com AKV, consulte Configurar o Gerenciamento Extensível de Chaves TDE do SQL Server usando o Azure Key Vault.
Comandos T-SQL para atualizar a configuração EKM existente para usar identidades gerenciadas
Se sua configuração atual estiver usando EKM com AKV usando um segredo, você precisará descartar a credencial existente e criar uma nova credencial usando uma identidade gerenciada. Os seguintes comandos T-SQL mostram como atualizar sua configuração EKM existente para usar identidades gerenciadas:
Crie a credencial usando uma identidade gerenciada:
CREATE CREDENTIAL [<akv-name>.vault.azure.net] WITH IDENTITY = 'Managed Identity' FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM_Prov
Se houver uma credencial usando um segredo associado ao logon de domínio de administração do SQL Server, remova a credencial existente:
ALTER LOGIN [<domain>\<login>] DROP CREDENTIAL [<existing-credential-name>]
Associe a nova credencial ao logon de domínio de administração do SQL Server:
ALTER LOGIN [<domain>\<login>] ADD CREDENTIAL [<akv-name>.vault.azure.net]
Você pode verificar a exibição do banco de dados criptografado para verificar a criptografia do banco de dados usando a seguinte consulta:
SELECT *
FROM sys.dm_database_encryption_keys
WHERE database_id=db_id('<your-database-name>')
Para obter mais informações sobre como configurar o EKM com AKV, consulte Configurar o Gerenciamento Extensível de Chaves TDE do SQL Server usando o Azure Key Vault.
Mensagens de erro
sinalizador de rastreamento 4675 pode ser usado para verificar credenciais criadas com uma identidade gerenciada. Se a instrução CREATE CREDENTIAL
foi executada sem o sinalizador de rastreamento 4675 habilitado, nenhuma mensagem de erro será emitida se a identidade gerenciada primária não estiver definida para o servidor. Para solucionar esse cenário, a credencial deve ser excluída e recriada novamente quando o sinalizador de rastreamento estiver habilitado.
Nenhuma identidade gerenciada principal atribuída
Se uma identidade gerenciada primária não for atribuída ao SQL Server na VM do Azure, as operações de backup e restauração falharão com uma mensagem de erro indicando que a identidade gerenciada não está selecionada.
Msg 37563, Level 16, State 2, Line 14
The primary managed identity is not selected for this server. Enable the primary managed identity for Microsoft Entra authentication for this server. For more information see (https://aka.ms/sql-server-managed-identity-doc).`
A versão do SQL Server Connector não oferece suporte à identidade gerenciada para EKM com AKV
Se uma versão anterior do SQL Server Connector for usada, o seguinte erro ocorrerá ao executar a instrução T-SQL CREATE ASYMMETRIC KEY
usando uma credencial de servidor com identidade gerenciada:
Msg 37576, Level 16, State 2, Line 60
The current SQL Server Connector version for Microsoft Azure Key Vault does not support the managed identity (see https://aka.ms/sql-server-managed-identity-doc). Upgrade the SQL Server Connector to its latest version
Limitações
- A identidade gerenciada no nível do servidor só tem suporte para o SQL Server na VM do Azure e não no SQL Server local. A identidade gerenciada no nível do servidor não é suportada para Linux.
- Suporte de identidade gerenciada para EKM com AKV e Backup e restauração para URL usando identidades gerenciadas são os únicos serviços do Azure que dão suporte à identidade gerenciada para SQL Server em VMs do Azure.
- O suporte de identidade gerenciada para EKM com AKV requer a versão mais recente do SQL Server Connector. Certifique-se de que transfere e instala a versão mais recente a partir do Centro de Downloads da Microsoft.
- A autenticação do Microsoft Entra só pode ser habilitada com uma identidade gerenciada primária para o SQL Server na VM do Azure. A identidade gerenciada primária é usada para todas as instâncias do SQL Server na VM.