Résoudre des problèmes de connexion au registre

Cet article vous aide à résoudre des problèmes que vous pourriez rencontrer lors de la connexion à un registre de conteneurs Azure.

Symptômes

Peuvent inclure un ou plusieurs des symptômes suivants :

  • Impossibilité de se connecter au registre à l’aide de docker login, de az acr login ou des deux.
  • Impossibilité de se connecter au registre et affichage de l’erreur unauthorized: authentication required ou unauthorized: Application not registered with AAD.
  • Impossibilité de se connecter au registre et affichage de l’erreur Azure CLI Could not connect to the registry login server.
  • Impossibilité d’envoyer ou d’extraire des images et affichage de l’erreur Docker unauthorized: authentication required.
  • Impossible d’accéder au registre à l’aide de az acr login et vous recevez une erreur 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.
  • Impossibilité d’accéder au registre à partir d’Azure Kubernetes Service, d’Azure DevOps ou d’un autre service Azure.
  • Impossibilité d’accéder au registre et affichage de l’erreur Error response from daemon: login attempt failed with status: 403 Forbidden. Consultez Résoudre des problèmes de réseau avec un registre.
  • Impossibilité de consulter ou d’afficher des paramètres du registre dans le portail Azure ou de gérer le registre à l’aide d’Azure CLI.

Causes

  • Docker n’est pas configuré correctement dans votre environnement : solution.
  • Le registre n’existe pas ou le nom est incorrect : solution.
  • Les informations d’identification du registre ne sont pas valides : solution.
  • L’accès public au Registre est désactivé. Les règles d’accès au réseau public dans le registre empêchent l’accès : solution.
  • Les informations d’identification ne sont pas autorisées pour les opérations d’envoi, d’extraction ou d’Azure Resource Manager : solution.
  • Les informations d’identification ont expiré : solution

Diagnostics plus poussés

Exécutez la commande az acr check-health pour obtenir des informations supplémentaires sur l’intégrité de l’environnement de registre, et éventuellement l’accès à un registre cible. Par exemple, diagnostiquez des erreurs de configuration de Docker ou des problèmes de connexion à Microsoft Entra.

Pour des exemples de commandes, consultez Vérifier l’intégrité d’un registre de conteneurs Azure. Si des erreurs sont signalées, examinez les Informations de référence sur les erreurs et les sections suivantes pour obtenir les solutions recommandées.

Suivez les instructions de la documentation de support AKS si vous ne parvenez pas à extraire d’images d’ACR dans le cluster AKS.

Notes

Certaines erreurs d’authentification ou d’autorisation peuvent également se produire s’il existe des configurations de pare-feu ou de réseau qui empêchent l’accès au registre. Consultez Résoudre des problèmes de réseau avec un registre.

Solutions possibles

Vérifier la configuration de Docker

La plupart des flux d’authentification d’Azure Container Registry requièrent une installation de Docker locale pour vous permettre de vous authentifier auprès de votre registre pour des opérations telles que l’envoi et l’extraction d’images. Vérifiez que le client et le démon de l’interface de ligne de commande de Docker (moteur Docker) s’exécutent dans votre environnement. Vous avez besoin d’un client Docker version 18.03 ou ultérieure.

Liens connexes :

Spécifier un nom de registre correct

Lorsque vous utilisez docker login, indiquez le nom complet du serveur de connexion du registre, par exemple myregistry.azurecr.io. Veillez à utiliser uniquement des lettres minuscules. Exemple :

docker login myregistry.azurecr.io

Lorsque vous utilisez la commande az acr login avec une identité Microsoft Entra, commencez par vous connecter à l’interface Azure CLI, puis spécifiez le nom de ressource Azure du registre. Le nom de la ressource est le nom fourni lors de la création du registre, par exemple myregistry (sans suffixe de domaine). Exemple :

az acr login --name myregistry

Liens connexes :

Confirmer les informations d’identification pour accéder au registre

Vérifiez la validité des informations d’identification que vous utilisez pour votre scénario ou qui vous ont été fournies par un propriétaire du registre. Autres problèmes possibles

  • Si vous utilisez un principal de service Active Directory, veillez à utiliser les informations d’identification correctes dans le locataire Active Directory :
    • Nom d'utilisateur - ID d’application du principal de service (également appelé ID client)
    • Mot de passe - mot de passe du principal de service (également appelé clé secrète client)
  • Si vous utilisez un service Azure, tel que Azure Kubernetes Service ou Azure DevOps pour accéder au registre, confirmez la configuration du registre pour votre service.
  • Si vous avez exécuté az acr login avec l’option --expose-token qui active la connexion au registre sans utiliser le démon Docker, veillez à vous authentifier avec le nom d’utilisateur 00000000-0000-0000-0000-000000000000.
  • Si votre registre est configuré pour un accès par tirage (pull) anonyme, les informations d’identification Docker existantes stockées à partir d’une connexion Docker précédente peuvent empêcher l’accès anonyme. Exécutez docker logout avant de tenter d’effectuer une opération de tirage (pull) anonyme sur le Registre.

Liens connexes :

Vérifier que les informations d’identification autorisent l’accès au registre

Vérifiez les autorisations du registre associées aux informations d’identification, telles que le rôle Azure AcrPull pour extraire des images du registre, ou le rôle AcrPush pour envoyer des images.

L’accès à un registre dans le portail ou la gestion du registre à l’aide d’Azure CLI nécessitent au moins le rôle Reader ou des autorisations équivalentes pour effectuer les opérations Azure Resource Manager.

Si vos autorisations ont été récemment modifiées pour permettre l’accès au registre via le portail, vous devrez peut-être utiliser une session incognito ou privée dans votre navigateur pour éviter tout cache de navigateur ou tous cookies obsolètes.

Vous ou un propriétaire du registre devez disposer de privilèges suffisants dans l’abonnement pour ajouter ou supprimer des attributions de rôle.

Liens connexes :

Vérifier que les informations d’identification n’ont pas expiré

Les jetons et les informations d’identification d’Active Directory peuvent expirer après des périodes définies, ce qui empêche l’accès au registre. Pour activer l’accès, il se peut que vous deviez réinitialiser ou régénérer les informations d’identification.

  • En cas d’utilisation d’une identité AD individuelle, d’une identité managée ou d’un principal de service pour la connexion au registre, le jeton AD expire au bout de 3 heures. Connectez-vous à nouveau au registre.
  • Si vous utilisez un principal de service AD avec une clé secrète client expirée, un administrateur du compte ou un propriétaire de l’abonnement doit réinitialiser les informations d’identification ou générer un nouveau principal de service.
  • Si vous utilisez un jeton d’étendue de référentiel, il se peut que le propriétaire du registre doive réinitialiser un mot de passe ou générer un nouveau jeton.

Liens connexes :

Dépannage avancé

Si la collecte des journaux de ressources est activée dans le registre, consultez le journal ContainerRegistryLoginEvents. Ce journal stocke les événements d’authentification et l’état, y compris l’identité et l’adresse IP entrantes. Interrogez le journal sur les échecs d’authentification du registre.

Liens connexes :

Étapes suivantes

Si vous ne résolvez pas votre problème ici, consultez les options suivantes.