Как начать работать с сервисными аккаунтами
Сервис IAM позволяет вам создавать сервисные аккаунты — дополнительные аккаунты, с помощью которых программы могут выполнять операции в Yandex Cloud. Сервисные аккаунты бесплатны и позволяют гибко управлять доступами ваших программ. Подробнее в разделе Сервисные аккаунты.
Эта инструкция для владельцев облака и пользователей с ролью администратора на облако или каталог. Пользователи с ролью editor тоже могут создавать сервисные аккаунты, но не могут назначать роли, поэтому не смогут разрешить сервисному аккаунту выполнение операций в Yandex Cloud.
Примечание
Создание сервисных аккаунтов и их ключей может быть запрещено политиками авторизации на уровне каталога, облака или организации.
Проверка наличия необходимых ролей описана в разделе Перед началом работы.
Вы научитесь:
- Создавать сервисные аккаунты и назначать им роли.
- Выполнять операции в CLI.
- Удалять сервисные аккаунты.
Перед началом работы
-
Войдите в консоль управления
. Если вы еще не зарегистрированы, перейдите в консоль управления и следуйте инструкциям. -
Убедитесь, что у вас есть нужные роли:
-
В консоли управления на панели сверху нажмите
или и выберите нужное облако. -
Перейдите на вкладку Права доступа.
-
В строке поиска введите свою учетную запись.
-
Проверьте, что для вашей учетной записи указаны роли:
- владельца (
organization-manager.organizations.owner) или администратора (organization-manager.admin) организации; - владельца (
resource-manager.clouds.owner) или администратора (admin) облака.
- владельца (
-
-
На странице Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт и он находится в статусеACTIVEилиTRIAL_ACTIVE. Если платежного аккаунта нет, создайте его.
Создайте сервисный аккаунт
Чтобы создать сервисный аккаунт и назначить ему роли:
-
В консоли управления
на панели сверху нажмите или и выберите нужный каталог. -
На панели слева нажмите
и выберите Identity and Access Management. -
Нажмите кнопку Создать сервисный аккаунт.
-
Введите имя сервисного аккаунта.
Требования к формату имени:
- длина — от 3 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
Имя сервисного аккаунта должно быть уникальным в рамках облака.
-
Чтобы назначить сервисному аккаунту роль на текущий каталог, нажмите Добавить роль и выберите роль, например
editor.Чтобы назначить роль на другой ресурс, воспользуйтесь CLI или API по инструкции Назначение роли сервисному аккаунту.
-
Нажмите кнопку Создать.
Примечание
Настройте CLI для работы от имени сервисного аккаунта
От имени сервисного аккаунта вы можете выполнять операции через интерфейс командной строки Yandex Cloud (CLI), API и другие инструменты, которые поддерживают аутентификацию с сервисным аккаунтом.
Настройте CLI для работы от имени сервисного аккаунта:
-
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
-
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду
yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров--folder-nameили--folder-id.Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
-
Получите список доступных сервисных аккаунтов в каталоге по умолчанию:
yc iam service-account listРезультат:
+----------------------+----------+--------+ | ID | NAME | LABELS | +----------------------+----------+--------+ | ajeb9l33h6mu******** | my-robot | | +----------------------+----------+--------+ -
Создайте авторизованный ключ для вашего сервисного аккаунта и запишите его в файл:
yc iam key create --output <путь_к_файлу_ключа> --service-account-name <имя_сервисного_аккаунта>Где:
--output— путь к файлу для записи авторизованного ключа в формате JSON. Обязательный параметр.--service-account-name— имя сервисного аккаунта.
Например:
yc iam key create --output key.json --service-account-name my-service-accountРезультат:
id: aje4lue48687******** service_account_id: ajeb9l33h6m******** created_at: "2024-08-01T11:58:52.313177213Z" key_algorithm: RSA_2048Подробнее о команде
yc iam key createчитайте в справочнике CLI. -
Создайте профиль, который будет использоваться для выполнения операций от имени сервисного аккаунта:
yc config profile create <имя_профиля> -
Укажите в конфигурации профиля авторизованный ключ сервисного аккаунта:
yc config set service-account-key <путь_к_файлу_ключа>
Теперь вы можете выполнять операции от имени сервисного аккаунта, например посмотреть список каталогов, доступных этому аккаунту:
yc resource-manager folder list
Заблокируйте или удалите сервисный аккаунт
Чтобы временно остановить работу сервисного аккаунта, заблокируйте его. После блокировки аккаунт нельзя использовать, пока вы его не разблокируете. Если аккаунт больше не нужен, удалите его:
- В консоли управления
на панели сверху нажмите или и выберите нужный каталог. - На панели слева нажмите
и выберите Identity and Access Management. - На панели слева выберите
Сервисные аккаунты. - В строке с нужным сервисным аккаунтом нажмите значок
и выберите Удалить. - В открывшемся окне нажмите кнопку Удалить.
Что дальше
- Пошаговые инструкции помогут вам решить конкретные задачи, возникающие при использовании Identity and Access Management.
- Подробнее про сервисные аккаунты написано в концепциях.
- Посмотрите рекомендации по безопасному использованию сервисных аккаунтов.
- Используйте чеклист безопасности аутентификации и авторизации.