Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Compute Cloud
    • Все инструкции
      • Подключиться к ВМ по SSH
      • Обмен файлами с ВМ
      • Подключиться к ВМ по RDP
      • Подключиться к ВМ через PowerShell
      • Работа с Yandex Cloud изнутри ВМ
      • Установить NVIDIA-драйверы
      • Восстановить доступ к ВМ
    • Посмотреть операции с ресурсами сервиса
  • Yandex Container Solution
  • Управление доступом
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • История изменений
  • Обучающие курсы

В этой статье:

  • Привяжите сервисный аккаунт
  • К существующей ВМ
  • К создаваемой ВМ
  • Аутентификация изнутри ВМ
  1. Пошаговые инструкции
  2. Работа на виртуальной машине
  3. Работа с Yandex Cloud изнутри ВМ

Работа с Yandex Cloud изнутри виртуальной машины

Статья создана
Yandex Cloud
Улучшена
Обновлена 29 апреля 2025 г.
  • Привяжите сервисный аккаунт
    • К существующей ВМ
    • К создаваемой ВМ
  • Аутентификация изнутри ВМ

В этом разделе описано, как работать с Yandex Cloud изнутри ВМ через API или CLI.

Для автоматизации работы с Yandex Cloud изнутри ВМ рекомендуется использовать сервисные аккаунты. Это безопаснее — вам не надо сохранять свой OAuth-токен на ВМ и вы можете ограничить права доступа для сервисного аккаунта.

Для сервисного аккаунта сделана упрощенная аутентификация через API и CLI изнутри ВМ. Чтобы пройти аутентификацию:

  1. Если у вас еще нет сервисного аккаунта, создайте его и настройте права доступа для него.
  2. Привяжите сервисный аккаунт к ВМ.
  3. Аутентифицируйтесь изнутри ВМ.

Привяжите сервисный аккаунтПривяжите сервисный аккаунт

Привяжите сервисный аккаунт к существующей или к создаваемой ВМ.

Примечание

К виртуальной машине можно привязать только один сервисный аккаунт.

Чтобы привязать сервисный аккаунт к ВМ, необходимо иметь разрешение на использование этого аккаунта. Это разрешение входит в роли iam.serviceAccounts.user, editor и выше.

К существующей ВМК существующей ВМ

Консоль управления
CLI
Terraform
API
  1. В консоли управления выберите каталог, которому принадлежит ВМ.
  2. В списке сервисов выберите Compute Cloud.
  3. Нажмите на имя нужной ВМ.
  4. В правом верхнем углу страницы нажмите Изменить ВМ.
  5. В блоке Дополнительно выберите один из существующих сервисных аккаунтов или создайте новый.
  6. Нажмите Сохранить изменения.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Обновите параметры ВМ, указав сервисный аккаунт с помощью опции --service-account-name или --service-account-id:

yc compute instance update my-instance --service-account-name test

Terraform позволяет быстро создать облачную инфраструктуру в Yandex Cloud и управлять ею с помощью файлов конфигураций. В файлах конфигураций хранится описание инфраструктуры на языке HCL (HashiCorp Configuration Language). При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.

Terraform распространяется под лицензией Business Source License, а провайдер Yandex Cloud для Terraform — под лицензией MPL-2.0.

Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform или в зеркале.

Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.

  1. Откройте конфигурационный файл Terraform, в котором описана ВМ, к которой вы хотите подключить сервисный аккаунт. См. пример конфигурационного файла ВМ.

  2. В блок с описанием ресурса yandex_compute_instance добавьте параметр service_account_id и укажите идентификатор сервисного аккаунта:

    resource "yandex_compute_instance" "vm-1" {
      ...
      service_account_id = "<идентификатор_сервисного_аккаунта>"
      ...
    }
    
  3. Примените изменения:

    1. В терминале перейдите в папку, где вы отредактировали конфигурационный файл.

    2. Проверьте корректность конфигурационного файла с помощью команды:

      terraform validate
      

      Если конфигурация является корректной, появится сообщение:

      Success! The configuration is valid.
      
    3. Выполните команду:

      terraform plan
      

      В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.

    4. Примените изменения конфигурации:

      terraform apply
      
    5. Подтвердите изменения: введите в терминале слово yes и нажмите Enter.

    Terraform изменит все требуемые ресурсы. Проверить появление ресурсов можно в консоли управления.

Более подробную информацию о параметрах ресурса yandex_compute_instance см. в документации провайдера.

Воспользуйтесь методом REST API update для ресурса Instance или вызовом gRPC API InstanceService/Update. В запросе укажите идентификатор сервисного аккаунта.

К создаваемой ВМК создаваемой ВМ

Консоль управления
CLI
Terraform
API

В консоли управления вы можете привязать к виртуальной машине сервисный аккаунт, расположенный в том же каталоге, в котором создается ВМ. Если сервисный аккаунт расположен в другом каталоге, воспользуйтесь CLI или API.

Чтобы привязать сервисный аккаунт к ВМ, выберите его в блоке Дополнительно в поле Сервисный аккаунт при создании ВМ. Вы можете выбрать один из существующих сервисных аккаунтов или создать новый.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Создайте ВМ, указав сервисный аккаунт с помощью опции --service-account-name или --service-account-id:

yc compute instance create \
  --name my-instance \
  --network-interface subnet-name=default,nat-ip-version=ipv4 \
  --ssh-key ~/.ssh/id_ed25519.pub \
  --service-account-name my-robot
  1. Откройте конфигурационный файл Terraform, в котором описана ВМ, к которой вы хотите подключить сервисный аккаунт. См. пример конфигурационного файла ВМ.

  2. В блок с описанием ресурса yandex_compute_instance добавьте параметр service_account_id и укажите идентификатор сервисного аккаунта:

    resource "yandex_compute_instance" "vm-1" {
      ...
      service_account_id = "<идентификатор_сервисного_аккаунта>"
      ...
    }
    
  3. Создайте ресурсы:

    1. В терминале перейдите в папку, где вы отредактировали конфигурационный файл.

    2. Проверьте корректность конфигурационного файла с помощью команды:

      terraform validate
      

      Если конфигурация является корректной, появится сообщение:

      Success! The configuration is valid.
      
    3. Выполните команду:

      terraform plan
      

      В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.

    4. Примените изменения конфигурации:

      terraform apply
      
    5. Подтвердите изменения: введите в терминале слово yes и нажмите Enter.

    Terraform создаст все требуемые ресурсы. Проверить появление ресурсов можно в консоли управления.

Более подробную информацию о параметрах ресурса yandex_compute_instance см. в документации провайдера.

Воспользуйтесь методом REST API create для ресурса Instance или вызовом gRPC API InstanceService/Create. В запросе укажите идентификатор сервисного аккаунта.

Аутентификация изнутри ВМАутентификация изнутри ВМ

Чтобы аутентифицироваться изнутри ВМ от имени привязанного сервисного аккаунта:

CLI
API
  1. Подключитесь к ВМ по SSH.

  2. Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

  3. Создайте новый профиль:

    yc config profile create my-robot-profile
    
  4. Настройте профиль для запуска команд.

    Для некоторых команд требуется указание уникального идентификатора облака и каталога. Вы можете указать информацию о них в профиле или запускать такие команды с соответствующим флагом.

    1. Укажите облако в профиле:

      yc config set cloud-id <идентификатор_облака>
      

      Или запускайте команды с параметром --cloud-id.

    2. Укажите каталог в профиле:

      yc config set folder-id <идентификатор_каталога>
      

      Или запускайте команды с параметром --folder-id.

    Все операции в этом профиле будут выполняться от имени привязанного сервисного аккаунта. Вы можете изменить параметры профиля или сменить его.

    Вы также можете получить IAM-токен, например, чтобы аутентифицироваться в API:

    yc iam create-token
    

    Время жизни IAM-токена в этом случае будет меньше чем 12 часов. Запрашивайте IAM-токен чаще, например, каждый час. Чтобы узнать оставшееся время жизни токена, воспользуйтесь инструкцией для API.

  1. Подключитесь к ВМ по SSH.

  2. Получите IAM-токен из метаданных в формате Google Compute Engine:

    curl \
      --header Metadata-Flavor:Google http://169.254.169.254/computeMetadata/v1/instance/service-accounts/default/token
    

    Результат:

    {"access_token":"CggVAgAAA...","expires_in":39944,"token_type":"Bearer"}
    

    IAM-токен будет указан в ответе в поле access_token. Оставшееся время жизни IAM-токена указано в поле expires_in.

  3. Полученный IAM-токен указывайте при обращении к ресурсам Yandex Cloud через API. Передайте IAM-токен в заголовке Authorization в следующем формате:

    Authorization: Bearer <IAM-токен>
    

Учитывайте время жизни IAM-токена или запрашивайте токен чаще, например, каждый час.

Была ли статья полезна?

Предыдущая
Подключиться к ВМ по OS Login
Следующая
Установить NVIDIA-драйверы
Проект Яндекса
© 2025 ООО «Яндекс.Облако»