Solucionar problemas de logon de 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
ouunauthorized: 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 erroCONNECTIVITY_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ário00000000-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:
- Visão geral da autenticação
- Login individual com o Microsoft Entra ID
- Logon com a entidade de serviço
- Logon com a identidade gerenciada
- Logon com o token com escopo do repositório
- Logon com a conta de administrador
- Códigos de erro de autenticação e autorização do Microsoft Entra
- Referência az acr login
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:
- Funções e permissões do Azure - Registro de Contêiner do Azure
- Logon com o token com escopo do repositório
- Adicionar ou remover atribuições de função do Azure usando o portal do Azure
- Use o portal para criar um aplicativo do Microsoft Entra e uma entidade de serviço que possa acessar recursos
- Criar um novo segredo do aplicativo
- Códigos de autenticação e autorização do Microsoft Entra
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:
- Redefinir credenciais de entidade de serviço
- Regenerar senhas de token
- Login individual com o Microsoft Entra ID
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:
- Logs para avaliação de diagnóstico e auditoria
- Perguntas frequentes sobre registro de contêiner
- Melhores práticas para o Registro de Contêiner do Azure
Próximas etapas
Se você não resolver o problema aqui, confira as opções a seguir.
- Outros tópicos de solução de problemas de registro incluem:
- Opções de suporte da comunidade
- Microsoft Q&A
- Abrir um tíquete de suporte -com base nas informações fornecidas, um diagnóstico rápido pode ser executado para falhas de autenticação no registro