Аутентификация от имени сервисного аккаунта
Примечание
Узнайте как аутентифицироваться в Yandex Cloud CLI:
- От имени сервисного аккаунта с помощью имперсонации. Использование имперсонации является рекомендованным и наиболее безопасным способом аутентифицироваться в Yandex Cloud CLI.
- От имени сервисного аккаунта с помощью авторизованного ключа. Использование авторизованного ключа позволяет постоянно аутентифицироваться в Yandex Cloud CLI с помощью однажды созданного авторизованного ключа. Использование долгоживущего ключа менее безопасно, чем использование имперсонации.
- От имени сервисного аккаунта изнутри виртуальной машины. Использование привязанного к виртуальной машине Yandex Compute Cloud сервисного аккаунта является рекомендованным способом аутентификации в Yandex Cloud CLI при работе на ВМ.
Сервисный аккаунт отличается от аккаунта пользователя или федеративного пользователя. Сервисный аккаунт нельзя использовать для входа в консоль управления
Перед началом работы
- Аутентифицируйтесь в CLI как пользователь или как федеративный пользователь.
- Если у вас еще нет сервисного аккаунта, создайте его и настройте права доступа для него.
Выполняйте действия от имени сервисного аккаунта с помощью имперсонации
Примечание
Для использования имперсонации пользователю должна быть назначена роль iam.serviceAccounts.tokenCreator на соответствующий сервисный аккаунт.
Чтобы выполнить действие от имени сервисного аккаунта:
-
Получите список сервисных аккаунтов, которые существуют в вашем облаке:
yc iam service-account --folder-id <идентификатор_каталога> listРезультат:
+----------------------+------------+--------+---------------------+-----------------------+ | 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 <идентификатор_сервисного_аккаунта>
Для некоторых команд требуется указание уникального идентификатора облака и каталога. Вы можете запускать такие команды с параметрами --cloud-id и --folder-id.
Аутентифицируйтесь от имени сервисного аккаунта с помощью авторизованного ключа
Чтобы аутентифицироваться от имени сервисного аккаунта:
-
Получите список сервисных аккаунтов, которые существуют в вашем облаке:
yc iam service-account --folder-id <идентификатор_каталога> listРезультат:
+----------------------+------------+--------+---------------------+-----------------------+ | 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 <идентификатор_каталога>Результат:
id: aje83v701b1u******** service_account_id: aje3932acd0c******** created_at: "2019-08-26T12:31:25Z" key_algorithm: RSA_2048 -
Добавьте авторизованный ключ сервисного аккаунта в профиль 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.
Все операции в этом профиле будут выполняться от имени привязанного сервисного аккаунта. Вы можете изменить параметры профиля или сменить его.
-
Аутентифицируйтесь от имени сервисного аккаунта изнутри виртуальной машины
Для сервисного аккаунта процесс аутентификации изнутри виртуальной машины упрощен:
-
Привяжите сервисный аккаунт к виртуальной машине.
-
Аутентифицируйтесь изнутри виртуальной машины:
-
Подключитесь к виртуальной машине по SSH.
-
Создайте новый профиль:
yc config profile create my-robot-profile
-
-
Настройте профиль для запуска команд.
Для некоторых команд требуется указание уникального идентификатора облака и каталога. Вы можете указать информацию о них в профиле или запускать такие команды с соответствующим флагом.
-
Укажите облако в профиле:
yc config set cloud-id <идентификатор_облака>Или запускайте команды с параметром
--cloud-id. -
Укажите каталог в профиле:
yc config set folder-id <идентификатор_каталога>Или запускайте команды с параметром
--folder-id.
Все операции в этом профиле будут выполняться от имени привязанного сервисного аккаунта. Вы можете изменить параметры профиля или сменить его.
-
Подробная информация про работу с Yandex Cloud из ВМ в разделе Работа с Yandex Cloud изнутри виртуальной машины.