Настройка прав доступа к симметричному ключу шифрования
Вы можете предоставить пользователю, сервисному аккаунту или группе пользователей доступ к симметричному ключу. Для этого назначьте роли на ключ. Чтобы выбрать нужные, узнайте, какие роли действуют в сервисе.
Назначить роль
- В консоли управления
выберите каталог, в котором находится секрет. - В списке сервисов выберите Key Management Service.
- На панели слева выберите
Симметричные ключи. - Нажмите на имя нужного ключа.
- Перейдите в раздел
Права доступа и нажмите кнопку Назначить роли. - Выберите группу, пользователя или сервисный аккаунт, которым нужно предоставить доступ к ключу.
- Нажмите кнопку
Добавить роль и выберите необходимые роли. - Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы назначить роль на симметричный ключ:
-
Посмотрите описание команды CLI для назначения роли:
yc kms symmetric-key add-access-binding --help
-
Получите список симметричных ключей вместе с их идентификаторами:
yc kms symmetric-key list
-
Получите идентификатор пользователя, сервисного аккаунта или группы пользователей, которым назначаете роль.
-
С помощью одной из команд ниже назначьте роль:
-
Пользователю:
yc kms symmetric-key add-access-binding \ --id <идентификатор_ключа> \ --role <роль> \ --user-account-id <идентификатор_пользователя>
-
Федеративному пользователю:
yc kms symmetric-key add-access-binding \ --id <идентификатор_ключа> \ --role <роль> \ --subject federatedUser:<идентификатор_пользователя>
-
Сервисному аккаунту:
yc kms symmetric-key add-access-binding \ --id <идентификатор_ключа> \ --role <роль> \ --service-account-id <идентификатор_сервисного_аккаунта>
-
Группе пользователей:
yc kms symmetric-key add-access-binding \ --id <идентификатор_ключа> \ --role <роль> \ --subject group:<идентификатор_группы>
-
Воспользуйтесь методом updateAccessBindings для ресурса SymmetricKey или вызовом gRPC API SymmetricKeyService/UpdateAccessBindings и передайте в запросе:
- Значение
ADD
в параметреaccessBindingDeltas[].action
, чтобы добавить роль. - Роль в параметре
accessBindingDeltas[].accessBinding.roleId
. - Идентификатор субъекта, на кого назначается роль, в параметре
accessBindingDeltas[].accessBinding.subject.id
. - Тип субъекта, на кого назначается роль, в параметре
accessBindingDeltas[].accessBinding.subject.type
.
Назначить несколько ролей
- В консоли управления
выберите каталог, в котором находится секрет. - В списке сервисов выберите Key Management Service.
- На панели слева выберите
Симметричные ключи. - Нажмите на имя нужного ключа.
- Перейдите в раздел
Права доступа и нажмите кнопку Назначить роли. - Выберите группу, пользователя или сервисный аккаунт, которым нужно предоставить доступ к ключу.
- Нажмите кнопку
Добавить роль и выберите необходимые роли. - Нажмите кнопку Сохранить.
Внимание
Команда set-access-bindings
для назначения нескольких ролей полностью перезаписывает права доступа к ресурсу. Все текущие роли на ресурс будут удалены.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы назначить несколько ролей на симметричный ключ шифрования:
-
Убедитесь, что на симметричный ключ не назначены роли, которые вы не хотите потерять:
yc kms symmetric-key list-access-bindings \ --id <идентификатор_ключа>
-
Посмотрите описание команды CLI для назначения ролей:
yc kms symmetric-key set-access-bindings --help
-
Получите список симметричных ключей шифрования вместе с их идентификаторами:
yc kms symmetric-key list
-
Получите идентификатор пользователя, сервисного аккаунта или группы пользователей, которым назначаете роли.
-
С помощью одной из команд ниже назначьте роли:
-
Пользователю с аккаунтом на Яндексе:
yc kms symmetric-key set-access-bindings \ --id <идентификатор_ключа> \ --access-binding role=<роль>,user-account-id=<идентификатор_пользователя>
-
Федеративному пользователю:
yc kms symmetric-key set-access-bindings \ --id <идентификатор_ключа> \ --access-binding role=<роль>,subject=federatedUser:<идентификатор_пользователя>
-
Сервисному аккаунту:
yc kms symmetric-key set-access-bindings \ --id <идентификатор_ключа> \ --access-binding role=<роль>,service-account-id=<идентификатор_сервисного_аккаунта>
-
Группе пользователей:
yc kms symmetric-key set-access-bindings \ --id <идентификатор_ключа> \ --access-binding role=<роль>,subject=group:<идентификатор_группы>
Для каждой роли передайте отдельный флаг
--access-binding
. Пример:yc kms symmetric-key set-access-bindings \ --id <идентификатор_ключа> \ --access-binding role=<роль1>,service-account-id=<идентификатор_сервисного_аккаунта> \ --access-binding role=<роль2>,service-account-id=<идентификатор_сервисного_аккаунта> \ --access-binding role=<роль3>,service-account-id=<идентификатор_сервисного_аккаунта>
-
Внимание
Метод setAccessBindings
для назначения нескольких ролей полностью перезаписывает права доступа к ресурсу. Все текущие роли на ресурс будут удалены.
Воспользуйтесь методом setAccessBindings для ресурса SymmetricKey или вызовом gRPC API SymmetricKeyService/SetAccessBindings. Передайте в запросе массив из объектов, каждый из которых соответствует отдельной роли и содержит следующие данные:
- Роль в параметре
accessBindings[].roleId
. - Идентификатор субъекта, на кого назначаются роли, в параметре
accessBindings[].subject.id
. - Тип субъекта, на кого назначаются роли, в параметре
accessBindings[].subject.type
.