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