Аутентифицировать в Cloud Registry
Перед началом работы с Cloud Registry необходимо настроить Docker и аутентифицироваться для соответствующего интерфейса:
- Для Консоли управления минимально необходимая роль на каталог —
viewer. - Для Docker CLI или Yandex Managed Service for Kubernetes минимально необходимая роль на реестр
cloud-registry.artifacts.puller.
Назначьте нужную роль пользователю Yandex Cloud. Ознакомьтесь со способами аутентификации и выберите подходящий.
Подробнее про роли читайте в разделе Управление доступом в Yandex Cloud Registry.
Способы аутентификации
Вы можете аутентифицироваться:
- Как пользователь:
- С помощью IAM-токена. Время жизни — не больше 12 часов.
- С помощью OAuth-токена. Время жизни — 1 год.
- С помощью API-ключа и сервисного аккаунта. Время жизни API-ключа ограничивается вручную при создании.
Аутентифицироваться как пользователь
Примечание
У IAM-токена короткое время жизни — не более 12 часов. Поэтому такой способ подойдет для приложений, которые будут запрашивать IAM-токен автоматически.
-
Если у вас не установлен Docker, установите его.
-
Получите IAM-токен.
-
Выполните команду:
echo <IAM-токен> | docker login \ --username iam \ --password-stdin \ registry.yandexcloud.netГде:
<IAM-токен>— тело полученного ранее IAM-токена.--username— тип токена: значениеiamуказывает на то, что для аутентификации используется IAM-токен.registry.yandexcloud.net— эндпоинт, к которому будет обращаться Docker при работе с реестром образов. Если его не указать, запрос пойдет в сервис по умолчанию — Docker Hub .
Примечание
Срок жизни OAuth-токена — 1 год. После этого необходимо получить новый OAuth-токен
-
Если у вас не установлен Docker, установите его.
-
Если у вас еще нет OAuth-токена, получите его по ссылке
. -
Выполните команду:
echo <OAuth-токен> | docker login \ --username oauth \ --password-stdin \ registry.yandexcloud.netГде:
<OAuth-токен>— тело полученного ранее OAuth-токена.--username— тип токена: значениеoauthуказывает на то, что для аутентификации используется OAuth-токен.registry.yandexcloud.net— эндпоинт, к которому будет обращаться Docker при работе с реестром образов. Если его не указать, запрос пойдет в сервис по умолчанию — Docker Hub .
-
Если у вас не установлен Docker, установите его.
-
Создайте API-ключ для сервисного аккаунта, от имени которого вы будете выполнять аутентификацию.
-
Выполните команду:
echo <API-ключ> | docker login \ --username api_key \ --password-stdin \ registry.yandexcloud.netГде:
<API-ключ>— тело созданного ранее API-ключа.--username— тип токена: значениеapi_keyуказывает на то, что для аутентификации используется API-ключ.registry.yandexcloud.net— эндпоинт, к которому будет обращаться Docker при работе с реестром образов. Если его не указать, запрос пойдет в сервис по умолчанию — Docker Hub .
При выполнении команды вы можете получить сообщение об ошибке: docker login is not supported with yc credential helper. В этом случае отключите Docker credential helper.