Устранение неполадок при входе в реестр

Информация, представленная в этой статье, поможет устранить неполадки, которые могут возникнуть при входе в реестр контейнеров Azure.

Симптомы

Признаки могут выражаться следующим образом.

  • Не удается войти в реестр с помощью docker login, az acr login или их комбинации
  • Не удается войти в реестр, отображается сообщение об ошибке unauthorized: authentication required или unauthorized: Application not registered with AAD
  • Не удается войти в реестр, отображается ошибка Azure CLI Could not connect to the registry login server
  • Не удается отправить или извлечь образы, отображается сообщение об ошибке Docker unauthorized: authentication required
  • Не удается получить доступ к реестру из службы Azure Kubernetes, Azure DevOps или другой службы Azure
  • Не удается получить доступ к реестру. Вы получаете сообщение об ошибке. Error response from daemon: login attempt failed with status: 403 Forbidden см. Error response from daemon: login attempt failed with status: 403 Forbidden .
  • Не удается получить доступ или просмотреть параметры реестра на портале Azure или управлять реестром с помощью Azure CLI

Причины

  • Неправильная конфигурация Docker в используемой среде – решение
  • Реестр не существует, или указано неверное имя – решение
  • Учетные данные реестра являются недействительными – решение
  • Учетные данные не имеют прав для принудительного выполнения операций отправки, получения или операций Azure Resource Manager – решение
  • Срок действия учетных данных истек – решение

Дальнейшая диагностика

Выполните команду az acr check-health, чтобы получить дополнительную информацию о работоспособности среды реестра и, при необходимости, получить доступ к целевому реестру. Например, диагностика ошибок конфигурации Docker или проблемы при выполнении входа в Azure Active Directory.

Примеры команд см. в статье Проверка работоспособности реестра контейнеров Azure. Если сообщается об ошибках, см. справку по ошибкам и следующие статьи, чтобы найти информацию по рекомендуемым решениям.

При возникновении проблем при использовании реестра со службой Azure Kubernetes запустите команду az aks check-acr, чтобы убедиться, что реестр доступен из кластера AKS.

Примечание

Некоторые ошибки проверки подлинности или авторизации также могут возникать, брандмауэр или сетевые конфигурации препятствуют доступу к реестру. См. статью Устранение неполадок в сети при работе с реестром.

Возможные решения

Проверка конфигурации Docker

Для большинства потоков проверки подлинности реестра контейнеров Azure требуется локальная установка Docker, чтобы можно было пройти проверку подлинности в своем реестре для таких операций, как отправка и получение образов. Убедитесь, что клиент Docker CLI и управляющая программа (Docker) выполняются в используемой среде. Требуется клиент Docker версии 18.03 или более поздней.

Связанные ссылки

Укажите правильное имя реестра

При использовании docker login Укажите полное имя сервера входа в реестр, например docker login. Убедитесь, что используются только строчные буквы. Пример

docker login myregistry.azurecr.io

При использовании az acr login с удостоверением Azure Active Directory сначала выполните вход в Azure CLI, а затем укажите имя ресурса Azure в реестре. Имя ресурса — это имя, заданное при создании реестра, например myregistry (без суффикса домена). Пример

az acr login --name myregistry

Связанные ссылки

Подтверждение учетных данных для доступа в реестр

Проверьте достоверность учетных данных, которые используются для выполнения сценария или были предоставлены владельцем реестра. Возможны следующие проблемы.

  • При использовании субъекта-службы Active Directory убедитесь, что в клиенте Active Directory используются правильные учетные данные.
    • Имя пользователя — идентификатор приложения субъекта-службы (также называется идентификатором клиента)
    • Пароль — пароль субъекта-службы (также называется секретом клиента)
  • При использовании службы Azure, например Azure Kubernetes или Azure DevOps, для доступа к реестру подтвердите конфигурацию реестра для используемой службы.
  • При запуске az acr login с параметром --expose-token, который включает вход в реестр без использования управляющей программы Docker, убедитесь, что проверка подлинности выполняется с помощью имени пользователя 00000000-0000-0000-0000-000000000000.
  • Если реестр настроен для анонимного доступа по запросу, существующие учетные данные Docker, сохраненные при предыдущем входе в Docker, могут помешать анонимному доступу. Запустите docker logout перед попыткой выполнения анонимной операции по запросу в реестре.

Связанные ссылки

Убедитесь, что для учетных данных определены права на доступ к реестру

Подтвердите привилегии для использования реестра, связанные с учетными данными, например роль Azure AcrPull для запроса образов из реестра или роль AcrPush для отправки образов.

Для доступа к реестру на портале или управления реестром с помощью Azure CLI требуется, как минимум, роль Reader или эквивалентные привилегии для выполнения операций в Azure Resource Manager.

Если привилегии пользователя недавно изменились, чтобы разрешить доступ к реестру через портал, может потребоваться вход в режиме инкогнито или частный сеанс в используемом браузере во избежание использования устаревшего кэша браузера или файлов cookie.

Пользователь или владелец реестра должны иметь достаточные привилегии по подписке, чтобы добавлять или удалять назначения ролей.

Связанные ссылки

Убедитесь, что срок действия учетных данных не истек

Срок действия токенов и учетных данных Active Directory может истечь по окончании определенного периода времени, после чего доступ к реестру будет невозможен. Чтобы разрешить доступ, может потребоваться сброс или повторное создание учетных данных.

  • При использовании индивидуального удостоверения AD, управляемого удостоверения или субъекта-службы для входа в реестр срок действия токена AD истекает через 3 часа. Снова выполните вход в реестр.
  • При использовании субъекта-службы AD с секретом клиента, срок действия которого истек, владельцу подписки или администратору учетной записи необходимо сбросить учетные данные или создать новый субъект-службу.
  • При использовании токена из области репозитория владельцу реестра может потребоваться сбросить пароль или создать новый токен.

Связанные ссылки

Расширенный поиск проблем

Если в реестре включен Сбор журналов ресурсов , проверьте журнал контаинеррегистрилогиневентс. В этом журнале хранятся события проверки подлинности и состояния, включая входящий идентификатор и IP-адрес. Запросите журнал о сбоях проверки подлинности в реестре.

Связанные ссылки

Дальнейшие действия

Если проблема не решена, воспользуйтесь следующими вариантами.