Compartilhar via


Erros comuns do cofre de chaves no Gateway de Aplicativo

O Gateway de Aplicativo permite que os clientes armazenem certificados TLS com segurança no Azure Key Vault. Quando um recurso de cofre de chaves é usado, é importante que o gateway sempre tenha acesso ao cofre de chaves vinculado. Se o Gateway de Aplicativo não conseguir buscar o certificado, os ouvintes HTTPS associados serão colocados em um estado desabilitado. Saiba mais.

Este artigo ajuda você a entender os detalhes dos códigos de erro e as etapas necessárias para resolver essas configurações incorretas do cofre de chaves.

Dica

Use um identificador de segredo que não especifique uma versão. Dessa forma, o Gateway de Aplicativo do Azure girará automaticamente o certificado se houver uma versão mais recente disponível no Azure Key Vault. Um exemplo de um URI secreto sem uma versão é: https://myvault.vault.azure.net/secrets/mysecret/.

Códigos de erro do Assistente do Azure

As seções a seguir abordam vários erros que você poderá encontrar. Verifique se o gateway tem algum problema desse tipo acessando o Assistente do Azure da sua conta e use este artigo de solução de problemas para corrigir o problema. Recomendamos configurar alertas do Assistente do Azure para permanecer informado quando um problema do cofre de chaves for detectado para o gateway.

Observação

O Gateway de Aplicativo do Azure gera logs para o diagnóstico do cofre de chaves a cada quatro horas. Talvez seja necessário aguardar a atualização dos logs, caso o diagnóstico continue a mostrar o erro depois da correção da configuração.

Código de erro: UserAssignedIdentityDoesNotHaveGetPermissionOnKeyVault

Descrição: a identidade gerenciada atribuída pelo usuário associada não tem a permissão necessária.

Resolução: configure as políticas de acesso do cofre de chaves para conceder essa permissão aos segredos à identidade gerenciada atribuída pelo usuário. Faça isso usando uma das seguintes maneiras:

Política de acesso ao cofre

  1. Acesse o Key Vault vinculado no portal do Azure.
  2. Abra a folha Políticas de acesso.
  3. No Modelo de permissão, selecione Política de acesso ao cofre.
  4. Em Operações de Gerenciamento de Segredos, selecione a permissão Get.
  5. Selecione Salvar.

 Captura de tela que mostra como resolver o erro da permissão Get.

Para obter mais informações, confira Atribuir uma política de acesso do Key Vault usando o portal do Azure.

Controle de acesso baseado em função do Azure

  1. Acesse o Key Vault vinculado no portal do Azure.
  2. Abra a folha Políticas de acesso.
  3. Em Modelo de permissão, selecione Controle de acesso baseado em função do Azure.
  4. Acesse a folha Controle de Acesso (IAM) para configurar as permissões.
  5. Adicione a atribuição de função para sua identidade gerenciada escolhendo a opção a seguir
    a. Função: Usuário de Segredos do Cofre de Chaves
    b. Atribuir acesso a: identidade gerenciada
    c. Membros: selecione a identidade gerenciada atribuída pelo usuário associada ao gateway de aplicativo.
  6. Selecione Revisar + atribuir.

Para saber mais, confira Controle de acesso baseado em função no Azure no Key Vault.

Observação

No momento, o suporte ao portal para adição de um novo certificado baseado em cofre de chaves não está disponível quando o controle de acesso baseado em função do Azure é usado. Faça isso usando o modelo do ARM, a CLI ou o PowerShell. Acesse esta página para obter diretrizes.

Código de erro: SecretDisabled

Descrição: o certificado associado foi desabilitado no Key Vault.

Resolução:reabilitar a versão do certificado que está atualmente em uso para o Gateway de Aplicativo.

  1. Acesse o Key Vault vinculado no portal do Azure.
  2. Abra o painel Certificados.
  3. Selecione o nome do certificado exigido e selecione a versão desabilitada.
  4. Na página de gerenciamento, use a alternância para habilitar essa versão do certificado.

Captura de tela que mostra como habilitar novamente um segredo.

Código de erro: SecretDeletedFromKeyVault

Descrição: o certificado associado foi excluído do Key Vault.

Resolução: para recuperar um certificado excluído:

  1. Acesse o Key Vault vinculado no portal do Azure.
  2. Abra o painel Certificados.
  3. Use a guia Certificados excluídos gerenciados para recuperar um certificado excluído.

Por outro lado, se um objeto de certificado for excluído permanentemente, você precisará criar um certificado novo e atualizar o Gateway de Aplicativo com os novos detalhes do certificado. Ao configurar por meio da CLI do Azure ou do Azure PowerShell, use um URI de identificador secreto sem uma versão. Essa escolha permite que as instâncias recuperem uma versão renovada do certificado, se ela existir.

Captura de tela que mostra como recuperar um certificado excluído no Key Vault.

Código de erro: UserAssignedManagedIdentityNotFound

Descrição: a identidade gerenciada atribuída pelo usuário associada não foi excluída.

Resolução: crie uma identidade gerenciada e use-a com o cofre de chaves.

  1. Recrie uma identidade gerenciada com o mesmo nome usado anteriormente e no mesmo grupo de recursos. (DICA: veja os logs de atividades do recurso para obter detalhes de nomenclatura).
  2. Acesse o recurso do cofre de chaves desejado e defina as políticas de acesso para conceder a permissão necessária a essa nova identidade gerenciada. Siga as mesmas etapas mencionadas em UserAssignedIdentityDoesNotHaveGetPermissionOnKeyVault.

Código de erro: KeyVaultHasRestrictedAccess

Descrição: existe uma configuração de rede restrita para o Key Vault.

Resolução: você encontrará esse erro ao habilitar o firewall do Key Vault para acesso restrito. Você ainda pode configurar o Gateway de Aplicativo em uma rede restrita do Key Vault, seguindo essas etapas:

  1. No Key Vault, abra o painel Rede.
  2. Selecione a guia Firewalls e redes virtuais e selecione Ponto de extremidade privado e redes selecionadas.
  3. Em seguida, usando Redes Virtuais, adicione a rede virtual do Gateway de Aplicativo e a sub-rede. Durante o processo, configure também o ponto de extremidade de serviço "Microsoft.KeyVault" marcando a caixa de seleção.
  4. Por fim, selecione Sim para permitir que os serviços confiáveis ignorem o firewall do Key Vault.

Captura de tela que mostra como resolver o erro de rede restrita.

Código de erro: KeyVaultSoftDeleted

Descrição: o Key Vault associado está no estado de exclusão temporária.

Resolução: no portal do Azure, pesquise por cofre de chaves. Em Serviços, selecione cofre de chaves.

Captura de tela que mostra como pesquisar pelo serviço do cofre de chaves.

Selecione Cofres excluídos gerenciados. Daqui, você pode encontrar o recurso do cofre de chaves excluído e recuperá-lo. Captura de tela que mostra como recuperar um cofre de chaves excluído.

Código de erro: CustomerKeyVaultSubscriptionDisabled

Descrição: a assinatura do Key Vault está desabilitada.

Resolução: a sua assinatura do Azure pode ser desabilitada por vários motivos. Para tomar a medida necessária para resolver, consulte Reativando uma assinatura desabilitada do Azure.

Códigos de erro do Gateway de Aplicativo

Código de erro: ApplicationGatewayCertificateDataOrKeyVaultSecretIdMustBeSpecified / ApplicationGatewaySslCertificateDataMustBeSpecified

Descrição: Você pode encontrar esse erro ao tentar atualizar um certificado de ouvinte. Quando esse erro ocorrer, a alteração para atualizar o certificado será descartada e o ouvinte continuará a lidar com o tráfego com a configuração definida anteriormente.

Resolução: Para resolver esse problema, tente carregar o certificado novamente. Por exemplo, os comandos do PowerShell a seguir podem ser usados para atualizar certificados carregados para Gateway de Aplicativo ou referenciados por meio de Azure Key Vault.

Atualize o certificado carregado diretamente para Gateway de Aplicativo:

$appgw = Get-AzApplicationGateway -ResourceGroupName "<ResourceGroup>" -Name "<AppGatewayName>"

$password = ConvertTo-SecureString -String "<password>" -Force -AsPlainText

Set-AzApplicationGatewaySSLCertificate -Name "<oldcertname>" -ApplicationGateway $appgw -CertificateFile "<newcertPath>" -Password $password

Set-AzApplicationGateway -ApplicationGateway $appgw 

Atualize o certificado referenciado do Azure Key Vault:

$appgw = Get-AzApplicationGateway -ResourceGroupName "<ResourceGroup>" -Name "<AppGatewayName>"

$secret = Get-AzKeyVaultSecret -VaultName "<KeyVaultName>" -Name "<CertificateName>" 
$secretId = $secret.Id.Replace($secret.Version, "") 
$cert = Set-AzApplicationGatewaySslCertificate -ApplicationGateway $AppGW -Name "<CertificateName>" -KeyVaultSecretId $secretId 

Set-AzApplicationGateway -ApplicationGateway $appgw 

Próximas etapas

Esses artigos de solução de problemas podem ser úteis conforme você continua a usar o Gateway de Aplicativo: