Identidades gerenciadas para criptografia de dados transparente com chave gerenciada pelo cliente
Aplica-se a: Banco de Dados SQL do Azure Instâ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.
As identidades gerenciadas são de dois tipos:
- System-assigned
- 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. Por exemplo, a identidade gerenciada atribuída pelo sistema do servidor deve receber permissões de cofre de chaves antes de habilitar a TDE com 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. 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 receber acesso ao cofre de chaves, a TDE com uma chave gerenciada pelo cliente agora pode ser habilitada no momento da criação para o servidor ou 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
Habilita a capacidade de pré-autorizar o acesso ao cofre de chaves para servidores lógicos de SQL do Azure ou instâncias gerenciadas criando uma identidade gerenciada atribuída pelo usuário e concedendo a ela acesso ao cofre de chaves, mesmo antes da criação do servidor ou do banco de dados
Permite a criação de um servidor lógico de SQL do Azure com TDE e CMK habilitadas
Permite que a mesma identidade gerenciada atribuída pelo usuário seja atribuída a diversos servidores, eliminando a necessidade de ativar individualmente a identidade gerenciada atribuída pelo sistema para cada instância gerenciada ou servidor lógico de SQL do Azure e fornecendo acesso ao cofre de chaves
Fornece a capacidade de aplicar a 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. 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 para defini-la 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 (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 primária estiver sendo atualizada para outra diferente, a nova identidade deverá receber as permissões necessárias para o cofre de chaves 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, forneça àquela atribuída pelo sistema as permissões de cofre de chaves necessárias e remova todas as identidades gerenciadas atribuídas pelo usuário do servidor
Importante
A identidade gerenciada atribuída pelo usuário primária sendo usada para TDE com CMK não deve ser excluída do Azure. A exclusão dela fará com que o servidor perca o acesso ao cofre de chaves e os bancos de dados se tornem inacessíveis.
Limitações e problemas conhecidos
- Se o cofre de chaves estiver atrás de uma VNet que usa um firewall, a opção Permitir que os Serviços Confiáveis da Microsoft ignorem esse firewall deverá estar 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 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/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 os Serviços Confiáveis da Microsoft ignorem esse firewall está habilitada.
- Atualmente, a Identidade Gerenciada Atribuída pelo Usuário para Instâncias Gerenciadas de SQL só é compatível com cofres de chaves que têm acesso público de todas as redes habilitadas. Ele não é compatível com cenários em que o firewall do AKV está filtrando redes virtuais e endereços IP específicos ou usando conexões de ponto de extremidade privado.
- 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 a instância gerenciada ou o servidor é configurado com a TDE gerenciada pelo cliente e as identidades gerenciadas atribuídas pelo sistema e pelo usuário são habilitadas nele, a remoção das identidades gerenciadas atribuídas pelo usuário do servidor sem primeiro conceder acesso à identidade gerenciada atribuída pelo sistema ao cofre de chaves resulta em uma mensagem Um erro inesperado ocorreu. Verifique se a identidade gerenciada atribuída pelo sistema recebeu acesso ao cofre de chaves antes de remover a identidade gerenciada atribuída pelo usuário primária (e quaisquer outras identidades gerenciadas atribuídas pelo usuário) do servidor.