Сервисные аккаунты
Примечание
Создание сервисных аккаунтов и их ключей может быть запрещено политиками авторизации на уровне каталога, облака или организации.
Сервисный аккаунт — аккаунт, от имени которого программы могут управлять ресурсами в Yandex Cloud.
Зачем нужны сервисные аккаунты
Использование сервисных аккаунтов позволяет гибко настраивать права доступа к ресурсам для написанных вами программ.
Например, вы написали приложение, которое отслеживает статусы виртуальных машин. Для этого ей достаточно иметь права на просмотр (роль viewer), но программа работает от вашего имени, а у вас есть права на удаление виртуальных машин.
Чтобы защититься от случайного удаления виртуальной машины вашей программой, создайте сервисный аккаунт и дайте ему доступ только на просмотр.
Имя сервисного аккаунта должно быть уникальным в рамках облака.
В консоли управления
Чем отличается сервисный аккаунт от других аккаунтов
-
Сейчас сервисные аккаунты нельзя использовать для входа в консоль управления
. Подразумевается, что операции от имени сервисного аккаунта будут выполнять программы, а не люди. -
Сервисный аккаунт — это ресурс. Вы можете назначать и отзывать роли на сервисный аккаунт у других пользователей. Например, чтобы разрешить использовать этот сервисный аккаунт для работы с Yandex Cloud. Чтобы назначить роль на сервисный аккаунт, нужна роль
iam.serviceAccounts.admin. -
Для сервисного аккаунта можно создать ключи, используемые для аутентификации в Yandex Cloud через API, CLI и другие инструменты. Эти ключи будут удалены при удалении сервисного аккаунта.
-
Сервисный аккаунт можно привязывать к виртуальным машинам и функциям, в которых запускается ваша программа.
Это упрощает масштабирование приложений, работающих с Yandex Cloud:
- Вам не надо изменять код программы, чтобы она заработала на новой виртуальной машине или функции. IAM-токен для аутентификации в API Yandex Cloud уже доступен изнутри виртуальной машины.
- Чтобы разрешить и запретить всем запущенным экземплярам программы выполнять какие-либо операции в Yandex Cloud, вы назначаете или отзываете роли у одного сервисного аккаунта.
Блокировка сервисного аккаунта
Если нужно временно остановить работу сервисного аккаунта без удаления, заблокируйте его. Это может быть полезно при техническом обслуживании или инциденте безопасности.
Также при создании или изменении сервисного аккаунта можно задать срок его жизни с помощью параметра --expires-at. По истечении этого срока система автоматически заблокирует аккаунт.
Заблокированный сервисный аккаунт нельзя использовать для работы с Yandex Cloud. Роли, выданные аккаунту, сохраняются и снова начинают действовать после разблокировки.
Ключи сервисного аккаунта
Для аутентификации сервисного аккаунта в API Yandex Cloud используются:
- авторизованные ключи — используются при получении IAM-токена;
- API-ключи — используются в некоторых сервисах для упрощенной аутентификации вместо IAM-токена;
- статические ключи доступа — используются в сервисах с AWS-совместимым API.
Созданные ключи принадлежат сервисному аккаунту и разрешения на управление ключами наследуются от сервисного аккаунта. Например, если у вас есть роль viewer на сервисный аккаунт, то вы сможете посмотреть список ключей, принадлежащих этому аккаунту, но не сможете их удалить или создать новые ключи.
Чтобы обеспечивать безопасность и контроль над доступом к ресурсам, отслеживать случаи несанкционированного использования ключей, а также удалять неиспользуемые ключи без риска нарушить работу сервисов Yandex Cloud, вы можете отслеживать даты последнего использования ключей доступа сервисных аккаунтов. Информация доступна на странице сервисного аккаунта в консоли управленияlast_used_at при вызове методов управления ключами доступа через API.
Примеры использования
- Начало работы с Terraform
- Поиск событий Yandex Cloud в Yandex Query
- Резервное копирование кластера Managed Service for Kubernetes в Object Storage
- Получение значения секрета Yandex Lockbox на стороне GitHub
- Получение значения секрета Yandex Lockbox на стороне GitLab
- Получение значения секрета Yandex Lockbox на стороне пользовательской инсталляции Kubernetes