Solucionar problemas de rede com o registro

Este artigo ajuda a solucionar problemas que você pode encontrar ao acessar um registro de contêiner do Azure em uma rede virtual ou atrás de um firewall ou servidor proxy.

Sintomas

Pode inclui um ou mais dos seguintes:

  • Não é possível efetuar push ou pull de imagens, e você recebe um erro dial tcp: lookup myregistry.azurecr.io
  • Não é possível efetuar push ou pull de imagens, e você recebe um erro Client.Timeout exceeded while awaiting headers
  • Não é possível efetuar push ou pull de imagens, e você recebe o erro do CLI do Azure Could not connect to the registry login server
  • Não é possível fazer pull de imagens do registro para serviço de Kubernetes do Azure ou outro serviço do Azure
  • Não é possível acessar um registro por trás de um proxy HTTPS e você recebe um erro Error response from daemon: login attempt failed with status: 403 Forbidden ou Error response from daemon: Get <registry>: proxyconnect tcp: EOF Login failed
  • Não é possível definir as configurações de rede virtual e você recebe um erro Failed to save firewall and virtual network settings for container registry
  • 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
  • Não é possível adicionar ou modificar configurações de rede virtual ou regras de acesso público
  • Tarefas do ACR não consegue fazer push ou pull de imagens
  • O Microsoft Defender para Nuvem não pode examinar imagens no Registro ou os resultados do exame não aparecem no Microsoft Defender para Nuvem
  • Você recebe um erro host is not reachable ao tentar acessar um registro configurado com um ponto de extremidade privado.

Causas

  • Um firewall ou proxy do cliente impede o acesso – solução
  • Regras de acesso à rede pública no registro impedem o acesso – solução
  • A rede virtual ou a configuração de ponto de extremidade privado impede o acesso – solução
  • Você tenta integrar o Microsoft Defender para Nuvem ou determinados outros serviços do Azure com um registro que tenha um ponto de extremidade privado, um ponto de extremidade de serviço ou regras de acesso a IP Público – 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, diagnosticar determinados problemas de conectividade de rede ou configuração.

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.

Se você estiver tendo problemas ao usar um registro integrado com o serviço de Kubernetes do Azure, execute o comando az aks check-acr para validar se o registro está acessível no cluster AKS.

Observação

Alguns sintomas de conectividade de rede também podem ocorrer quando há problemas com autenticação ou autorização do Registro. Solucionar problemas de logon de registro.

Possíveis soluções

Configurar o acesso ao firewall do cliente

Para acessar um registro por trás de um firewall do cliente ou servidor proxy, configure regras de firewall para acessar os pontos de extremidade de dados e REST públicos do registro. Se os pontos de extremidade de dados dedicados estão habilitados, você precisará de regras para acessar:

  • Ponto de extremidade REST: <registryname>.azurecr.io
  • Ponto(s) de extremidade de dados: <registry-name>.<region>.data.azurecr.io

Para um registro com replicação geográfica, configure o acesso ao ponto de extremidade de dados para cada réplica regional.

Por trás de um proxy HTTPS, verifique se o cliente e o daemon do Docker estão configurados para comportamento de proxy. Se você alterar as configurações de proxy para o daemon do Docker, reinicie o daemon.

Os logs de recursos do registro na tabela ContainerRegistryLoginEvents podem ajudar a diagnosticar uma tentativa de conexão bloqueada.

Links relacionados:

Configurar acesso público ao registro

Se estiver acessando um registro pela Internet, confirme se o registro permite o acesso à rede pública do seu cliente. Por padrão, um registro de contêiner do Azure permite o acesso aos pontos de extremidade do registro público de todas as redes. Um registro pode limitar o acesso a redes selecionadas ou endereços IP selecionados.

Se o registro estiver configurado para uma rede virtual com um ponto de extremidade de serviço, desabilitar o acesso à rede pública também desabilita o acesso ao longo do ponto de extremidade de serviço. Se o registro estiver configurado para uma rede virtual com link privado, as regras de rede IP não se aplicarão aos pontos de extremidade particulares do registro.

Links relacionados:

Configurar o acesso à VNet

Confirme se a rede virtual está configurada com um ponto de extremidade privado para o link privado ou um ponto de extremidade de serviço (versão prévia). Atualmente, não há suporte para um ponto de extremidade do Azure Bastion.

Se um ponto de extremidade privado estiver configurado, confirme se o DNS resolve o FQDN público do registro, como myregistry.azurecr.io, para o endereço IP privado do registro.

  • Execute o comando az acr check-health com o parâmetro --vnet para confirmar o roteamento de DNS para o ponto de extremidade privado na rede virtual.
  • Use um utilitário de rede como dig ou nslookup para pesquisa de DNS.
  • Verifique se os registros DNS estão configurados para o FQDN do registro e para cada um dos FQDNs do ponto de extremidade dos dados.

Examine as regras de NSG e as marcas de serviço usadas para limitar o tráfego de outros recursos na rede para o registro.

Se um ponto de extremidade de serviço para o registro estiver configurado, confirme se uma regra de rede foi adicionada ao registro que permite o acesso dessa sub-rede de rede. O ponto de extremidade de serviço só dá suporte ao acesso de máquinas virtuais e clusters AKS na rede.

Se você deseja restringir o acesso ao registro usando uma rede virtual em uma assinatura diferente do Azure, registre o provedor de recursos Microsoft.ContainerRegistry nessa assinatura. Registre o provedor de recursos para o registro de contêiner do Azure usando o portal do Azure, CLI do Azure ou outras ferramentas do Azure.

Se o firewall do Azure ou uma solução semelhante estiver configurada na rede, verifique se o tráfego de saída de outros recursos, como um cluster do AKS, está habilitado para alcançar os pontos de extremidade do registro.

Links relacionados:

Configurar o acesso ao serviço

Atualmente, o acesso a um registro de contêiner com restrições de rede não é permitido em vários serviços do Azure:

  • O Microsoft Defender para Nuvem não pode executar o Exame de vulnerabilidade de imagens em um registro que restringe o acesso a pontos de extremidade privados, sub-redes selecionadas ou endereços IP.
  • Recursos de determinados serviços do Azure não podem acessar um registro de contêiner com restrições de rede, incluindo Serviço de Aplicativo do Azure e Instâncias de Contêiner do Azure.

Se o acesso ou a integração desses serviços do Azure com o registro de contêiner for necessário, remova a restrição de rede. Por exemplo, remova os pontos de extremidade privados do registro ou remova ou modifique as regras de acesso público do registro.

A partir de janeiro de 2021, você pode configurar um registro restrito à rede para permitir o acesso de serviços confiáveis selecionados.

Links relacionados:

Solução de problemas avançada

Se a coleção de logs de recursos estiver habilitada no registro, examine o log ContainterRegistryLoginEvents. 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.