Share via


Identidades gerenciadas para criptografia de dados transparente com chave gerenciada pelo cliente

Aplica-se a:Banco de Dados SQL do Azure Instância Gerenciada SQLdo Azure

O Microsoft Entra ID anteriormente Azure Ative Directory fornece uma identidade gerenciada automaticamente para autenticar em qualquer serviço do Azure que ofereça suporte à autenticação do Microsoft Entra, como o Azure Key Vault, sem expor credenciais no código. Para obter mais informações, consulte Tipos de identidade gerenciados no Azure.

As identidades gerenciadas podem ser de dois tipos:

  • Atribuído pelo sistema
  • Atribuído pelo utilizador

Para obter mais informações, consulte Identidades gerenciadas no Microsoft Entra ID para Azure SQL.

Para TDE com chave gerenciada pelo cliente (CMK) no SQL do Azure, uma identidade gerenciada no servidor é usada para fornecer direitos de acesso ao servidor no cofre de chaves. Por exemplo, a identidade gerenciada atribuída pelo sistema do servidor deve ser fornecida com permissões de cofre de chaves antes de habilitar o TDE com CMK no servidor.

Além da identidade gerenciada atribuída ao sistema que já é suportada para TDE com CMK, uma identidade gerenciada atribuída ao usuário (UMI) atribuída ao servidor pode ser usada para permitir que o servidor acesse o cofre de chaves. Um pré-requisito para habilitar o acesso ao cofre de chaves é garantir que a identidade gerenciada atribuída pelo usuário tenha recebido as permissões Get, wrapKey e unwrapKey no cofre de chaves. Como a identidade gerenciada atribuída pelo usuário é um recurso autônomo que pode ser criado e concedido acesso ao cofre de chaves, o TDE com uma chave gerenciada pelo cliente agora pode ser habilitado no momento da criação para o servidor ou banco de dados.

Nota

Para atribuir uma identidade gerenciada atribuída pelo usuário ao servidor lógico ou à instância gerenciada, um usuário deve ter a função RBAC do Azure Contributor do SQL Server ou Colaborador da Instância Gerenciada do SQL junto com qualquer outra função RBAC do Azure que contenha a ação Microsoft.ManagedIdentity/userAssignedIdentities/*/assign/action.

Benefícios do uso da UMI para TDE gerenciada pelo cliente

  • Permite a capacidade de pré-autorizar o acesso ao cofre de chaves para servidores lógicos SQL do Azure ou instâncias gerenciadas criando uma identidade gerenciada atribuída pelo usuário e concedendo-lhe acesso ao cofre de chaves, mesmo antes de o servidor ou banco de dados ter sido criado

  • Permite a criação de um servidor lógico SQL do Azure com TDE e CMK habilitados

  • Permite que a mesma identidade gerenciada atribuída pelo usuário seja atribuída a vários servidores, eliminando a necessidade de ativar individualmente a identidade gerenciada atribuída pelo sistema para cada servidor lógico SQL do Azure ou instância gerenciada e fornecendo acesso ao cofre de chaves

  • Fornece a capacidade de impor a CMK no momento da criação do servidor com uma política interna do Azure disponível

Considerações ao usar UMI para TDE gerenciada pelo cliente

  • Por padrão, o TDE no SQL do Azure usa a identidade gerenciada atribuída pelo usuário principal definida no servidor para acesso ao cofre de chaves. Se nenhuma identidade atribuída pelo usuário tiver sido atribuída ao servidor, a identidade gerenciada atribuída pelo sistema do servidor será usada para acesso ao cofre de chaves.
  • Ao usar uma identidade gerenciada atribuída pelo usuário para TDE com CMK, atribua a identidade ao servidor e defina-a como a identidade principal para o servidor
  • A identidade gerenciada atribuída pelo usuário principal requer acesso contínuo ao cofre de chaves (permissões get, wrapKey, unwrapKey ). Se o acesso da identidade ao cofre de chaves for revogado ou permissões suficientes não forem fornecidas, o banco de dados será movido para o estado Inacessível
  • Se a identidade gerenciada atribuída pelo usuário principal estiver sendo atualizada para uma identidade gerenciada atribuída pelo usuário diferente, a nova identidade deverá receber as permissões necessárias para o cofre de chaves antes de atualizar a identidade principal
  • Para alternar o servidor de identidade gerenciada atribuída pelo usuário para identidade gerenciada atribuída pelo sistema para acesso ao cofre de chaves, forneça à identidade gerenciada atribuída pelo sistema as permissões necessárias do cofre de chaves e, em seguida, remova todas as identidades gerenciadas atribuídas pelo usuário do servidor

Importante

A identidade gerenciada atribuída pelo usuário principal que está sendo usada para TDE com CMK não deve ser excluída do Azure. A exclusão dessa identidade levará o servidor a perder o acesso ao cofre de chaves e os bancos de dados se tornarão inacessíveis.

Problemas conhecidos e de limitações

  • Se o cofre de chaves estiver atrás de uma rede virtual que usa um firewall, a opção Permitir que os Serviços Microsoft Confiáveis ignorem esse firewall deverá ser habilitada no menu Rede do cofre de chaves se você quiser usar uma identidade gerenciada atribuída pelo usuário ou uma identidade gerenciada atribuída pelo sistema. Depois que essa opção estiver habilitada, as chaves disponíveis não poderão ser listadas no menu TDE do SQL Server no portal do Azure. Para definir uma CMK individual, um identificador de chave deve ser usado. Quando a opção Permitir que os Serviços Microsoft Confiáveis ignorem esse firewall não estiver habilitada, o seguinte erro será retornado:
    • Failed to save Transparent Data Encryption settings for SQL resource: <ServerName>. Error message: The managed identity with ID '/subscriptions/subsriptionID/resourcegroups/resource_name/providers/Microsoft.ManagedIdentity/userAssignedIdentities/umi_name' requires the following Azure Key Vault permissions: 'Get, WrapKey, UnwrapKey' to the key 'https://keyvault_name/keys/key_name'. Please grant the missing permissions to the identity. Additionally ensure the key is not expired and is not disabled. For expired key, please extend the key expiry time so that SQL can use it to perform wrap and unwrap operations. If your key vault is behind a virtual network or firewall, ensure you select the 'Allow trusted Microsoft services to bypass this firewall' option. (https://aka.ms/sqltdebyokcreateserver).
    • Se você receber o erro acima, verifique se o cofre de chaves está atrás de uma rede virtual ou firewall e verifique se a opção Permitir que Serviços Microsoft Confiáveis ignorem esse firewall está habilitada.
  • Atualmente, a Identidade Gerenciada Atribuída pelo Usuário para Instâncias Gerenciadas SQL só é suportada em cofres de chaves que têm acesso público de todas as redes habilitadas. Não é suportado quando o firewall AKV está filtrando redes virtuais e endereços IP específicos ou usando conexões de ponto final privadas.
  • Quando várias identidades gerenciadas atribuídas pelo usuário são atribuídas ao servidor ou à instância gerenciada, se uma única identidade for removida do servidor usando a folha Identidade do portal do Azure, a operação será bem-sucedida, mas a identidade não será removida do servidor. A remoção de todas as identidades gerenciadas atribuídas pelo usuário juntas do portal do Azure funciona com êxito.
  • Quando o servidor ou instância gerenciada é configurado com TDE gerenciado pelo cliente e as identidades gerenciadas atribuídas pelo sistema e pelo usuário são habilitadas no servidor, remover as identidades gerenciadas atribuídas pelo usuário do servidor sem primeiro conceder à identidade gerenciada atribuída pelo sistema acesso ao cofre de chaves resulta em uma mensagem de erro inesperado. Verifique se a identidade gerenciada atribuída ao sistema recebeu acesso ao cofre de chaves antes de remover a identidade gerenciada atribuída pelo usuário principal (e quaisquer outras identidades gerenciadas atribuídas pelo usuário) do servidor.

Próximos passos

Consulte também