Condividi tramite


Risolvere i problemi di accesso al registro

Questo articolo illustra come risolvere i problemi che possono verificarsi durante l'accesso, l'autenticazione o l'autorizzazione con 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 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 del Docker unauthorized: authentication required
  • Non è possibile accedere a un registro di sistema usando az acr login e viene visualizzato l'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 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 per le operazioni push, pull o Azure Resource Manager - soluzione
  • Le credenziali sono scadute - soluzione
  • Se si usa il controllo degli accessi in base al ruolo (RBAC) di Microsoft Entra per la gestione delle autorizzazioni al registro per un'identità di Microsoft Entra (utente, identità gestita o principale del servizio), l'identità potrebbe avere autorizzazioni al registro ma non autorizzazioni del repository - 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.

Annotazioni

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 con il Registro di sistema.

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, accedere prima alla CLI di Azure e quindi specificare il nome della risorsa di Azure del registro. 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:

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 del principale del servizio (detto anche ID cliente)
    • 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 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

  • 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 deve disporre di privilegi sufficienti nella sottoscrizione per aggiungere, modificare o rimuovere assegnazioni di ruolo di Microsoft Entra. Le autorizzazioni per gestire le assegnazioni di ruolo di Microsoft Entra sono concesse dal ruolo Role Based Access Control Administrator.
  • 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 Container Registry Contributor and Data Access Configuration Administrator o le autorizzazioni equivalenti per eseguire operazioni di Azure Resource Manager.

Convalidare le autorizzazioni di identità e le assegnazioni di ruolo

  • Se si usa il controllo degli accessi in base al ruolo (RBAC) di Microsoft Entra per la gestione delle autorizzazioni del Registro di sistema, verificare che l'identità (utente, identità gestita o entità servizio) disponga dell'assegnazione e delle autorizzazioni corrette del ruolo.
    • Se la modalità "Autorizzazioni di assegnazione dei ruoli dal registro" (nel pannello "Proprietà" del portale di Azure) è impostata sulla nuova opzione "Permessi Registro RBAC + Permessi Repository ABAC" e l'identità non può eseguire operazioni di push, pull o eliminare immagini, l'identità potrebbe non avere le autorizzazioni per accedere al repository specifico in cui si trova l'immagine.
      • Controllare le assegnazioni di ruolo esistenti e le condizioni ABAC delle assegnazioni di ruolo per assicurarsi che l'identità disponga delle autorizzazioni corrette per accedere al repository.
      • I registri con la modalità "Registro RBAC + Autorizzazioni del Repository ABAC" non rispettano i ruoli esistenti AcrPull, AcrPush o AcrDelete.
      • Tali registri rispettano invece solo i Container Registry Repository Reader, Container Registry Repository Writer e Container Registry Repository Contributor ruoli per leggere, scrivere o eliminare immagini all'interno dei repository nei registri. Questi ruoli possono avere condizioni di controllo degli accessi basate sugli attributi facoltative che limitano le autorizzazioni concesse a repository specifici.
      • Tenere presente che questi ruoli non concedono le autorizzazioni per l'elenco di cataloghi per elencare i repository nel Registro di sistema. Per elencare i repository (ma non leggere il contenuto all'interno dei repository), è necessario assegnare separatamente il Container Registry Repository Catalog Lister ruolo all'identità. Questo ruolo non supporta le condizioni ABAC, quindi concede le autorizzazioni per elencare tutti i repository in un registro.
      • Per altre informazioni, vedere Microsoft Entra attribute-based access control (ABAC) per le autorizzazioni del repository basato su Microsoft Entra.
    • Se la modalità "autorizzazioni per l'assegnazione di ruoli del registro" è impostata sull'opzione precedente "Autorizzazioni del Registro basate su RBAC", l'identità potrebbe non disporre delle autorizzazioni per accedere al registro e ai relativi repository.
      • Controllare le assegnazioni di ruolo esistenti per assicurarsi che l'identità disponga delle autorizzazioni corrette per accedere al Registro di sistema e ai relativi repository.
      • I registri con la modalità "Permessi del Registro RBAC" rispettano solo i ruoli AcrPull, AcrPush o AcrDelete per leggere, scrivere o eliminare immagini all'interno dei repository in un registro.
      • Per altre informazioni, vedere Panoramica delle autorizzazioni e dei ruoli di Registro Azure Container di Microsoft Entra.

Collegamenti correlati:

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 usano autorizzazioni di repository non basate su token di Microsoft Entra, 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.