Управление доступом в 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
.
На какие ресурсы можно назначить роль
Роль можно назначить на организацию, облако и каталог. Роли, назначенные на организацию, облако или каталог, действуют и на вложенные ресурсы.
В консоли управления, через YC CLI или API Yandex Cloud роль можно назначить на отдельные ресурсы сервиса:
- Симметричный ключ шифрования
- Асимметричный ключ шифрования
- Асимметричная ключевая пара электронной подписи
Какие роли действуют в сервисе
Управлять доступом к ключам KMS можно как с помощью сервисных, так и с помощью примитивных ролей.
На диаграмме показано, какие роли есть в сервисе и как они наследуют разрешения друг друга. Например, в editor
входят все разрешения viewer
. После диаграммы дано описание каждой роли.
Сервисные роли
Сервисные роли обеспечивают более гранулярный, учитывающий специфику сервиса, контроль над ключами KMS: предполагают строгое разделение субъектов на администраторов ключей (роль kms.admin
) и пользователей (роль kms.keys.encrypterDecrypter
).
Пользователи, у которых отсутствует роль resource-manager.clouds.owner
или роль admin
, не могут назначать роли через консоль управления.
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.
Роль auditor
в настоящее время доступна во всех сервисах Yandex Cloud, за исключением:
- Yandex Data Streams;
- Yandex Query.
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 на ключ |