Как начать работать c сервисными аккаунтами

Сервис IAM позволяет вам создавать сервисные аккаунты — дополнительные аккаунты, с помощью которых программы могут выполнять операции в Яндекс.Облаке. Сервисные аккаунты бесплатны и позволяют гибко управлять доступами ваших программ. Подробнее в разделе Сервисные аккаунты.

Эта инструкция для владельцев облака и пользователей с ролью администратора на облако или каталог. Пользователи с ролью editor тоже могут создавать сервисные аккаунты, но не могут назначать роли, поэтому не смогут разрешить сервисному аккаунту выполнение операций в Яндекс.Облаке.

Вы научитесь:

Перед началом

  1. Если вы еще не зарегистрированы в Яндекс.Облаке, перейдите в консоль управления.
  2. На странице биллинга убедитесь, что у вас подключен платежный аккаунт и он находится в статусе ACTIVE или TRIAL_ACTIVE. Если платежного аккаунта нет, создайте его.

Создайте сервисный аккаунт

Чтобы создать сервисный аккаунт и назначить ему роли:

  1. Войдите в консоль управления.

  2. Нажмите на строку с именем каталога, в котором вы хотите создать сервисный аккаунт.

  3. Выберите вкладку Сервисные аккаунты.

  4. Нажмите кнопку Создать сервисный аккаунт.

  5. Введите имя сервисного аккаунта.

  6. Чтобы назначить сервисному аккаунту роль на текущий каталог, нажмите Добавить роль и выберите роль, например editor.

    Чтобы назначить роль на другой ресурс, воспользуйтесь CLI или API по инструкции Назначение роли сервисному аккаунту.

  7. Нажмите кнопку Создать.

Настройте CLI для работы от имени сервисного аккаунта

От имени сервисного аккаунта вы можете выполнять операции через API, CLI и другие инструменты, которые поддерживают аутентификацию с сервисным аккаунтом. В консоль управления войти с помощью сервисного аккаунта нельзя.

Настройте CLI для работы от имени сервисного аккаунта:

  1. Если у вас еще нет интерфейса командной строки Яндекс.Облака, установите и инициализируйте его.

  2. Создайте авторизованный ключ для вашего сервисного аккаунта и запишите его файл:

    yc iam key create --service-account-name my-robot --output key.json
    

    Если вы получили ошибку ERROR: service account with name "my-robot" not found, значит в каталоге по умолчанию нет сервисного аккаунта с таким именем. Если имя правильное, то выполните одну из команд:

    • Укажите каталог с сервисным аккаунтом с помощью параметра --folder-name или --folder-id:
      yc iam key create --folder-name my-folder --service-account-name my-robot --output key.json
      
    • Укажите сервисный аккаунт по идентификатору с помощью параметра --service-account-id:
      yc iam key create --service-account-id b1gnbfd11bq5g5vnjgr4 --output key.json
      
  3. Создайте профиль, который будет использоваться для выполнения операций от имени сервисного аккаунта:

    yc config profile create my-robot-profile
    
  4. Укажите в конфигурации профиля авторизованный ключ сервисного аккаунта:

    yc config set service-account-key key.json
    

Теперь вы можете выполнять операции от имени сервисного аккаунта, например посмотреть список каталогов, доступных этому аккаунту:

yc resource-manager folder list

Удалите сервисный аккаунт

Если сервисный аккаунт больше не нужен, удалите его:

  1. Перейдите в каталог, которому принадлежит сервисный аккаунт.
  2. Выберите вкладку Сервисные аккаунты.
  3. Нажмите значок image напротив сервисного аккаунта и выберите Удалить сервисный аккаунт.
  4. Подтвердите удаление.

Что дальше