Управление доступом в Key Management Service
В этом разделе вы узнаете:
- на какие ресурсы можно назначить роль;
- какие роли действуют в сервисе;
- какие роли необходимы для того или иного действия.
Об управлении доступом
Все операции в Yandex Cloud проверяются в сервисе Yandex Identity and Access Management. Если у субъекта нет необходимых разрешений, сервис вернет ошибку.
Чтобы выдать разрешения к ресурсу, назначьте роли на этот ресурс субъекту, который будет выполнять операции. Роли можно назначить аккаунту на Яндексе, сервисному аккаунту, федеративным пользователям или системной группе. Подробнее читайте в разделе Как устроено управление доступом в Yandex Cloud.
Назначать роли на ресурс могут те, у кого есть роль admin
или resource-manager.clouds.owner
на этот ресурс.
На какие ресурсы можно назначить роль
Роль можно назначить на облако, каталог или ключ. Эти роли будут действовать и на вложенные ресурсы.
Какие роли действуют в сервисе
Управлять доступом к ключам KMS можно как с помощью сервисных, так и с помощью примитивных ролей.
Сервисные роли
Сервисные роли обеспечивают более гранулярный, учитывающий специфику сервиса, контроль над ключами KMS: предполагают строгое разделение субъектов на администраторов ключей (роль kms.admin
) и пользователей (роль kms.keys.encrypterDecrypter
).
Пользователи, у которых отсутствует роль resource-manager.clouds.owner
или роль admin
, не могут назначать роли через консоль управления.
Список сервисных ролей:
kms.keys.encrypterDecrypter
— позволяет шифровать и расшифровывать данные, а также просматривать информацию о ключах.kms.admin
— позволяет назначать произвольные роли на ключи с помощью CLI и API, удалять ключи и версии ключей, изменять основную версию. Включает все права ролиkms.editor
.kms.editor
— позволяет управлять ключами (просмотр, создание, изменение, ротация, шифрование и расшифровка данных). Включает все права ролейkms.viewer
иkms.keys.encrypterDecrypter
.kms.viewer
— позволяет читать информацию о ключах.
Примитивные роли
Примитивные роли – общие для всех ресурсов Yandex Cloud. Назначение любой из них дает некоторые разрешения как в KMS, так и в других облачных сервисах. Например, роль admin
, назначенная на каталог, позволяет удалять любые ключи KMS в каталоге, а также дает возможность изменять сам каталог или ресурсы в нем. Управлять примитивными ролями можно с помощью консоли управления.
Список примитивных ролей:
viewer
— позволяет только просматривать информацию о ресурсах.editor
— позволяет управлять ресурсами (создавать и изменять их).admin
— позволяет управлять доступом к ресурсам и самими ресурсами (создавать, изменять и удалять их).
Какие роли мне необходимы
Пример разграничения доступа к ключам
С ролями рекомендуется работать следующим образом:
- Владелец (роль
resource-manager.clouds.owner
) или администратор (рольadmin
) облака назначает рольkms.admin
администратору KMS. - Администратор KMS создает необходимое количество ключей и назначает (с помощью CLI или API) роли для их использования: субъекты, представляющие разные команды, получают роли
kms.keys.encrypterDecrypter
иkms.editor
на ключи и каталоги.
Хорошей практикой является хранение ключей KMS в выделенном каталоге, отдельно от других ресурсов Yandex Cloud.
Действие | Методы | Необходимые роли |
---|---|---|
KMS | ||
Получение информации о ключах и версиях | get , listVersions |
kms.viewer на ключ на каталог |
Операции шифрования и расшифровки | encrypt , decrypt , reEncrypt , generateDataKey |
kms.keys.encrypterDecrypter на ключ |
Получение списка ключей в каталоге | list |
kms.viewer на каталог |
Создание и изменение ключа | create , update |
kms.editor на каталог |
Ротация ключа | rotate |
kms.editor на ключ |
Смена основной версии | setPrimaryVersion |
kms.admin на ключ |
Удаление ключей и удаление версий | delete , scheduleVersionDestruction , cancelVersionDestruction |
kms.admin на ключ |
Назначение роли, отзыв роли | setAccessBindings , updateAccessBindings |
kms.admin на ключ |
Просмотр назначенных ролей на ключ | listAccessBindings |
kms.viewer на ключ |