[Документация Yandex Cloud](../../../index.md) > [Yandex Identity and Access Management](../../index.md) > [Концепции](../index.md) > Аккаунты в Yandex Cloud > Сервисные аккаунты

# Сервисные аккаунты

{% note info %}

Создание сервисных аккаунтов и их [ключей](service-accounts.md#sa-key) может быть запрещено [политиками авторизации](../access-control/access-policies.md) на уровне [каталога](../../../resource-manager/concepts/resources-hierarchy.md#folder), [облака](../../../resource-manager/concepts/resources-hierarchy.md#cloud) или [организации](../../../organization/concepts/organization.md).

{% endnote %}

_Сервисный аккаунт_ — аккаунт, от имени которого программы могут управлять ресурсами в Yandex Cloud.

## Зачем нужны сервисные аккаунты {#sa-usage}

Использование сервисных аккаунтов позволяет гибко настраивать права доступа к ресурсам для написанных вами программ.

> Например, вы написали приложение, которое отслеживает статусы [виртуальных машин](../../../glossary/vm.md). Для этого ей достаточно иметь права на просмотр (роль [viewer](../../roles-reference.md#viewer)), но программа работает от вашего имени, а у вас есть права на удаление виртуальных машин.
>
> Чтобы защититься от случайного удаления виртуальной машины вашей программой, создайте сервисный аккаунт и дайте ему доступ только на просмотр.

Имя сервисного аккаунта должно быть уникальным в рамках облака.

В [консоли управления](https://kz.console.yandex.cloud) на странице с информацией о сервисном аккаунте отображаются дата и время его последней аутентификации. Эта информация позволяет отслеживать случаи несанкционированного использования сервисных аккаунтов.

## Чем отличается сервисный аккаунт от других аккаунтов {#sa-difference}

* Сейчас сервисные аккаунты нельзя использовать для входа в [консоль управления](https://kz.console.yandex.cloud). Подразумевается, что операции от имени сервисного аккаунта будут выполнять программы, а не люди.
* Сервисный аккаунт — это ресурс. Вы можете [назначать](../../operations/sa/set-access-bindings.md) и [отзывать](../../operations/roles/revoke.md) роли на сервисный аккаунт у других пользователей. Например, чтобы разрешить использовать этот сервисный аккаунт для работы с Yandex Cloud. Чтобы назначить роль на сервисный аккаунт, нужна роль `iam.serviceAccounts.admin`.
* Для сервисного аккаунта можно создать [ключи](#sa-key), используемые для [аутентификации в Yandex Cloud](../authorization/index.md#sa) через API, CLI и другие инструменты. Эти ключи будут удалены при удалении сервисного аккаунта.
* Сервисный аккаунт можно привязывать к [виртуальным машинам](../../../compute/operations/vm-connect/auth-inside-vm.md) и [функциям](../../../functions/operations/function-sa.md), в которых запускается ваша программа.

    Это упрощает масштабирование приложений, работающих с Yandex Cloud:
    * Вам не надо изменять код программы, чтобы она заработала на новой виртуальной машине или функции. IAM-токен для аутентификации в API Yandex Cloud уже доступен изнутри виртуальной машины.
    * Чтобы разрешить и запретить всем запущенным экземплярам программы выполнять какие-либо операции в Yandex Cloud, вы назначаете или отзываете роли у одного сервисного аккаунта.

## Ключи сервисного аккаунта {#sa-key}

Для аутентификации сервисного аккаунта в API Yandex Cloud используются:

* [авторизованные ключи](../authorization/key.md) — используются [при получении IAM-токена](../../operations/iam-token/create-for-sa.md);
* [API-ключи](../authorization/api-key.md) — используются в некоторых сервисах для упрощенной аутентификации вместо IAM-токена;
* [статические ключи доступа](../authorization/access-key.md) — используются в сервисах с AWS-совместимым API.

Созданные ключи принадлежат сервисному аккаунту и разрешения на управление ключами наследуются от сервисного аккаунта. Например, если у вас есть роль `viewer` на сервисный аккаунт, то вы сможете посмотреть список ключей, принадлежащих этому аккаунту, но не сможете их удалить или создать новые ключи.

Чтобы обеспечивать безопасность и контроль над доступом к ресурсам, отслеживать случаи несанкционированного использования ключей, а также удалять неиспользуемые ключи без риска нарушить работу сервисов Yandex Cloud, вы можете отслеживать даты последнего использования ключей доступа сервисных аккаунтов. Информация доступна на странице сервисного аккаунта в [консоли управления](https://kz.console.yandex.cloud), а также в поле `last_used_at` при вызове методов управления ключами доступа через API.

## Примеры использования {#examples}

* [Начало работы с Terraform](../../../tutorials/infrastructure-management/terraform-quickstart.md)
* [Поиск событий Yandex Cloud в Yandex Query](../../../tutorials/analysis/search-events-query.md)
* [Резервное копирование кластера Managed Service for Kubernetes в Object Storage](../../../tutorials/archive/kubernetes-backup.md)
* [Получение значения секрета Yandex Lockbox на стороне GitHub](../../tutorials/wlif-github-integration.md)
* [Получение значения секрета Yandex Lockbox на стороне GitLab](../../tutorials/wlif-gitlab-integration.md)
* [Получение значения секрета Yandex Lockbox на стороне пользовательской инсталляции Kubernetes](../../tutorials/wlif-k8s-integration.md)

#### Полезные ссылки {#see-also}

* [Как начать работать с сервисными аккаунтами](../../quickstart-sa.md)
* [Получение списка сервисных аккаунтов каталога](../../operations/sa/list-get.md)
* [Аутентификация от имени сервисного аккаунта](../authorization/index.md#sa)