Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Вы можете пройти проверку подлинности с помощью реестра контейнеров Azure несколькими способами. Просмотрите эти параметры, чтобы определить, что лучше всего подходит для сценария использования реестра контейнеров.
Для большинства сценариев аутентификация выполняется с помощью одного из следующих методов на основе идентификатора Microsoft Entra:
- Отдельный вход — проверка подлинности непосредственно в реестре
- Учетная запись службы - Используйте учетную запись службы Microsoft Entra для автоматизированной аутентификации или аутентификации без участия пользователя приложениями и оркестраторами контейнеров
Варианты проверки подлинности
В следующей таблице перечислены доступные методы проверки подлинности и типичные сценарии с ссылками на дополнительные сведения.
Подсказка
Сведения о проверке подлинности из службы Azure Kubernetes (AKS) или другого кластера Kubernetes см. в сценариях проверки подлинности с помощью реестра контейнеров Azure из Kubernetes.
| Метод | Процедура проверки подлинности | Сценарии | Управление доступом на основе ролей Microsoft Entra (RBAC) | Ограничения |
|---|---|---|---|---|
| Отдельное удостоверение Microsoft Entra |
az acr login в Azure CLIConnect-AzContainerRegistry в Azure PowerShell |
Интерактивная отправка и извлечение разработчиками, тестировщиками | Да | Маркер Microsoft Entra должен обновляться каждые 3 часа |
| Учетная запись службы Microsoft Entra | docker loginaz acr login в Azure CLIConnect-AzContainerRegistry в Azure PowerShellПараметры входа в реестр в API или инструментах |
Автоматическая отправка без участия человека из потока CI/CD Автоматическое (без участия человека) извлечение в Azure и во внешние службы |
Да | Срок действия пароля sp по умолчанию — 1 год |
| Управляемая идентификация Microsoft Entra для ресурсов Azure | docker loginaz acr login в Azure CLIConnect-AzContainerRegistry в Azure PowerShell |
Отправка без присмотра из конвейера CI/CD Azure Автономное подключение к службам Azure Для списка сценариев назначения ролей управляемых удостоверений см. раздел разрешения ACR Entra и назначения ролей. |
Да | Можно использовать только в отдельных службах Azure, поддерживающих управляемые удостоверения для ресурсов Azure. |
| Пользователь администратора | docker login |
Интерактивная отправка и извлечение отдельным разработчиком или тестировщиком Развертывание образа портала из реестра в Службу приложений Azure или экземпляры контейнеров Azure |
Нет, всегда вытягивать и отправлять доступ | Высокий уровень доступа. Отдельная учетная запись для каждого реестра; Не рекомендуется для нескольких пользователей |
| Разрешения репозитория на основе токенов, не относящихся к Microsoft | docker loginaz acr login в Azure CLIConnect-AzContainerRegistry в Azure PowerShell |
Интерактивная загрузка/выгрузка в репозиторий, выполняемая разработчиком или тестировщиком. Автономное извлечение из репозитория отдельной системой или внешним устройством |
Разрешение репозитория на основе токенов не поддерживает назначения ролей Microsoft Entra RBAC. Для разрешений репозитория, основанных на Microsoft Entra, см. разрешения репозитория на основе атрибутов Azure (ABAC) в реестре контейнеров Azure. |
В настоящее время не интегрирован с идентификатором Microsoft Entra |
Аутентификация с помощью Microsoft Entra ID
При прямой работе с вашим реестром, например, извлечением и отправкой образов с рабочей станции разработки в созданный вами реестр, аутентифицируйтесь, используя ваше индивидуальное удостоверение Azure.
Войдите в Azure CLI с помощью az login, а затем выполните команду az acr login :
az login
az acr login --name <acrName>
При входе с помощью az acr login интерфейс командной строки использует токен, созданный при выполнении az login, чтобы беспрепятственно аутентифицировать вашу сессию с реестром. Чтобы завершить аутентификацию, интерфейс командной строки Docker (CLI) и демон Docker должны быть установлены и запущены в вашей среде.
az acr login использует клиент Docker для задания токена Microsoft Entra в файле docker.config. После входа учетные данные кэшируются, а последующие docker команды в сеансе не требуют имени пользователя или пароля.
Подсказка
Также используйте az acr login для проверки подлинности отдельного удостоверения, когда вы хотите отправить или извлечь артефакты, отличные от образов Docker, в свой реестр, например артефакты OCI.
Для доступа к реестру маркер az acr login , который используется в течение 3 часов, поэтому всегда войдите в реестр перед выполнением docker команды. Если срок действия токена истекает, обновите его, еще раз воспользовавшись командой az acr login для повторной проверки подлинности.
Использование az acr login с удостоверениями Azure обеспечивает управление доступом на основе ролей Azure (RBAC). В некоторых сценариях может потребоваться войти в реестр с собственным удостоверением в идентификаторе Microsoft Entra или настроить других пользователей Azure с определенными ролями. Для сценариев между службами или рабочей группы или рабочего процесса разработки, где вы не хотите управлять отдельным доступом, вы также можете войти с помощью управляемого удостоверения для ресурсов Azure.
Использование az acr login без управляющей программы Docker
В некоторых случаях необходимо пройти проверку подлинности, используя az acr login , когда управляющая программа Docker не запущена в вашей среде. Например, может потребоваться выполнить az acr login сценарий в Azure Cloud Shell, который предоставляет интерфейс командной строки Docker, но не запускает управляющую программу Docker.
Для этого сценария выполните команду az acr login с параметром --expose-token . Этот параметр возвращает маркер доступа вместо входа с помощью Интерфейса командной строки Docker.
az acr login --name <acrName> --expose-token
Выходные данные отображают маркер доступа, сокращенный здесь:
{
"accessToken": "eyJhbGciOiJSUzI1NiIs[...]24V7wA",
"loginServer": "myregistry.azurecr.io"
}
Для проверки подлинности реестра сохраните учетные данные токена в безопасном расположении и следуйте рекомендациям по управлению учетными данными для входа docker . Например, сохраните значение токена в переменной среды:
TOKEN=$(az acr login --name <acrName> --expose-token --output tsv --query accessToken)
Затем выполните команду docker login, передав 00000000-0000-0000-0000-000000000000 имя пользователя и используя маркер доступа в качестве пароля:
docker login myregistry.azurecr.io --username 00000000-0000-0000-0000-000000000000 --password-stdin <<< $TOKEN
Аналогичным образом можно использовать токен, возвращаемый az acr loginhelm registry login командой для проверки подлинности в реестре.
echo $TOKEN | helm registry login myregistry.azurecr.io \
--username 00000000-0000-0000-0000-000000000000 \
--password-stdin
Принципал службы
Если вы назначаете служебный принципал реестру, ваше приложение или служба могут использовать его для бесконтактной аутентификации. Субъекты-службы включают управление доступом на основе ролей Azure (RBAC) в реестре. Вы можете назначить реестру нескольких субъектов служб и использовать разные поддерживаемые роли для конкретных приложений.
Дополнительные сведения см. в разделе "Аутентификация в контейнерном реестре Azure с помощью сервисных принципалов".
Учетная запись администратора
Каждый реестр контейнеров включает учетную запись администратора, которая по умолчанию отключена. Вы можете включить пользователя администратора и управлять учетными данными на портале Azure или с помощью Azure CLI, Azure PowerShell или других средств Azure. Учетная запись администратора имеет полные разрешения для реестра, поэтому ее следует включить только при необходимости.
Учетная запись администратора в настоящее время требуется для некоторых сценариев для развертывания образа из реестра контейнеров в определенных службах Azure. Например, учетная запись администратора необходима при использовании портала Azure для развертывания образа контейнера из реестра непосредственно в Azure Container Instances или Azure Container Apps.
Это важно
Учетная запись администратора предназначена для одного пользователя для доступа к реестру, главным образом для тестирования. Не делитесь учетными данными учетной записи администратора среди нескольких пользователей. Все пользователи, аутентифицирующиеся через учетную запись администратора, отображаются как один пользователь с доступом на отправку и получение к реестру. Изменение или отключение этой учетной записи отключает доступ к реестру для всех пользователей, использующих свои учетные данные. Используйте индивидуальное удостоверение для пользователей и субъектов-служб для сценариев без головы.
У учетной записи администратора есть два пароля, оба из которых можно повторно создать. Повторное создание паролей для учетных записей администратора занимает около 60 секунд, чтобы реплицировать и стать доступными. Так как у учетной записи есть два пароля, вы можете поддерживать подключение к реестру с помощью одного пароля при повторном создании другого. Если вы включите учетную запись администратора, вы можете передать имя пользователя и любой пароль команде docker login при появлении запроса на обычную проверку подлинности в реестр.
Для получения рекомендаций по управлению учетными данными проверки подлинности см. справочник по команде docker login.
Чтобы включить пользователя администратора для существующего реестра, используйте --admin-enabled параметр команды az acr update в Azure CLI:
az acr update -n <acrName> --admin-enabled true
Вы также можете включить пользователя администратора для реестра на портале Azure. В меню службы в разделе "Параметры" выберите "Ключи доступа". Установите флажок "Администратор" , чтобы включить учетную запись. Отображается имя пользователя администратора вместе с двумя паролями, которые можно отобразить или повторно создать при необходимости.
Авторизуйтесь с использованием альтернативного инструмента контейнеризации вместо Docker.
В некоторых сценариях необходимо использовать альтернативные инструменты контейнера, такие как podman Вместо Docker.
Средство контейнера по умолчанию установлено на docker для команд az acr login. Если вы не задали средство контейнера по умолчанию, и docker команда отсутствует в вашей среде, вы увидите ошибку. Чтобы изменить средство контейнера по умолчанию, используемое az acr login командой, задайте переменную DOCKER_COMMANDсреды. Рассмотрим пример.
DOCKER_COMMAND=podman \
az acr login --name <acrName>