Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Эта статья поможет устранить проблемы, которые могут возникнуть при входе, проверке подлинности или авторизации с помощью реестра контейнеров 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 – решение
- Срок действия учетных данных истек – решение
- Если вы используете управление доступом к ролям (RBAC) Microsoft Entra для управления разрешениями реестра для удостоверения Microsoft Entra (пользователя, управляемого идентификатора удостоверения или служебного принципала), удостоверение может иметь разрешения реестра, но не разрешения репозитория — решение
Дальнейшая диагностика
Выполните команду 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 (RBAC) для разрешений реестра.
- Управление контролем доступа на основе атрибутов (ABAC) Microsoft Entra для разрешений репозитория, основанных на Microsoft Entra.
- Отдельный вход с идентификатором Microsoft Entra
- Вход с помощью учётной записи службы
- Вход с использованием управляемого удостоверения
- Вход с разрешениями репозитория, основанными на токенах Entra, не принадлежащих Microsoft
- Вход с использованием учетной записи администратора
- Коды ошибок при аутентификации и авторизации Microsoft Entra
- Справочная информация по az acr login
Проверьте, авторизованы ли учетные данные для доступа к реестру.
- Если привилегии пользователя недавно изменились, чтобы разрешить доступ к реестру через портал, может потребоваться вход в режиме инкогнито или частный сеанс в используемом браузере во избежание использования устаревшего кэша браузера или файлов cookie.
- Вы или владелец реестра должны иметь достаточные привилегии в подписке для добавления, изменения или удаления назначений ролей Microsoft Entra. Разрешения на управление назначениями ролей Microsoft Entra предоставляются ролью
Role Based Access Control Administrator
. - Для доступа к реестру на портале или управления реестром с помощью Azure CLI требуется, как минимум, роль
Container Registry Contributor and Data Access Configuration Administrator
или эквивалентные привилегии для выполнения операций в Azure Resource Manager.
Проверка разрешений идентификации и назначений ролей
- Если вы используете управление доступом на основе ролей Microsoft Entra (RBAC) для управления разрешениями реестра, убедитесь, что удостоверение (пользователь, управляемая идентичность или служебная учетная запись) имеет правильные назначения ролей и разрешения.
- Если для параметра "Разрешения на назначение ролей реестра" (на вкладке "Свойства" портала Azure) задан новый параметр "Реестр RBAC и разрешения репозитория ABAC", а удостоверение не может отправлять, вытягивать или удалять образы, удостоверение может не иметь разрешений на доступ к конкретному репозиторию, в котором находится образ.
- Проверьте существующие назначения ролей и условия назначения ролей ABAC, чтобы убедиться, что у удостоверения есть необходимые разрешения для доступа к репозитарию.
- Реестры с режимом "Реестр RBAC и разрешения репозитория ABAC" не учитывают существующие роли
AcrPull
,AcrPush
, илиAcrDelete
. - Вместо этого такие реестры принимают роли
Container Registry Repository Reader
,Container Registry Repository Writer
иContainer Registry Repository Contributor
только для чтения, записи или удаления изображений в репозиториях реестра. Эти роли могут иметь необязательные условия ABAC, ограничивающие разрешения, предоставленные определенным репозиториям. - Учтите, что эти роли не предоставляют разрешений на создание каталога для перечисления репозиториев в реестре. Чтобы вывести список репозиториев (но не просматривать их содержимое), необходимо отдельно назначить роль
Container Registry Repository Catalog Lister
для удостоверения. Эта роль не поддерживает условия ABAC, поэтому она предоставляет разрешения на перечисление всех репозиториев в реестре. - Дополнительные сведения см. в разделе "Управление доступом на основе атрибутов Microsoft Entra" (ABAC) для разрешений репозитория на основе Microsoft Entra.
- Если для параметра "Разрешения на назначение ролей реестра" задан старый параметр "Разрешения реестра RBAC", удостоверение может не иметь разрешений на доступ к реестру и его репозиториям.
- Проверьте существующие назначения ролей, чтобы убедиться, что удостоверение имеет правильные разрешения для доступа к реестру и его репозиториям.
-
Реестры с режимом "Разрешения реестра RBAC" учитывают
AcrPull
AcrPush
AcrDelete
только роли для чтения, записи или удаления изображений в репозиториях в реестре. - Для получения дополнительной информации см. обзор разрешений и ролей Microsoft Entra в реестре контейнеров Azure.
- Если для параметра "Разрешения на назначение ролей реестра" (на вкладке "Свойства" портала Azure) задан новый параметр "Реестр RBAC и разрешения репозитория ABAC", а удостоверение не может отправлять, вытягивать или удалять образы, удостоверение может не иметь разрешений на доступ к конкретному репозиторию, в котором находится образ.
Связанные ссылки
- Общие сведения о разрешениях и ролях реестра контейнеров Azure Microsoft Entra
- Управление роль-ориентированным доступом Microsoft Entra (RBAC) для разрешений реестра.
- Управление контролем доступа на основе атрибутов Microsoft Entra (ABAC) для разрешений репозиториев с базой на Microsoft Entra.
- Добавление и удаление назначений ролей Azure с помощью портала Azure
- Используйте портал для создания приложения Microsoft Entra и учётной записи службы, которые могут получать доступ к ресурсам
- Создание секрета приложения
- Коды проверки подлинности и авторизации Microsoft Entra
- Вход с разрешениями репозитория на основе токенов Entra, не принадлежащих Майкрософт
Убедитесь, что срок действия учетных данных не истек
Срок действия токенов и учетных данных Active Directory может истечь по окончании определенного периода времени, после чего доступ к реестру будет невозможен. Чтобы разрешить доступ, может потребоваться сброс или повторное создание учетных данных.
- При использовании индивидуальной идентичности AD, управляемой идентичности или служебного принципала для входа в реестр срок действия токена AD истекает через 3 часа. Снова выполните вход в реестр.
- При использовании субъекта-службы AD с секретом клиента, срок действия которого истек, владельцу подписки или администратору учетной записи необходимо сбросить учетные данные или создать новый субъект-службу.
- При использовании разрешений репозитория на основе токенов, отличных от токенов Майкрософт, владельцу реестра может понадобиться сброс пароля или создание нового токена.
Связанные ссылки
- Сброс учетных данных субъекта-службы
- Повторное создание паролей токенов Entra, не связанных с Microsoft
- Отдельный вход с идентификатором Microsoft Entra
Продвинутое устранение неполадок
Если в реестре включена сборка журналов ресурсов, просмотрите журнал ContainerRegistryLoginEvents. В этом журнале хранятся события проверки подлинности и состояния, включая входящий идентификатор и IP-адрес. Запросите журнал о сбоях проверки подлинности в реестре.
Связанные ссылки
- Журналы для диагностической оценки и аудита
- Часто задаваемые вопросы по реестру контейнеров
- Рекомендации по реестру контейнеров Azure
Дальнейшие шаги
Если проблема не решена, воспользуйтесь следующими вариантами.
- К другим разделам по устранению неполадок реестра относятся следующие разделы:
- Параметры Поддержки сообщества
- Microsoft Q&A
- Откройте запрос в службу поддержки – на основе предоставленной пользователем информации может быть проведена быстрая диагностика сбоев проверки подлинности в используемом реестре.