Risolvere i problemi di accesso al registro
Questo articolo illustra come risolvere i problemi che possono verificarsi quando si effettua l'accesso a un Registro Azure Container.
Sintomi
Può includere uno o più dei problemi seguenti:
- Non è possibile accedere al registro di sistema usando
docker login
,az acr login
o entrambi - Non è possibile accedere al registro di sistema e vengono visualizzati gli errori
unauthorized: authentication required
ounauthorized: 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 del Docker
unauthorized: authentication required
- Non è possibile accedere a un registro di sistema usando
az acr login
e viene visualizzato l'erroreCONNECTIVITY_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 dal servizio Azure Kubernetes, da 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 nel 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 al registro di sistema è disabilitato. Regole di accesso alla rete pubblica nel Registro di sistema impediscono l'accesso - Soluzione
- Le credenziali non sono autorizzate alle operazioni push, pull o di 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 contenute nel 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 di firewall o di rete che impediscono l'accesso al registro di sistema. Vedere Risolvere i problemi di rete del registro.
Possibili soluzioni
Controllare la configurazione di Docker
La maggior parte dei flussi di autenticazione di Registro Azure Container richiede un'installazione di Docker locale per 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 di Docker (motore Docker) siano in esecuzione nell'ambiente. È necessario il client Docker nella versione 18.03 o successiva.
Collegamenti correlati:
Specificare il nome del registro corretto
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, innanzitutto accedere all'interfaccia della riga di comando di Azure, quindi specificare il nome della risorsa di Azure del registro di sistema. Il nome della risorsa è il nome che è stato fornito al momento della creazione del registro di sistema, ad esempio myregistry (senza un suffisso di dominio). Esempio:
az acr login --name myregistry
Collegamenti correlati:
Verificare le credenziali per accedere al registro
Controllare la validità delle credenziali usate per lo scenario o fornite da un proprietario del registro di sistema. Alcuni dei possibili problemi:
- Se si usa un'entità servizio di 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 il servizio Azure Kubernetes o Azure DevOps, per accedere al registro di sistema, verificare la configurazione del registro di sistema per il servizio.
- Se è stato eseguito
az acr login
con l'opzione--expose-token
, che abilita l'accesso al registro di sistema senza usare il daemon Docker, assicurarsi di eseguire l'autenticazione con il nome utente00000000-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:
- Panoramica dell'autenticazione
- Accedere individuale con Microsoft Entra ID
- Accedere con un'entità servizio
- Accedere con un'identità gestita
- Accedere con un token con ambito repository
- Accesso con account amministratore
- Codici errore di autenticazione e autorizzazione di Microsoft Entra
- az acr login riferimento
Verificare che le credenziali siano autorizzate ad accedere al registro
Verificare le autorizzazioni del registro di sistema associate alle credenziali, ad esempio il ruolo di Azure AcrPull
per eseguire il pull delle immagini dal registro di sistema o il ruolo AcrPush
per eseguire il 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 ruolo Reader
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 che la cache o i cookie del browser non siano aggiornati.
L'utente o il proprietario del registro di sistema devono disporre di privilegi sufficienti nella sottoscrizione per aggiungere o rimuovere assegnazioni di ruolo.
Collegamenti correlati:
- Ruoli e autorizzazioni di Azure - Registro Azure Container
- Accedere con un token con ambito repository
- Aggiungere o rimuovere assegnazioni di ruolo di Azure usando il portale di Azure
- Usare il portale per creare un'applicazione e un'entità servizio Microsoft Entra in grado di accedere alle risorse
- Crea un nuovo segreto dell'applicazione
- Codici di autenticazione e autorizzazione di Microsoft Entra
Verificare che le credenziali non siano scadute
I token e le credenziali 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 devono 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:
- Reimpostare le credenziali dell'entità servizio
- Rigenerare le password dei token
- Accedere individuale con Microsoft Entra ID
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 sul log per errori di autenticazione del Registro di sistema.
Collegamenti correlati:
- Log per la valutazione diagnostica e il controllo
- Domande frequenti sul Registro Contenitori
- Procedure consigliate per Registro Azure Container
Passaggi successivi
Se il problema non viene risolto qui, vedere le opzioni seguenti.
- Altri argomenti relativi alla risoluzione dei problemi del Registro di sistema includono:
- Opzioni di supporto della community
- Microsoft Q&A
- Aprire un ticket di supporto: in base alle informazioni fornite, potrebbe essere eseguita una diagnostica rapida per individuare gli errori di autenticazione nel registro di sistema