Partilhar via


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

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

O Microsoft Entra ID, anteriormente Azure Ative Directory, fornece uma identidade gerenciada automaticamente para autenticação 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 usuário

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 ou HSM gerenciado. Por exemplo, a identidade gerenciada atribuída pelo sistema do servidor deve ser fornecida com permissões do Cofre da Chave do Azure antes de habilitar o TDE com CMK no servidor.

Além da identidade gerida atribuída pelo sistema já suportada para TDE com CMK, uma identidade gerida pelo utilizador (UMI) associada ao servidor pode ser usada para permitir que o servidor aceda ao cofre de chaves ou a um HSM sob gestão. 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 no 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 para o servidor ou banco de dados.

Observação

Para atribuir uma identidade gerida pelo usuário ao servidor lógico ou a uma instância gerida, é necessário que um utilizador possua o papel de Colaborador do Servidor SQL ou Colaborador de Instância Gerida do SQL no RBAC do Azure, juntamente com qualquer outro papel 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 cofre de chaves ou o acesso HSM gerenciado para servidores lógicos SQL do Azure ou Instâncias Gerenciadas 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 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 SQL do Azure e fornecendo acesso ao cofre de chaves ou HSM gerenciado.

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

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

  • Por padrão, o TDE no SQL do Azure usa o conjunto de identidades gerenciadas atribuído pelo usuário primário no servidor para cofre de chaves ou acesso HSM gerenciado. Se nenhuma identidade atribuída pelo utilizador tiver sido atribuída ao servidor, a identidade gerida atribuída pelo sistema ao servidor será usada para aceder ao cofre de chaves ou ao HSM gerido.
  • 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 gerida atribuída ao utilizador principal requer acesso contínuo ao cofre de chaves ou ao HSM gerido (permissões get, wrapKey, unwrapKey). Se o acesso da identidade ao cofre de chaves ou HSM gerenciado for revogado ou não forem fornecidas permissões suficientes, o banco de dados será transferido 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 ou HSM gerenciado antes de atualizar a principal.
  • Para alternar o servidor de identidade gerenciada atribuída pelo usuário para identidade gerenciada atribuída pelo sistema para cofre de chaves ou acesso HSM gerenciado, forneça à identidade gerenciada atribuída pelo sistema as permissões necessárias do cofre de chaves ou do HSM gerenciado e, em seguida, remova todas as identidades gerenciadas atribuídas pelo usuário do servidor.

Importante

A principal identidade gerenciada atribuída ao usuário 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 ao 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 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 ou do HSM gerenciado 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/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á 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.
  • 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 o 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 juntas do portal do Azure funciona com êxito.
  • Quando o servidor ou a instância gerida é configurada com TDE gerido pelo cliente e as identidades geridas atribuídas pelo sistema e pelo utilizador são ativadas no servidor, remover as identidades geridas atribuídas pelo utilizador sem primeiro conceder acesso ao cofre de chaves ou HSM gerido à identidade gerida atribuída pelo sistema resulta numa mensagem de erro inesperado. Certifique-se de que a identidade atribuída gerida ao sistema tenha recebido acesso ao cofre de chaves ou ao HSM gerido antes de remover a identidade atribuída gerida pelo usuário principal (bem como quaisquer outras identidades atribuídas geridas pelo usuário) do servidor.

Próximos passos