Solucionar problemas de logon no registro

Este artigo ajuda você a solucionar problemas que podem ocorrer ao fazer logon em um registro de contêiner do Azure.

Sintomas

Pode inclui um ou mais dos seguintes:

  • Não é possível fazer logon no registro usando docker login, az acr login ou ambos
  • Não é possível fazer logon no registro, e você recebe um erro unauthorized: authentication required ou unauthorized: Application not registered with AAD
  • Não é possível fazer logon no registro, e você recebe um erro de CLI do Azure Could not connect to the registry login server
  • Não é possível efetuar push ou pull de imagens, e você recebe o erro do Docker unauthorized: authentication required
  • Não é possível acessar um registro usando az acr login e você recebe um erro CONNECTIVITY_REFRESH_TOKEN_ERROR. Access to registry was denied. Response code: 403. Unable to get admin user credentials with message: Admin user is disabled. Unable to authenticate using AAD or admin login credentials.
  • Não é possível acessar o Serviço de Kubernetes do Azure, o Azure DevOps ou outro serviço do Azure
  • Não é possível acessar o registro, e você recebe um erro Error response from daemon: login attempt failed with status: 403 Forbidden - Consulte Solucionar problemas de rede com o registro
  • Não é possível acessar ou exibir as configurações do registro no portal do Azure ou gerenciar o registro usando a CLI do Azure

Causas

  • O Docker não está configurado corretamente no ambiente - solução
  • O registro não existe ou o nome está incorreto - solução
  • As credenciais do registro não são válidas - solução
  • O acesso público ao registro está desabilitado. Regras de acesso à rede pública no registro impedem o acesso – solução
  • As credenciais não são autorizadas para operações de push, pull ou Azure Resource Manager - solução
  • As credenciais estão expiradas - solução

Diagnóstico adicional

Execute o comando az acr check-health para obter informações sobre a integridade do ambiente e, opcionalmente, o acesso a um registro de destino. Por exemplo, diagnostique erros de configuração do Docker ou problemas de logon do Microsoft Entra.

Consulte Verificar a integridade de um registro de contêiner do Azure para obter exemplos de comando. Se forem relatados erros, examine a referência de erro e as seções a seguir para obter as soluções recomendadas.

Siga as instruções do documento de suporte do AKS se você não conseguir efetuar pull de imagens do ACR para o cluster do AKS.

Observação

Alguns erros de autenticação ou autorização também poderão ocorrer se houver configurações de firewall ou de rede que impeçam o acesso ao registro. Consulte Solucionar problemas de rede com o registro.

Possíveis soluções

Verificar a configuração do Docker

A maioria dos fluxos de autenticação do Registro de Contêiner do Azure requer uma instalação local do Docker, para que você possa autenticar com o registro para operações como efetuar push e pull de imagens. Confirme se o cliente e o daemon da CLI do Docker (mecanismo do Docker) estão em execução no seu ambiente. Você precisa de cliente do Docker versão 18.03 ou posterior.

Links relacionados:

Especificar o nome de registro correto

Ao usar docker login, forneça o nome do servidor de logon completo do registro, como myregistry.azurecr.io. Certifique-se de usar apenas letras minúsculas. Exemplo:

docker login myregistry.azurecr.io

Ao usar az acr login com uma identidade do Microsoft Entra, primeiro entre na CLI do Azure e, em seguida, especifique o nome do recurso do Azure do registro. O nome do recurso é o nome fornecido quando o registro foi criado, como myregistry (sem um sufixo de domínio). Exemplo:

az acr login --name myregistry

Links relacionados:

Confirmar as credenciais para acessar o registro

Verifique a validade das credenciais usadas para o seu cenário ou se foram fornecidas a você por um proprietário do registro. Alguns possíveis problemas:

  • Se estiver usando uma entidade de serviço Active Directory, certifique-se de usar as credenciais corretas no locatário do Active Directory:
    • Nome de usuário - ID do aplicativo da entidade de serviço (também chamada de ID do cliente)
    • Senha - senha da entidade de serviço (também chamada de segredo do cliente)
  • Se estiver usando um serviço do Azure, como o Serviço de Kubernetes do Azure ou o Azure DevOps para acessar o registro, confirme a configuração do registro para o serviço.
  • Se você tiver executado az acr login com a opção --expose-token, que habilita o logon do registro sem usar o daemon do Docker, certifique-se de autenticar com o nome de usuário 00000000-0000-0000-0000-000000000000.
  • Se o registro estiver configurado para acesso de pull anônimo, as credenciais existentes do Docker armazenadas de um logon anterior do Docker poderão impedir o acesso anônimo. Execute docker logout antes de tentar uma operação de pull anônimo no registro.

Links relacionados:

Confirmar se as credenciais estão autorizadas a acessar o registro

Confirme as permissões de registro que estão associadas às credenciais, como a função do AzureAcrPull para efetuar pull de imagens do registro ou a função AcrPush para enviar imagens por push.

O acesso a um registro no portal ou gerenciamento de registro usando a CLI do Azure requer pelo menos a função Reader ou permissões equivalentes para executar as operações do Azure Resource Manager.

Se suas permissões tiverem sido alteradas recentemente para permitir o acesso ao registro por meio do portal, talvez seja necessário tentar uma sessão anônima ou privada no navegador para evitar qualquer cookie ou cache de navegador obsoleto.

Você ou um proprietário do registro deve ter privilégios suficientes na assinatura para adicionar ou remover atribuições de função.

Links relacionados:

Verificar se as credenciais não expiraram

Os tokens e as credenciais de Active Directory podem expirar após os períodos definidos, impedindo o acesso ao registro. Para habilitar o acesso, talvez as credenciais precisem ser redefinidas ou regeneradas.

  • Se estiver usando uma identidade do AD individual, uma identidade gerenciada ou uma entidade de serviço para o logon do registro, o token do AD expirará após 3 horas. Faça logon novamente no registro.
  • Se você estiver usando uma entidade de serviço do AD com um segredo do cliente expirado, um proprietário da assinatura ou administrador da conta precisará redefinir as credenciais ou gerar uma nova entidade de serviço.
  • Se estiver usando um token no escopo do repositório, um proprietário do registro talvez precisará redefinir uma senha ou gerar um novo token.

Links relacionados:

Solução de problemas avançada

Se a coleção de logs de recursos estiver habilitada no registro, examine o log ContainerRegistryLoginEvents. Esse log armazena os eventos de autenticação e o status, incluindo a identidade de entrada e o endereço IP. Consulte o log para obter falhas de autenticação do registro.

Links relacionados:

Próximas etapas

Se você não resolver o problema aqui, confira as opções a seguir.