Аутентификация в Yandex Cloud CLI от имени сервисного аккаунта
Примечание
Важно
Создание сервисных аккаунтов и их ключей может быть запрещено политиками авторизации на уровне каталога, облака или организации.
Узнайте как аутентифицироваться в Yandex Cloud CLI:
-
От имени сервисного аккаунта с помощью имперсонации
Использование имперсонации является рекомендованным и наиболее безопасным способом аутентифицироваться в Yandex Cloud CLI.
Данный способ не подходит для работы на сервере без графического интерфейса, поскольку требует изначальной аутентификации в Yandex Cloud CLI аккаунтом Яндекса, федеративным аккаунтом или аккаунтом локального пользователя с помощью браузера.
-
От имени сервисного аккаунта с помощью авторизованного ключа
Вы можете создать авторизованный ключ с неограниченным сроком жизни и постоянно аутентифицироваться в Yandex Cloud CLI с его помощью. Использование долгоживущего ключа менее безопасно, чем использование имперсонации.
Для получения авторизованного ключа требуется изначальная аутентификация в CLI аккаунтом Яндекса, федеративным аккаунтом или аккаунтом локального пользователя с помощью устройства с браузером и графическим интерфейсом. Дальнейшая работа с CLI может выполняться на сервере без графического интерфейса.
-
От имени сервисного аккаунта изнутри виртуальной машины
Использование привязанного к виртуальной машине Yandex Compute Cloud сервисного аккаунта является рекомендованным способом аутентификации в Yandex Cloud CLI при работе на ВМ.
Для данного способа не требуется изначальная аутентификация в CLI аккаунтом Яндекса, федеративным аккаунтом или аккаунтом локального пользователя, а также наличие на сервере браузера и графического интерфейса.
Сервисный аккаунт отличается от аккаунта пользователя Яндекса, федеративного пользователя и локального пользователя. Сервисный аккаунт нельзя использовать для входа в консоль управления
Перед началом работы
Если у вас еще нет сервисного аккаунта, создайте его и настройте права доступа для него.
Совет
Если доступ к Yandex Cloud в вашей организации осуществляется через прокси-сервер, перед выполнением команды yc init настройте подключение CLI к прокси-серверу.
Выполняйте действия от имени сервисного аккаунта с помощью имперсонации
Использование имперсонации является рекомендованным и наиболее безопасным способом аутентифицироваться в Yandex Cloud CLI.
Данный способ не подходит для работы на сервере без графического интерфейса, поскольку требует изначальной аутентификации в Yandex Cloud CLI аккаунтом Яндекса, федеративным аккаунтом или аккаунтом локального пользователя с помощью браузера.
Примечание
Для использования имперсонации пользователю должна быть назначена роль iam.serviceAccounts.tokenCreator на соответствующий сервисный аккаунт.
Чтобы выполнить действие от имени сервисного аккаунта:
-
Установите CLI.
-
Аутентифицируйтесь в CLI как пользователь Яндекса, федеративный пользователь или как локальный пользователь.
-
Получите список сервисных аккаунтов, которые существуют в вашем облаке:
yc iam service-account --folder-id <идентификатор_каталога> listГде
--folder-id— идентификатор каталога.Результат:
+----------------------+------------+--------+---------------------+-----------------------+ | ID | NAME | LABELS | CREATED AT | LAST AUTHENTICATED AT | +----------------------+------------+--------+---------------------+-----------------------+ | ajeg2b2et02f******** | my-robot | | 2024-09-08 18:59:45 | 2025-08-21 06:40:00 | | ajegtlf2q28a******** | default-sa | | 2023-06-27 16:18:18 | 2025-08-21 06:30:00 | +----------------------+------------+--------+---------------------+-----------------------+ -
При выполнении команд Yandex Cloud CLI используйте имперсонацию сервисного аккаунта, указывая его идентификатор в параметре
--impersonate-service-account-id.Например, чтобы создать в каталоге по умолчанию бакет
my-sample-bucketот имени сервисного аккаунта, выполните команду:yc storage bucket create \ --name my-sample-bucket \ --impersonate-service-account-id <идентификатор_сервисного_аккаунта>Где
--impersonate-service-account-id— идентификатор сервисного аккаунта, полученный ранее.
Для некоторых команд требуется указание уникального идентификатора облака и каталога. Вы можете запускать такие команды с параметрами --cloud-id и --folder-id.
Аутентифицируйтесь от имени сервисного аккаунта с помощью авторизованного ключа
Вы можете создать авторизованный ключ с неограниченным сроком жизни и постоянно аутентифицироваться в Yandex Cloud CLI с его помощью. Использование долгоживущего ключа менее безопасно, чем использование имперсонации.
Для получения авторизованного ключа требуется изначальная аутентификация в CLI аккаунтом Яндекса, федеративным аккаунтом или аккаунтом локального пользователя с помощью устройства с браузером и графическим интерфейсом. Дальнейшая работа с CLI может выполняться на сервере без графического интерфейса.
-
Установите CLI.
-
Аутентифицируйтесь в CLI как пользователь Яндекса, федеративный пользователь или локальный пользователь.
Важно
Аутентификация в CLI аккаунтом Яндекса, федеративным аккаунтом и аккаунтом локального пользователя осуществляется с помощью браузера и графического интерфейса.
Если вы хотите использовать сервисный аккаунт для работы на сервере без графического интерфейса, выполните подготовительные действия на устройстве с графическим интерфейсом и браузером.
-
Создайте авторизованный ключ и аутентифицируйтесь им в CLI:
-
Получите список сервисных аккаунтов, которые существуют в вашем облаке:
yc iam service-account --folder-id <идентификатор_каталога> listГде
--folder-id— идентификатор каталога.Результат:
+----------------------+------------+--------+---------------------+-----------------------+ | ID | NAME | LABELS | CREATED AT | LAST AUTHENTICATED AT | +----------------------+------------+--------+---------------------+-----------------------+ | ajeg2b2et02f******** | my-robot | | 2024-09-08 18:59:45 | 2025-08-21 06:40:00 | | ajegtlf2q28a******** | default-sa | | 2023-06-27 16:18:18 | 2025-08-21 06:30:00 | +----------------------+------------+--------+---------------------+-----------------------+ -
Создайте авторизованный ключ для сервисного аккаунта и сохраните его в файл
key.json:yc iam key create \ --service-account-name default-sa \ --output key.json \ --folder-id <идентификатор_каталога>Где:
--service-account-name— имя сервисного аккаунта, полученное ранее.--output— имя файла, в котором будет сохранен авторизованный ключ.--folder-id— идентификатор каталога с сервисным аккаунтом.
Результат:
id: aje83v701b1u******** service_account_id: aje3932acd0c******** created_at: "2019-08-26T12:31:25Z" key_algorithm: RSA_2048 -
Если вы создали авторизованный ключ на локальной машине и хотите использовать его для аутентификации в CLI на ВМ, предварительно скопируйте его по SCP.
-
Добавьте авторизованный ключ сервисного аккаунта в профиль CLI.
-
Создайте новый профиль CLI:
yc config profile create sa-profile -
Добавьте авторизованный ключ:
yc config set service-account-key key.json
-
-
Убедитесь, что параметры для сервисного аккаунта добавлены верно:
yc config listРезультат:
service-account-key: id: aje83v701b1u******** service_account_id: aje3932acd0c******** created_at: "2019-08-26T12:31:25Z" key_algorithm: RSA_2048 public_key: | -----BEGIN PUBLIC KEY----- MIIBIjANBg... -----END PUBLIC KEY----- private_key: | -----BEGIN PRIVATE KEY----- MIIEvwIBAD... -----END PRIVATE KEY----- -
Настройте профиль для запуска команд.
Для некоторых команд требуется указание уникального идентификатора облака и каталога. Вы можете указать информацию о них в профиле или запускать такие команды с соответствующим флагом.
-
Укажите облако в профиле:
yc config set cloud-id <идентификатор_облака>Или запускайте команды с параметром
--cloud-id.Подробнее на странице Получение идентификатора облака.
-
Укажите каталог в профиле:
yc config set folder-id <идентификатор_каталога>Или запускайте команды с параметром
--folder-id.Подробнее на странице Получение идентификатора каталога.
Все операции в этом профиле будут выполняться от имени привязанного сервисного аккаунта. Вы можете изменить параметры профиля или сменить его.
-
-
Аутентифицируйтесь от имени сервисного аккаунта изнутри виртуальной машины
Использование привязанного к виртуальной машине Yandex Compute Cloud сервисного аккаунта является рекомендованным способом аутентификации в Yandex Cloud CLI при работе на ВМ.
Для данного способа не требуется изначальная аутентификация в CLI аккаунтом Яндекса, федеративным аккаунтом или аккаунтом локального пользователя, а также наличие на сервере браузера и графического интерфейса.
Для сервисного аккаунта процесс аутентификации изнутри виртуальной машины упрощен:
-
Привяжите сервисный аккаунт к виртуальной машине.
-
Аутентифицируйтесь изнутри виртуальной машины:
-
Подключитесь к виртуальной машине по SSH.
-
Установите CLI.
-
Создайте новый профиль:
yc config profile create my-robot-profile
-
-
Укажите эндпоинт Yandex Cloud для региона Казахстан:
yc config set endpoint api.yandexcloud.kz:443 -
Настройте профиль для запуска команд.
Для некоторых команд требуется указание уникального идентификатора облака и каталога. Вы можете указать информацию о них в профиле или запускать такие команды с соответствующим флагом.
-
Укажите облако в профиле:
yc config set cloud-id <идентификатор_облака>Или запускайте команды с параметром
--cloud-id.Подробнее на странице Получение идентификатора облака.
-
Укажите каталог в профиле:
yc config set folder-id <идентификатор_каталога>Или запускайте команды с параметром
--folder-id.Подробнее на странице Получение идентификатора каталога.
Все операции в этом профиле будут выполняться от имени привязанного сервисного аккаунта. Вы можете изменить параметры профиля или сменить его.
-
Подробная информация про работу с Yandex Cloud из ВМ в разделе Работа с Yandex Cloud изнутри виртуальной машины.