Compartilhar via


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

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

O Microsoft Entra ID, antigo Azure Active 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 saber mais, confira Tipos de identidade gerenciada no Azure.

As identidades gerenciadas são de dois tipos:

  • Atribuída pelo sistema
  • Atribuída pelo usuário

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

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

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

Observação

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 do Azure RBAC Colaborador do SQL Server ou Colaborador de Instância Gerenciada de SQL com qualquer outra função do Azure RBAC que contenha a açãoMicrosoft.ManagedIdentity/userAssignedIdentities/*/assign/action.

Benefícios de usar a UMI para a TDE gerenciada pelo cliente

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

  • Permite a criação de um servidor lógico do 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 do SQL do Azure ou a Instância Gerenciada de SQL do Azure e fornecendo-lhe acesso ao cofre de chaves ou HSM gerenciado.

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

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

  • Por padrão, a TDE no SQL do Azure usa a identidade gerenciada atribuída pelo usuário primária definida no servidor para acesso ao cofre de chaves ou ao HSM gerenciado. 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 ou ao HSM gerenciado.
  • 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 primária do servidor.
  • A identidade gerenciada atribuída pelo usuário primária requer acesso contínuo ao cofre de chaves ou ao HSM gerenciado (permissões get, wrapKey, unwrapKey). Se o acesso da identidade ao cofre de chaves ou ao HSM gerenciado 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 primária estiver sendo atualizada para outra diferente, a nova identidade deverá receber as permissões necessárias para o cofre de chaves ou o HSM gerenciado antes da atualização da identidade primária.
  • Para alternar o servidor de uma identidade gerenciada atribuída pelo usuário para outra atribuída pelo sistema a fim de obter acesso ao cofre de chaves ou ao HSM gerenciado, forneça àquela atribuída pelo sistema as permissões de cofre de chaves ou do HSM gerenciado necessárias e 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 fará com que o servidor perca o acesso ao cofre de chaves ou HSM gerenciado, e os bancos de dados se tornem inacessíveis.

Limitações e problemas conhecidos

  • Se o cofre de chaves ou o HSM gerenciado estiver por trás de uma rede virtual que usa um firewall, a opção para permitir que os Serviços Confiáveis da Microsoft ignorem esse firewall deverá ser habilitada no menu Rede do HSM gerenciado ou 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 um CMK individual, o identificador de chave deve ser usado. Quando a opção Permitir que os Serviços Confiáveis da Microsoft ignorem esse firewall não está habilitada, é retornado o seguinte erro:
    • Failed to save Transparent Data Encryption settings for SQL resource: <ServerName>. Error message: The managed identity with ID '/subscriptions/subscriptionID/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 ou o HSM gerenciado está por trás de uma rede virtual ou firewall e verifique se a opção Permitir que os Serviços Confiáveis da Microsoft ignorem esse firewall está habilitada.
  • Quando várias identidades gerenciadas atribuídas pelo usuário são designadas ao servidor ou à instância gerenciada, se uma única identidade for removida do servidor por meio do painel 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 do portal do Azure funciona corretamente.
  • Quando o servidor ou a instância gerenciada é configurada com TDE gerenciado pelo cliente e tanto as identidades gerenciadas atribuídas pelo sistema quanto as atribuídas pelo usuário estão habilitadas no servidor, remover as identidades gerenciadas atribuídas pelo usuário do servidor sem primeiro conceder acesso da identidade gerenciada atribuída pelo sistema ao cofre de chaves ou HSM gerenciado resulta em uma mensagem de erro inesperado. Verifique se a identidade gerenciada atribuída pelo sistema recebeu acesso de HSM gerenciado ou cofre de chaves antes de remover a identidade gerenciada atribuída pelo usuário primário (e quaisquer outras identidades gerenciadas atribuídas pelo usuário) do servidor.

Próximas etapas