Partilhar via


Erros comuns de criptografia de dados transparente com chaves gerenciadas pelo cliente no Azure Key Vault

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

Este artigo descreve como identificar e resolver os problemas de acesso de chave do Azure Key Vault que fizeram com que um banco de dados configurado para usar TDE (Transparent Data Encryption) com chaves gerenciadas pelo cliente no Azure Key Vault se torne inacessível.

Observação

O Microsoft Entra ID era conhecido como Azure Active Directory (Azure AD).

Introdução

Quando o TDE está configurado para usar uma chave gerenciada pelo cliente no Azure Key Vault, o acesso contínuo a esse Protetor de TDE é necessário para que o banco de dados permaneça online. Se o servidor SQL lógico ou a instância gerenciada perder o acesso ao protetor de TDE gerenciado pelo cliente no Azure Key Vault, um banco de dados começará a negar todas as conexões com a mensagem de erro apropriada e alterará seu estado para Inacessível no portal do Azure.

Durante os primeiro 30 minutos, quando o problema subjacente de acesso à chave do Azure Key Vault é resolvido, o banco de dados é reparado e colocado online automaticamente. Isso significa que para todos os cenários de interrupção de rede intermitente e temporário não é necessária ação do usuário, e o banco de dados será colocado online automaticamente. Na maioria dos casos, a ação do usuário é necessária para resolver o problema subjacente de acesso à chave do cofre de chaves.

Se um banco de dados inacessível não for mais necessário, ele poderá ser excluído imediatamente para interromper os custos. Todas as outras ações no banco de dados não são permitidas até que o acesso à chave do Azure Key Vault tenha sido restaurado e o banco de dados fique novamente online. A alteração da opção de TDE de chaves gerenciadas pelo cliente para chaves gerenciadas pelo servidor também não é possível enquanto um banco de dados criptografado com chaves gerenciadas pelo cliente está inacessível. Isso é necessário para proteger os dados contra o acesso não autorizado, enquanto as permissões para o protetor de TDE foram revogadas.

Quando um banco de dados fica inacessível por mais de 30 minutos, ele não é mais corrigido automaticamente. Quando o acesso necessário à chave do cofre de chaves do Azure é restaurado após esse período, você deve revalidar o acesso à chave manualmente para colocar novamente o banco de dados online. Nesse caso, colocar novamente o banco de dados online pode demorar, dependendo do tamanho do banco de dados. Depois que o banco de dados estiver novamente online, as configurações definidas anteriormente, como o grupo de failover, histórico de PITR e todas as marcas serão perdidas. Portanto, é recomendável implementar um sistema de notificação usando Grupos de Ações que permitem estar ciente e tratar os problemas subjacentes do cofre de chaves assim que possível.

Erros comuns que fazem com que os bancos de dados se tornem inacessíveis

A maioria dos problemas que ocorrem ao usar TDE com o Key Vault é causada por um dos erros de configuração a seguir:

O cofre de chaves não está disponível ou não existe

  • O cofre de chaves foi excluído por engano.
  • O firewall foi configurado para o Azure Key Vault, mas não permite o acesso aos serviços da Microsoft.
  • Um erro de rede intermitente faz com que o cofre de chaves fique indisponível.

Sem permissão para acessar o cofre de chaves ou a chave não existe

  • A chave foi excluída, desabilitada acidentalmente ou expirou.
  • A identidade gerenciada do servidor (atribuída pelo sistema ou pelo usuário) foi excluída acidentalmente.
  • O servidor foi movido para uma assinatura diferente. Uma nova identidade gerenciada (atribuída pelo sistema ou pelo usuário) deve ser atribuída ao servidor quando ele for movido para uma assinatura diferente.
  • As permissões concedidas à identidade gerenciada do servidor para as chaves não são suficientes (elas não incluem as permissões Get, Wrap e Unwrap).
  • As permissões para a identidade gerenciada do servidor foram revogadas do cofre de chaves.

Identificar e resolver erros comuns

Nesta seção, listaremos as etapas de solução de problemas para os erros mais comuns.

Identidade de servidor ausente

Mensagem de erro

401 AzureKeyVaultNoServerIdentity – a identidade do servidor não está configurada corretamente no servidor. Contate a equipe de suporte.

Detecção

Use o seguinte cmdlet ou comando para garantir que uma identidade tenha sido atribuída ao servidor:

Atenuação

Use o cmdlet ou o comando a seguir para configurar uma identidade gerenciada atribuída pelo usuário ou pelo sistema para o servidor:

No portal do Azure, vá até o cofre de chaves e depois às Políticas de acesso. Conclua estas etapas:

  1. Use o botão Adicionar Novo para adicionar a AppId ao servidor criado na etapa anterior.
  2. Atribua as seguintes permissões de chave: Get, Wrap e Unwrap

Para saber mais, confira Atribuir uma identidade gerenciada ao servidor.

Importante

Se o servidor lógico do Banco de Dados SQL do Azure ou da Instância Gerenciada de SQL do Azure for movido para um novo locatário do Microsoft Entra após a configuração inicial do TDE com Cofre de Chaves, essa configuração de identidade gerenciada deverá ser refeita no novo locatário.

Cofre de chaves ausente

Mensagem de erro

AzureKeyVaultConnectionFailed 503 – não foi possível concluir a operação no servidor porque houve falha nas tentativas de conexão ao Azure Key Vault.

Detecção

Para identificar o URI da chave e o cofre de chaves:

  1. Use o seguinte cmdlet ou comando para obter o URI de chave de uma instância de servidor específica:

  2. Use o URI da chave para identificar o cofre de chaves:

    • Azure PowerShell: você pode inspecionar as propriedades da variável $MyServerKeyVaultKey para obter detalhes sobre o cofre de chaves.

    • CLI do Azure: inspecione o protetor de criptografia do servidor retornado para obter detalhes sobre o cofre de chaves.

Atenuação

Confirme se o cofre de chaves está disponível:

  • Garanta que o cofre de chaves esteja disponível e que o servidor tenha acesso.
  • Se o cofre de chaves estiver protegido por um firewall, verifique se a caixa de seleção para permitir que os serviços da Microsoft acessem o cofre de chaves está marcada.
  • Se o cofre de chaves for excluído por engano, será necessário refazer a configuração desde o início.

Chave ausente

Mensagens de erro

ServerKeyNotFound 404 – a chave do servidor solicitada não foi encontrada na assinatura atual.

409 ServerKeyDoesNotExists – a chave do servidor não existe.

Detecção

Para identificar o URI da chave e o cofre de chaves:

  • Use o cmdlet ou comando em Cofre da chave ausente para identificar a chave URI adicionada à instância lógica do SQL Server. Executar os comandos retorna a lista de chaves.

Atenuação

Confirme se o protetor de TDE está presente no Key Vault:

  1. Identifique o cofre de chaves e vá até ele no portal do Azure.
  2. Certifique-se de que a chave identificada pelo URI da chave esteja presente.

Chave expirada

Mensagens de erro

O servidor <server_name> exige a permissão de Usuário do Serviço de Criptografia do Key Vault para a política RBAC ou as seguintes permissões do Azure Key Vault: Get, WrapKey, UnwrapKey. Conceda as permissões ausentes à entidade de serviço com ID <akv_key>. Verifique se a chave está ativa, se não expirou ou está desabilitada, se a data de ativação da chave não é posterior à data atual e se os serviços confiáveis da Microsoft podem ignorar o firewall, se aplicável.

Detecção

Para identificar a chave expirada no cofre de chaves:

  • Use o portal do Azure, acesse o menu >Objetos>Chaves do serviço Key Vault e verifique a expiração da chave.
  • Use o comando Get-AzKeyVaultKey do PowerShell.
  • Use o comando az keyvault key show da CLI do Azure.

Atenuação

  • Verifique a data de expiração da chave do cofre de chaves para confirmar se a chave expirou.
  • Estenda a data de expiração da chave.
  • Coloque o banco de dados online outra vez selecionando a opção Revalidação da chave com 1 das seguintes opções:
    • Repetir chave existente.
    • Selecionar chave de backup.

Para obter mais informações, confira Protetor de TDE inacessível.

Observação

A rotação das chaves deve ser feita em um número de dias especificado antes da validade para que haja tempo suficiente para reagir a uma falha. Para obter mais informações, confira Definições internas do Azure Policy para o Key Vault.

Permissões ausentes

Mensagem de erro

401 AzureKeyVaultMissingPermissions – o servidor não tem as permissões necessárias no Azure Key Vault.

Detecção

Como identificar o URI da chave e o cofre de chaves:

  • Use o cmdlet ou comando em Cofre da chave ausente para identificar o cofre de chaves que a instância lógica do SQL Server utiliza.

Atenuação

Confirme se o servidor tem permissões para o cofre de chaves e as permissões corretas para acessar a chave:

  • No portal do Azure, vá até o cofre de chaves >Políticas de acesso. Localize a identidade gerenciada do servidor (atribuída pelo sistema ou atribuída pelo usuário).
  • Se a identidade do servidor estiver presente, certifique-se de que ela tenha as seguintes permissões de chave: Get, WrapKey e UnwrapKey.
  • Se a identidade do servidor não estiver presente, adicione-a usando o botão Adicionar.

Obter o status de TDE do Log de atividades

Para permitir o monitoramento do status do banco de dados devido a problemas de acesso à chave do Azure Key Vault, os seguintes eventos serão registrados no Log de atividades para a ID do recurso com base na URL do Azure Resource Manager.

Observação

Os eventos podem levar pelo menos 15 a 30 minutos para aparecer no log de atividades a partir do momento em que ocorre o problema de acesso ao cofre de chaves.

Evento quando o serviço perde o acesso à chave do Azure Key Vault

Banco de Dados SQL do Azure

EventName: MakeDatabaseInaccessible

Status: Iniciado

Descrição: o banco de dados {database_name} no servidor {server_name} perdeu o acesso à chave do Azure Key Vault e agora está em transição para o estado inacessível.

Instância Gerenciada do SQL do Azure

EventName: MakeManagedDbInaccessible

Status: Iniciado

Descrição: o banco de dados {database_name} no servidor gerenciado {server_name} perdeu o acesso à chave do Azure Key Vault e agora está em transição para o estado inacessível.

Evento em que o problema não foi resolvido em 30 minutos e o acesso à chave do Azure Key Vault deve ser validado manualmente

Banco de Dados SQL do Azure

EventName: MakeDatabaseInaccessible

Status: sucesso

Descrição: o banco de dados está inacessível e exige que o usuário resolva os erros do Azure Key Vault e restabeleça o acesso à chave do Azure Key Vault usando Revalidar chave.

Instância Gerenciada do SQL do Azure

EventName: MakeManagedDbInaccessible

Status: sucesso

Descrição: o banco de dados { database_name} no servidor gerenciado {server_name} está inacessível e exige que o usuário restabeleça o acesso à chave do Azure Key Vault.

Evento quando a revalidação do acesso à chave de Azure Key Vault foi bem-sucedida e o banco de dados voltar a ficar online

Banco de Dados SQL do Azure

EventName: MakeDatabaseAccessible

Status: Iniciado

Descrição: o acesso à chave do Azure Key Vault foi restabelecido, operação para tornar o banco de dados {database_name} no servidor {server_name} acessível iniciado.

Instância Gerenciada do SQL do Azure

EventName: MakeManagedDatabaseAccessible

Status: Iniciado

Descrição: o acesso à chave do Azure Key Vault foi restabelecido, operação para tornar o banco de dados {database_name} no servidor gerenciado {server_name} acessível iniciado.

Evento quando o banco de dados voltou a ficar online com sucesso

Banco de Dados SQL do Azure

EventName: MakeDatabaseAccessible

Status: sucesso

Descrição: o acesso à chave do Azure Key Vault foi restabelecido e o banco de dados {database_name} no servidor {server_name} agora está online.

Instância Gerenciada do SQL do Azure

EventName: MakeManagedDatabaseAccessible

Status: sucesso

Descrição: o acesso à chave do Azure Key Vault foi restabelecido e o banco de dados {database_name} no servidor gerenciado {server_name} agora está online.

Evento ao revalidar o acesso à chave de Azure Key Vault falhou

Banco de Dados SQL do Azure

EventName: MakeDatabaseAccessible

Status: Falha

Descrição: o acesso à chave do Azure Key Vault foi restabelecido, a operação para tornar o banco de dados {database_name} acessível no servidor {server_name} falhou

Instância Gerenciada do SQL do Azure

EventName: MakeManagedDatabaseAccessible

Status: Falha

Descrição: o acesso à chave do Azure Key Vault foi restabelecido, a operação para tornar o banco de dados {database_name} acessível no servidor gerenciado {server_name} falhou

  • Saiba mais sobre o Azure Resource Health.
  • Configure os Grupos de ações para receber notificações e alertas com base em suas preferências, por exemplo, email/SMS/Push/voz, aplicativo lógico, webhook, ITSM ou runbook de automação.