Risolvere i problemi di rete del registro

Questo articolo illustra come risolvere i problemi che possono verificarsi quando si accede a un registro contenitori di Azure in una rete virtuale o dietro un firewall o un server proxy.

Sintomi

Può includere uno o più dei seguenti elementi:

  • Impossibile eseguire il push o il pull delle immagini e viene visualizzato l'errore dial tcp: lookup myregistry.azurecr.io
  • Impossibile eseguire il push o il pull delle immagini e viene visualizzato l'errore Client.Timeout exceeded while awaiting headers
  • Non è possibile eseguire il push o il pull delle immagini e viene visualizzato l'errore dell'interfaccia della riga di comando di Azure Could not connect to the registry login server
  • Impossibile eseguire il pull delle immagini dal Registro di sistema a servizio Azure Kubernetes o a un altro servizio di Azure
  • Non è possibile accedere a un registro dietro un proxy HTTPS e viene visualizzato un errore Error response from daemon: login attempt failed with status: 403 Forbidden o Error response from daemon: Get <registry>: proxyconnect tcp: EOF Login failed
  • Non è possibile configurare le impostazioni della rete virtuale e viene visualizzato l'errore Failed to save firewall and virtual network settings for container registry
  • Impossibile accedere o visualizzare le impostazioni del Registro di sistema in portale di Azure o gestire il Registro di sistema tramite l'interfaccia della riga di comando di Azure
  • Impossibile aggiungere o modificare le impostazioni della rete virtuale o le regole di accesso pubblico
  • Attività del Registro Azure Container non è in grado di eseguire il push o il pull delle immagini
  • Microsoft Defender per il cloud non è possibile analizzare le immagini nel Registro di sistema o i risultati dell'analisi non vengono visualizzati in Microsoft Defender per il cloud
  • Si riceve un errore host is not reachable quando si tenta di accedere a un registro configurato con un endpoint privato.

Cause

  • Un firewall client o un proxy impedisce l'accesso - soluzione
  • Regole di accesso alla rete pubblica nel Registro di sistema impediscono l'accesso - Soluzione
  • La configurazione della rete virtuale o dell'endpoint privato impedisce l'accesso - soluzione
  • Si tenta di integrare Microsoft Defender per il cloud o alcuni altri servizi di Azure con un registro con un endpoint privato, un endpoint di servizio o regole di accesso IP pubblico - soluzione

Ulteriore diagnosi

Eseguire il comando az acr check-health per ottenere altre informazioni sull'integrità dell'ambiente del Registro di sistema e, facoltativamente, accedere a un registro di destinazione. Ad esempio, diagnosticare determinati problemi di connettività o configurazione di rete.

Per esempi di comandi, vedere Controllare l'integrità di un registro Azure Container. Se vengono segnalati errori, esaminare il riferimento all'errore e le sezioni seguenti per le soluzioni consigliate.

Se si verificano problemi durante l'uso di un servizio Azure Kubernetes con un registro integrato, eseguire il comando az aks check-acr per verificare che il cluster del servizio Azure Kubernetes possa raggiungere il Registro di sistema.

Nota

Alcuni sintomi di connettività di rete possono verificarsi anche quando si verificano problemi con l'autenticazione o l'autorizzazione del Registro di sistema. Vedere Risolvere i problemi di accesso al Registro di sistema.

Possibili soluzioni

Configurare l'accesso al firewall client

Per accedere a un registro da dietro un firewall client o un server proxy, configurare le regole del firewall per accedere agli endpoint dati e REST pubblici del Registro di sistema. Se gli endpoint dati dedicati sono abilitati, sono necessarie regole per accedere a:

  • Endpoint REST: <registryname>.azurecr.io
  • Endpoint dati: <registry-name>.<region>.data.azurecr.io

Per un registro con replica geografica, configurare l'accesso all'endpoint dati per ogni replica a livello di area.

Dietro un proxy HTTPS, assicurarsi che sia il client Docker che il daemon Docker siano configurati per il comportamento del proxy. Se si modificano le impostazioni proxy per il daemon Docker, assicurarsi di riavviare il daemon.

I log delle risorse del Registro di sistema nella tabella ContainerRegistryLoginEvents possono aiutare a diagnosticare un tentativo di connessione bloccato.

Collegamenti correlati:

Configurare l'accesso pubblico al Registro di sistema

Se si accede a un registro tramite Internet, verificare che il Registro di sistema consenta l'accesso alla rete pubblica dal client. Per impostazione predefinita, un registro Azure Container consente l'accesso agli endpoint del Registro di sistema pubblici da tutte le reti. Un Registro di sistema può limitare l'accesso alle reti selezionate o agli indirizzi IP selezionati.

Se il Registro di sistema è configurato per una rete virtuale con un endpoint di servizio, la disabilitazione dell'accesso alla rete pubblica disabilita anche l'accesso tramite l'endpoint di servizio. Se il Registro di sistema è configurato per una rete virtuale con collegamento privato, le regole di rete IP non si applicano agli endpoint privati del Registro di sistema.

Collegamenti correlati:

Configurare l'accesso alla rete virtuale

Verificare che la rete virtuale sia configurata con un endpoint privato per collegamento privato o un endpoint di servizio (anteprima). Attualmente un endpoint Azure Bastion non è supportato.

Se è configurato un endpoint privato, verificare che DNS risolva l'FQDN pubblico del Registro di sistema, ad esempio myregistry.azurecr.io all'indirizzo IP privato del Registro di sistema.

  • Eseguire il comando az acr check-health con il --vnet parametro per confermare il routing DNS all'endpoint privato nella rete virtuale.
  • Usare un'utilità di rete, dig ad esempio o nslookup per la ricerca DNS.
  • Assicurarsi che i record DNS siano configurati per il nome di dominio completo del Registro di sistema e per ogni FQDN dell'endpoint dati.

Esaminare le regole del gruppo di sicurezza di rete e i tag del servizio usati per limitare il traffico da altre risorse nella rete al Registro di sistema.

Se è configurato un endpoint di servizio nel Registro di sistema, verificare che al Registro di sistema venga aggiunta una regola di rete che consenta l'accesso da tale subnet di rete. L'endpoint di servizio supporta solo l'accesso da macchine virtuali e cluster del servizio Azure Kubernetes nella rete.

Se si vuole limitare l'accesso al Registro di sistema usando una rete virtuale in una sottoscrizione di Azure diversa, assicurarsi di registrare il Microsoft.ContainerRegistry provider di risorse in tale sottoscrizione. Registrare il provider di risorse per Registro Azure Container usando il portale di Azure, l'interfaccia della riga di comando di Azure o altri strumenti di Azure.

Se Firewall di Azure o una soluzione simile è configurata nella rete, verificare che il traffico in uscita da altre risorse, ad esempio un cluster del servizio Azure Kubernetes, sia abilitato per raggiungere gli endpoint del Registro di sistema.

Collegamenti correlati:

Configurare l'accesso al servizio

Attualmente, l'accesso a un registro contenitori con restrizioni di rete non è consentito da diversi servizi di Azure:

  • Microsoft Defender per il cloud non è possibile eseguire l'analisi delle vulnerabilità delle immagini in un registro che limita l'accesso a endpoint privati, subnet selezionate o indirizzi IP.
  • Le risorse di determinati servizi di Azure non sono in grado di accedere a un registro contenitori con restrizioni di rete, tra cui app Azure Servizio e Istanze di Azure Container.

Se è necessario l'accesso o l'integrazione di questi servizi di Azure con il registro contenitori, rimuovere la restrizione di rete. Ad esempio, rimuovere gli endpoint privati del Registro di sistema o rimuovere o modificare le regole di accesso pubblico del Registro di sistema.

A partire da gennaio 2021, è possibile configurare un registro con restrizioni di rete per consentire l'accesso da servizi attendibili selezionati.

Collegamenti correlati:

Risoluzione avanzata dei problemi

Se la raccolta di log delle risorse è abilitata nel Registro di sistema, esaminare il log ContainterRegistryLoginEvents. Questo log archivia eventi e stato di autenticazione, tra cui l'identità in ingresso e l'indirizzo IP. Eseguire una query nel log per individuare gli errori di autenticazione del Registro di sistema.

Collegamenti correlati:

Passaggi successivi

Se il problema non viene risolto qui, vedere le opzioni seguenti.