Erros comuns do cofre de chaves no Gateway de Aplicativo do Azure
O Application Gateway permite que os clientes armazenem certificados TLS com segurança no Cofre de Chaves do Azure. Ao usar um recurso de cofre de chaves, é importante que o gateway sempre tenha acesso ao cofre de chaves vinculado. Se o Application Gateway não conseguir buscar o certificado, os ouvintes HTTPS associados serão colocados em um estado desabilitado. Mais informações.
Este artigo ajuda você a entender os detalhes dos códigos de erro e as etapas para resolver essas configurações incorretas do cofre de chaves.
Gorjeta
Use um identificador secreto que não especifique uma versão. Dessa forma, o Gateway de Aplicativo do Azure alternará automaticamente o certificado, se uma versão mais recente estiver disponível no Cofre da Chave do Azure. Um exemplo de um URI secreto sem uma versão é: https://myvault.vault.azure.net/secrets/mysecret/
.
Códigos de erro do Azure Advisor
As seções a seguir descrevem os vários erros que você pode encontrar. Você pode verificar se seu gateway tem algum problema desse tipo visitando o Azure Advisor para sua conta e usar este artigo de solução de problemas para corrigir o problema. Recomendamos configurar os alertas do Azure Advisor para se manter informado quando um problema no cofre de chaves for detetado no seu gateway.
Nota
O Gateway de Aplicativo do Azure gera logs para diagnósticos do cofre de chaves a cada quatro horas. Se o diagnóstico continuar a mostrar o erro depois de ter corrigido a configuração, poderá ter de aguardar até que os registos sejam atualizados.
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 permissão de identidade gerenciada atribuída pelo usuário em segredos. Pode fazê-lo de qualquer uma das seguintes formas:
Política de acesso ao Vault
- Vá para o cofre de chaves vinculado no portal do Azure.
- Abra a folha Políticas de acesso.
- Para Modelo de permissão, selecione Política de acesso ao Vault.
- Em Operações de Gerenciamento Secretas, selecione a permissão Obter .
- Selecione Guardar.
Para obter mais informações, consulte Atribuir uma política de acesso ao Cofre da Chave usando o portal do Azure.
Controlo de acesso baseado em funções do Azure
- Vá para o cofre de chaves vinculado no portal do Azure.
- Abra a folha Políticas de acesso.
- Para Modelo de permissão, selecione Controle de acesso baseado em função do Azure.
- Navegue até a folha Controle de Acesso (IAM) para configurar permissões.
- Adicione atribuição de função para sua identidade gerenciada escolhendo o seguinte
a. Função: Key Vault Secrets User
b. Atribuir acesso a: Identidade gerenciada
c. Membros: selecione a identidade gerenciada atribuída pelo usuário que você associou ao seu gateway de aplicativo. - Selecione Rever + atribuir.
Para obter mais informações, consulte Controle de acesso baseado em função do Azure no Cofre da Chave.
Nota
O suporte do portal para adicionar um novo certificado baseado em cofre de chaves não está disponível no momento ao usar o controle de acesso baseado em função do Azure. Você pode fazer isso usando o modelo ARM, CLI ou PowerShell. Visite esta página para obter orientações.
Código de erro: SecretDisabled
Descrição: O certificado associado foi desativado no Cofre da Chave.
Resolução: reative a versão do certificado que está atualmente em uso para o Application Gateway.
- Vá para o cofre de chaves vinculado no portal do Azure.
- Abra o painel Certificados .
- Selecione o nome do certificado necessário e, em seguida, selecione a versão desativada.
- Na página de gerenciamento, use a alternância para habilitar essa versão do certificado.
Código de erro: SecretDeletedFromKeyVault
Descrição: O certificado associado foi excluído do Cofre da Chave.
Resolução: para recuperar um certificado excluído:
- Vá para o cofre de chaves vinculado no portal do Azure.
- Abra o painel Certificados .
- 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 novo certificado e atualizar o Application Gateway com os novos detalhes do certificado. Quando estiver configurando por meio da CLI do Azure ou do Azure PowerShell, use um URI de identificador secreto sem uma versão. Essa opção permite que as instâncias recuperem uma versão renovada do certificado, se ela existir.
Código de erro: UserAssignedManagedIdentityNotFound
Descrição: A identidade gerenciada atribuída pelo usuário associada foi excluída.
Resolução: crie uma nova identidade gerenciada e use-a com o cofre de chaves.
- Recrie uma identidade gerenciada com o mesmo nome que foi usado anteriormente e sob o mesmo grupo de recursos. (TIP: Consulte os Logs de atividade do recurso para obter detalhes de nomenclatura).
- Vá para o recurso de cofre de chaves desejado e defina suas políticas de acesso para conceder a essa nova identidade gerenciada a permissão necessária. Você pode seguir as mesmas etapas mencionadas em UserAssignedIdentityDoesNotHaveGetPermissionOnKeyVault.
Código de erro: KeyVaultHasRestrictedAccess
Descrição: Há uma configuração de rede restrita para o Cofre da Chave.
Resolução: você encontrará esse erro ao ativar o firewall do Cofre da Chave para acesso restrito. Você ainda pode configurar o Application Gateway em uma rede restrita do Cofre da Chave, seguindo estas etapas:
- No Cofre da Chave, abra o painel Rede .
- Selecione a guia Firewalls e redes virtuais e selecione Ponto de extremidade privado e redes selecionadas.
- Em seguida, usando Redes Virtuais, adicione a rede virtual e a sub-rede do Application Gateway. Durante o processo, configure também o ponto de extremidade do serviço 'Microsoft.KeyVault' marcando sua caixa de seleção.
- Por fim, selecione Sim para permitir que os Serviços Confiáveis ignorem o firewall do Cofre de Chaves.
Código de erro: KeyVaultSoftDeleted
Descrição: O cofre de chaves associado está no estado de exclusão suave.
Resolução: no portal do Azure, procure o cofre da chave. Em Serviços, selecione Cofres de chaves.
Selecione Cofres excluídos gerenciados. A partir daqui, você pode encontrar o recurso do Cofre da Chave excluído e recuperá-lo.
Código de erro: CustomerKeyVaultSubscriptionDisabled
Descrição: A subscrição do Cofre da Chave está desativada.
Resolução: sua assinatura do Azure pode ser desabilitada por vários motivos. Para tomar as medidas necessárias para resolver, consulte Reativando uma assinatura do Azure desabilitada.
Códigos de erro do Application Gateway
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 seguintes comandos do PowerShell podem ser usados para atualizar certificados carregados no Application Gateway ou referenciados por meio do Azure Key Vault.
Atualizar 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 certificado referenciado do Cofre da Chave do Azure:
$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óximos passos
Estes artigos de solução de problemas podem ser úteis à medida que você continua a usar o Application Gateway: