Устранение неполадок при входе в реестр
Информация, представленная в этой статье, поможет устранить неполадки, которые могут возникнуть при входе в реестр контейнеров 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
- Не удалось получить доступ к реестру с помощью
az acr login
, появляется сообщение об ошибке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.
- Не удается получить доступ к реестру из службы Azure Kubernetes, Azure DevOps или другой службы Azure
- Не удается получить доступ к реестру, отображается сообщение об ошибке
Error response from daemon: login attempt failed with status: 403 Forbidden
. См. статью Устранение неполадок сети при использовании реестра - Не удается получить доступ или просмотреть параметры реестра на портале Azure или управлять реестром с помощью Azure CLI
Причины
- Неправильная конфигурация Docker в используемой среде – решение
- Реестр не существует, или указано неверное имя – решение
- Учетные данные реестра являются недействительными – решение
- Общий доступ к реестру отключен. Правила доступа к публичной сети в реестре блокируют доступ — решение
- Учетные данные не имеют прав для принудительного выполнения операций отправки, получения или операций Azure Resource Manager – решение
- Срок действия учетных данных истек – решение
Дальнейшая диагностика
Выполните команду az acr check-health, чтобы получить дополнительную информацию о работоспособности среды реестра и, при необходимости, получить доступ к целевому реестру. Например, диагностика ошибок конфигурации Docker или проблем с именем входа Microsoft Entra.
Примеры команд см. в статье Проверка работоспособности реестра контейнеров Azure. Если сообщается об ошибках, см. справку по ошибкам и следующие статьи, чтобы найти информацию по рекомендуемым решениям.
Если не удается извлечь образы из ACR в кластер AKS, следуйте инструкциям из справочного документа по AKS.
Примечание.
Некоторые ошибки проверки подлинности или авторизации также могут возникать, брандмауэр или сетевые конфигурации препятствуют доступу к реестру. См. статью Устранение неполадок в сети при работе с реестром.
Возможные решения
Проверка конфигурации Docker
Для большинства потоков проверки подлинности реестра контейнеров Azure требуется локальная установка Docker, чтобы можно было пройти проверку подлинности в своем реестре для таких операций, как отправка и получение образов. Убедитесь, что клиент Docker CLI и управляющая программа (Docker) выполняются в используемой среде. Требуется клиент Docker версии 18.03 или более поздней.
Связанные ссылки
Укажите правильное имя реестра
При использовании docker login
укажите полное имя сервера для входа в реестр, например myregistry.azurecr.io. Убедитесь, что используются только строчные буквы. Пример:
docker login myregistry.azurecr.io
При использовании az acr login с удостоверением Microsoft Entra сначала войдите в 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
перед попыткой выполнения анонимной операции по запросу в реестре.
Связанные ссылки
- Общие сведения об аутентификации
- Отдельный вход с идентификатором Microsoft Entra
- Вход с помощью субъекта-службы
- Вход с использованием управляемого удостоверения
- Вход с использованием токена из области репозитория
- Вход с использованием учетной записи администратора
- Коды ошибок при аутентификации и авторизации Microsoft Entra
- Справочная информация по az acr login
Убедитесь, что для учетных данных определены права на доступ к реестру
Подтвердите привилегии для использования реестра, связанные с учетными данными, например роль Azure AcrPull
для запроса образов из реестра или роль AcrPush
для отправки образов.
Для доступа к реестру на портале или управления реестром с помощью Azure CLI требуется, как минимум, роль Reader
или эквивалентные привилегии для выполнения операций в Azure Resource Manager.
Если привилегии пользователя недавно изменились, чтобы разрешить доступ к реестру через портал, может потребоваться вход в режиме инкогнито или частный сеанс в используемом браузере во избежание использования устаревшего кэша браузера или файлов cookie.
Пользователь или владелец реестра должны иметь достаточные привилегии по подписке, чтобы добавлять или удалять назначения ролей.
Связанные ссылки
- Роли и привилегии Azure – Реестр контейнеров Azure
- Вход с использованием токена из области репозитория
- Добавление и удаление назначений ролей Azure с помощью портала Azure
- Создание приложения Microsoft Entra и субъекта-службы с доступом к ресурсам с помощью портала
- Создание секрета приложения
- Коды проверки подлинности и авторизации Microsoft Entra
Убедитесь, что срок действия учетных данных не истек
Срок действия токенов и учетных данных Active Directory может истечь по окончании определенного периода времени, после чего доступ к реестру будет невозможен. Чтобы разрешить доступ, может потребоваться сброс или повторное создание учетных данных.
- При использовании индивидуального удостоверения AD, управляемого удостоверения или субъекта-службы для входа в реестр срок действия токена AD истекает через 3 часа. Снова выполните вход в реестр.
- При использовании субъекта-службы AD с секретом клиента, срок действия которого истек, владельцу подписки или администратору учетной записи необходимо сбросить учетные данные или создать новый субъект-службу.
- При использовании токена из области репозитория владельцу реестра может потребоваться сбросить пароль или создать новый токен.
Связанные ссылки
- Сброс учетных данных субъекта-службы
- Повторное создание паролей токенов
- Отдельный вход с идентификатором Microsoft Entra
Расширенный поиск проблем
Если в реестре задана коллекция журналов ресурсов, просмотрите журнал ContainerRegistryLoginEvents. В этом журнале хранятся события проверки подлинности и состояния, включая входящий идентификатор и IP-адрес. Запросите журнал о сбоях проверки подлинности в реестре.
Связанные ссылки
- Журналы для диагностической оценки и аудита
- Часто задаваемые вопросы по реестру контейнеров
- Рекомендации по Реестр контейнеров Azure
Следующие шаги
Если проблема не решена, воспользуйтесь следующими вариантами.
- К другим разделам по устранению неполадок реестра относятся следующие разделы:
- Параметры Поддержки сообщества
- Microsoft Q&A
- Откройте запрос в службу поддержки – на основе предоставленной пользователем информации может быть проведена быстрая диагностика сбоев проверки подлинности в используемом реестре.