Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Resumo
Este artigo explica como solucionar erros comuns do cofre de chaves em Gateway de Aplicativo do Azure e resolver configurações incorretas que podem interromper o gerenciamento de certificados e proteger conexões HTTPS.
O Gateway de Aplicativo permite armazenar certificados TLS com segurança no Azure Key Vault. Quando você usa um recurso do cofre de chaves, é importante que o gateway tenha sempre acesso ao cofre de chaves ao qual está vinculado. Se o Gateway de Aplicações não conseguir buscar o certificado, ele desabilita as escutas HTTPS associadas. Para obter mais informações, consulte Noções básicas sobre ouvintes desabilitados.
Dica
Use um identificador secreto que não especifique uma versão. Usando esse identificador, o Gateway de Aplicativo do Azure girará automaticamente o certificado se uma versão mais recente estiver disponível no Azure Key Vault. Um exemplo de um URI (Uniform Resource Identifier) secreto sem uma versão é: https://myvault.vault.azure.net/secrets/mysecret/.
Assistente do Azure códigos de erro
As seções a seguir descrevem os vários erros que você pode encontrar. Para verificar se o seu gateway apresenta algum desses problemas, acesse o Assistente do Azure na sua conta. Use este artigo de solução de problemas para resolver o problema. Configure alertas do Assistente do Azure para manter-se informado quando um problema no cofre de chaves for detectado no gateway.
Observação
O Application Gateway gera logs de diagnóstico do Key Vault a cada quatro horas. Se o diagnóstico continuar mostrando o erro depois de corrigir a configuração, talvez seja necessário aguardar a atualização dos logs.
Código de erro - "UserAssignedIdentityDoesNotHaveGetPermissionOnKeyVault"
Description
A identidade gerenciada associada atribuída a um usuário não possui a permissão necessária.
Solução
Configure as políticas de acesso do seu cofre de chaves para conceder à identidade gerenciada atribuída pelo usuário a permissão aos segredos. Você pode fazer isso de uma das duas maneiras a seguir:
Política de acesso do cofre
- No portal Azure, vá para o cofre de chaves vinculado.
- Selecione Políticas de acesso.
- Para modelo de permissão, selecione política de acesso do Cofre.
- Em Operações de Gerenciamento de Segredos, selecione a permissão Obter .
- Clique em Salvar.
Para obter mais informações, consulte atribuir uma política de acesso do Key Vault usando o portal do Azure.
Controle de acesso baseado em função (RBAC) do Azure
- No portal Azure, vá para o cofre de chaves vinculado.
- Selecione Políticas de acesso.
- Para Permission model, selecione controle de acesso baseado em função do Azure.
- Acesse o IAM (Controle de Acesso) para configurar permissões.
- Adicione a atribuição de função para sua identidade gerenciada escolhendo os seguintes valores: a. Função: Usuário de Segredos do Key Vault b. Atribuir acesso à: identidade gerenciada c. Membros: selecione a identidade gerenciada atribuída a usuário associada ao gateway de aplicativo.
- Selecione Examinar + atribuir.
Para obter mais informações, consulte o controle de acesso baseado em papéis no Azure Key Vault.
Observação
O suporte do portal para adicionar um novo certificado baseado em cofre de chaves não está disponível no momento quando você usa o controle de acesso baseado em função do Azure. Você pode fazer isso usando um modelo do Azure Resource Manager (ARM), a CLI do Azure ou o Azure PowerShell. Para saber mais, confira o modelo de permissão de controle de acesso baseado em função do Azure no Key Vault.
Código de erro - "SecretDisabled"
Description
O certificado associado está desabilitado no Azure Key Vault.
Solução
Habilite a versão do certificado que o Gateway de Aplicativo usa. Para fazer isso, siga estas etapas:
- No portal Azure, vá para o cofre de chaves vinculado.
- Selecione Certificados.
- Selecione o nome do certificado desejado e selecione a versão desabilitada.
- Na página de gerenciamento, use a alternância para habilitar essa versão do certificado.
Código de erro - "SecretDeletedFromKeyVault"
Description
O certificado associado é excluído do Key Vault.
Solução
Para recuperar um certificado excluído, siga estas etapas:
- No portal Azure, vá para o cofre de chaves vinculado.
- Abra o painel Certificados .
- Use a guia Certificados Excluídos Gerenciados para recuperar um certificado excluído.
Se você excluir permanentemente um objeto de certificado, crie um novo certificado e atualize o Gateway de Aplicativo com os novos detalhes do certificado. Ao configurar por meio de CLI do Azure ou Azure PowerShell, use um URI do identificador secreto sem uma versão. Essa opção permite que as instâncias recuperem uma versão renovada do certificado, se ele existir.
Código de erro - "UserAssignedManagedIdentityNotFound"
Description
A identidade gerenciada associada atribuída pelo usuário é excluída.
Solução
Crie uma nova identidade gerenciada e use-a com o cofre de chaves. Para fazer isso, siga estas etapas:
- Crie novamente uma identidade gerenciada com o mesmo nome usado anteriormente e no mesmo grupo de recursos. Consulte os Logs de Atividade do recurso para obter detalhes sobre nomenclatura.
- Vá para o recurso do cofre de chaves desejado e defina suas políticas de acesso para conceder a essa nova identidade gerenciada a permissão necessária. Para obter mais informações, consulte Código de erro: UserAssignedIdentityDoesNotHaveGetPermissionOnKeyVault.
Código de erro - "KeyVaultHasRestrictedAccess"
Description
Key Vault tem uma configuração de rede restrita.
Solução
Você encontra esse erro ao habilitar o firewall Key Vault para acesso restrito. Configure o Gateway de Aplicativo em uma rede restrita de Key Vault. Para fazer isso, siga estas etapas:
- Em Key Vault, selecione Rede.
- Selecione a guia Firewalls e redes virtuais e selecione o ponto de extremidade privado e as redes selecionadas.
- Use Rede Virtual do Azure para adicionar a rede virtual e a sub-rede do Gateway de Aplicativo.
- Selecione a caixa de seleção Microsoft.KeyVault.
- Selecione Sim. Essa ação permite que os serviços confiáveis ignorem o firewall de Key Vault.
Código de erro - "KeyVaultSoftDeleted"
Description
O cofre de chaves associado está no estado de exclusão reversível.
Solução
Encontre o recurso de cofre de chaves excluído. Para fazer isso, siga estas etapas:
- No portal Azure, pesquise o cofre de chaves.
- Em Serviços, selecione Cofres de chaves.
- Selecione cofres gerenciados excluídos.
- Localize o recurso do cofre de chaves excluído e recupere-o.
Código de erro - "CustomerKeyVaultSubscriptionDisabled"
Description
A assinatura do Key Vault está desabilitada.
Solução
Vários motivos podem fazer com que Azure desabilite sua assinatura. Para tomar as medidas necessárias para resolver esse problema, consulte Reativar uma assinatura do Azure desabilitada.
Códigos de erro do Gateway de Aplicação
Código de erro - "ApplicationGatewayCertificateDataOrKeyVaultSecretIdMustBeSpecified / ApplicationGatewaySslCertificateDataMustBeSpecified"
Description
Você encontra esse erro ao tentar atualizar um certificado de ouvinte. Quando esse erro ocorre, a alteração para atualizar o certificado é descartada e o ouvinte continua a lidar com o tráfego com a configuração definida anteriormente.
Solução
Para resolver esse problema, tente carregar o certificado novamente. Por exemplo, use os seguintes comandos do PowerShell para atualizar certificados carregados no Gateway de Aplicativo ou referenciados por meio do Azure Key Vault.
Atualize o certificado carregado diretamente no Application Gateway.
$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
Atualizar o certificado referenciado de 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