Risolvere i problemi di accesso al registro

Questo articolo illustra come risolvere i problemi che possono verificarsi durante l'accesso a un Registro Azure Container.

Sintomi

Può includere uno o più dei seguenti elementi:

  • Non è possibile accedere al Registro di sistema usando docker login, az acr logino entrambi
  • Non è possibile accedere al Registro di sistema e viene visualizzato l'errore unauthorized: authentication required o unauthorized: Application not registered with AAD
  • Non è possibile accedere al Registro di sistema e viene visualizzato l'errore dell'interfaccia della riga di comando di Azure Could not connect to the registry login server
  • Non è possibile eseguire il push o il pull delle immagini e viene visualizzato l'errore Docker unauthorized: authentication required
  • Non è possibile accedere a un Registro di sistema usando az acr login e viene visualizzato un errore 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.
  • Non è possibile accedere al Registro di sistema da servizio Azure Kubernetes, Azure DevOps o da un altro servizio di Azure
  • Non è possibile accedere al Registro di sistema e viene visualizzato l'errore Error response from daemon: login attempt failed with status: 403 Forbidden - Vedere Risolvere i problemi di rete con il Registro di sistema
  • 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

Cause

  • Docker non è configurato correttamente nell'ambiente : soluzione
  • Il Registro di sistema non esiste o il nome non è corretto- soluzione
  • Le credenziali del Registro di sistema non sono valide: soluzione
  • L'accesso pubblico del Registro di sistema è disabilitato. Regole di accesso alla rete pubblica nel Registro di sistema impediscono l'accesso - Soluzione
  • Le credenziali non sono autorizzate per le operazioni push, pull o Azure Resource Manager - soluzione
  • Le credenziali sono scadute - 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 gli errori di configurazione di Docker o i problemi di accesso di Microsoft Entra.

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.

Seguire le istruzioni del documento di supporto del servizio Azure Kubernetes se non è possibile eseguire il pull delle immagini dal registro Azure Container al cluster del servizio Azure Kubernetes.

Nota

Alcuni errori di autenticazione o autorizzazione possono verificarsi anche se sono presenti configurazioni firewall o di rete che impediscono l'accesso al Registro di sistema. Vedere Risolvere i problemi di rete con il Registro di sistema.

Possibili soluzioni

Controllare la configurazione di Docker

La maggior parte dei flussi di autenticazione Registro Azure Container richiede un'installazione Docker locale, in modo da poter eseguire l'autenticazione con il Registro di sistema per operazioni quali il push e il pull delle immagini. Verificare che il client e il daemon dell'interfaccia della riga di comando docker (motore Docker) siano in esecuzione nell'ambiente. È necessario il client Docker versione 18.03 o successiva.

Collegamenti correlati:

Specificare il nome corretto del Registro di sistema

Quando si usa docker login, specificare il nome completo del server di accesso del Registro di sistema, ad esempio myregistry.azurecr.io. Assicurarsi di usare solo lettere minuscole. Esempio:

docker login myregistry.azurecr.io

Quando si usa az acr login con un'identità di Microsoft Entra, accedere prima all'interfaccia della riga di comando di Azure e quindi specificare il nome della risorsa di Azure del Registro di sistema. Il nome della risorsa è il nome specificato quando è stato creato il Registro di sistema, ad esempio myregistry (senza un suffisso di dominio). Esempio:

az acr login --name myregistry

Collegamenti correlati:

Confermare le credenziali per accedere al Registro di sistema

Controllare la validità delle credenziali usate per lo scenario o fornite da un proprietario del Registro di sistema. Alcuni possibili problemi:

  • Se si usa un'entità servizio Active Directory, assicurarsi di usare le credenziali corrette nel tenant di Active Directory:
    • Nome utente - ID applicazione dell'entità servizio (detto anche ID client)
    • Password - Password dell'entità servizio (denominata anche segreto client)
  • Se si usa un servizio di Azure, ad esempio servizio Azure Kubernetes o Azure DevOps per accedere al Registro di sistema, verificare la configurazione del Registro di sistema per il servizio.
  • Se è stata eseguita az acr login con l'opzione , che abilita l'accesso --expose-token al Registro di sistema senza usare il daemon Docker, assicurarsi di eseguire l'autenticazione con il nome utente 00000000-0000-0000-0000-000000000000.
  • Se il Registro di sistema è configurato per l'accesso pull anonimo, le credenziali Docker esistenti archiviate da un account di accesso Docker precedente possono impedire l'accesso anonimo. Eseguire docker logout prima di tentare un'operazione pull anonima nel Registro di sistema.

Collegamenti correlati:

Verificare che le credenziali siano autorizzate ad accedere al Registro di sistema

Verificare le autorizzazioni del Registro di sistema associate alle credenziali, ad esempio il ruolo di Azure per eseguire il AcrPull pull delle immagini dal Registro di sistema o il ruolo per eseguire il AcrPush push delle immagini.

L'accesso a un registro nel portale o nella gestione del Registro di sistema tramite l'interfaccia della riga di comando di Azure richiede almeno il Reader ruolo o le autorizzazioni equivalenti per eseguire operazioni di Azure Resource Manager.

Se le autorizzazioni sono state modificate di recente per consentire l'accesso al Registro di sistema tramite il portale, potrebbe essere necessario provare una sessione in incognito o privata nel browser per evitare la cache o i cookie del browser non aggiornati.

L'utente o il proprietario del Registro di sistema deve disporre di privilegi sufficienti nella sottoscrizione per aggiungere o rimuovere assegnazioni di ruolo.

Collegamenti correlati:

Verificare che le credenziali non siano scadute

I token e le credenziali di Active Directory possono scadere dopo i periodi definiti, impedendo l'accesso al Registro di sistema. Per abilitare l'accesso, potrebbe essere necessario reimpostare o rigenerare le credenziali.

  • Se si usa una singola identità di Active Directory, un'identità gestita o un'entità servizio per l'accesso al Registro di sistema, il token di Active Directory scade dopo 3 ore. Accedere di nuovo al Registro di sistema.
  • Se si usa un'entità servizio di Active Directory con un segreto client scaduto, un proprietario della sottoscrizione o un amministratore account deve reimpostare le credenziali o generare una nuova entità servizio.
  • Se si usa un token con ambito repository, un proprietario del Registro di sistema potrebbe dover reimpostare una password o generare un nuovo token.

Collegamenti correlati:

Risoluzione avanzata dei problemi

Se la raccolta di log delle risorse è abilitata nel Registro di sistema, esaminare il log ContainerRegistryLoginEvents. 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.