Назначить роль пользователю
Назначать роли в Yandex Identity Hub могут администраторы и владельцы организации. Вы можете назначать пользователям не только роли для управления организацией, но и роли для доступа к ресурсам облаков, подключенных к вашей организации.
О том, какие роли доступны в Yandex Cloud и какие разрешения в них входят, читайте в документации Yandex Identity and Access Management в разделе Справочник ролей Yandex Cloud.
-
Войдите в сервис Yandex Identity Hub
с учетной записью администратора или владельца организации. -
На панели слева выберите
Права доступа. -
Если у нужного пользователя уже есть хотя бы одна роль, в строке с этим пользователем нажмите значок
и выберите Назначить роли.Если нужного пользователя нет в списке, в правом верхнем углу страницы нажмите кнопку Назначить роли. В открывшемся окне выберите пользователя из списка или воспользуйтесь строкой поиска.
-
Нажмите кнопку
Добавить роль и выберите роль, которую хотите назначить пользователю. Вы можете назначить несколько ролей.Описание доступных ролей можно найти в документации Yandex Identity and Access Management в справочнике ролей Yandex Cloud.
-
Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
-
Выберите роль, которую хотите назначить.
-
Получите идентификатор пользователя.
-
Назначьте роль с помощью команды:
yc organization-manager organization add-access-binding <имя_или_идентификатор_организации> \ --role <идентификатор_роли> \ --user-account-id <идентификатор_пользователя>Где:
--role— идентификатор роли.--user-account-id— идентификатор пользователя. Также вы можете использовать параметр--user-yandex-loginи указать логин пользователя вместо идентификатора.
Например, назначьте пользователю роль администратора на организацию с идентификатором
b1gmit33ngp3********:yc organization-manager organization add-access-binding b1gmit33ngp3******** \ --role resource-manager.admin \ --user-account-id aje6o61dvog2********
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
Чтобы управлять инфраструктурой с помощью Terraform от имени сервисного аккаунта или пользовательских аккаунтов: аккаунта на Яндексе, федеративного аккаунта и локального пользователя, аутентифицируйтесь соответствующим способом.
-
Выберите роль, которую хотите назначить.
-
Получите идентификатор пользователя.
-
Опишите в конфигурационном файле параметры назначаемых ролей.
Пример структуры конфигурационного файла для назначения роли на организацию:
resource "yandex_organizationmanager_organization_iam_binding" "editor" { organization_id = "<идентификатор_организации>" role = "<идентификатор_роли>" member = "userAccount:<идентификатор_пользователя>" }Где:
-
organization_id— идентификатор организации. -
role— роль, которую хотите назначить. Для каждой роли можно использовать только один ресурсyandex_organizationmanager_organization_iam_binding. -
member— обозначение субъекта, которому назначается роль.Обозначения субъектов
Для обозначения субъекта используется комбинация типа и уникального идентификатора —
<тип_субъекта>:<идентификатор>. Возможные обозначения субъектов:Тип субъекта
Обозначение субъекта
userAccountuserAccount:<идентификатор_пользователя>serviceAccountserviceAccount:<идентификатор_сервисного_аккаунта>federatedUserfederatedUser:<идентификатор_пользователя>groupgroup:<идентификатор_группы>systemsystem:allAuthenticatedUsers(группа
All authenticated users)system:allUsers(группа
All users)system:group:organization:<идентификатор_организации>:users(группа
All users in organization X)system:group:federation:<идентификатор_федерации>:users(группа
All users in federation N)system:group:userpool:<идентификатор_пула>:users(группа
All users in userpool P)
Подробнее о параметрах ресурса
yandex_organizationmanager_organization_iam_bindingчитайте в документации провайдера. -
-
Создайте ресурсы:
-
В терминале перейдите в директорию с конфигурационным файлом.
-
Проверьте корректность конфигурации с помощью команды:
terraform validateЕсли конфигурация является корректной, появится сообщение:
Success! The configuration is valid. -
Выполните команду:
terraform planВ терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply -
Подтвердите изменения: введите в терминале слово
yesи нажмите Enter.
-
После этого указанному пользователю будут назначены роли в организации. Проверить назначение роли можно в интерфейсе Cloud Center
Чтобы назначить роль пользователю на организацию, воспользуйтесь методом REST API updateAccessBindings для ресурса Organization или вызовом gRPC API OrganizationService/UpdateAccessBindings.
-
Выберите роль, которую хотите назначить.
-
Получите идентификатор пользователя.
-
Сформируйте тело запроса, например в файле
body.json. В свойствеactionукажитеADD, а в свойствеsubject— типuserAccountилиfederatedUserи идентификатор пользователя:body.json:
{ "accessBindingDeltas": [{ "action": "ADD", "accessBinding": { "roleId": "<идентификатор_роли>", "subject": { "id": "<идентификатор_пользователя>", "type": "userAccount" } } }] }Где:
-
Значение
ADDв параметреaccessBindingDeltas[].actionуказывает, что роль нужно добавить. -
accessBindingDeltas[].accessBinding.roleId— идентификатор роли, которую нужно назначить. -
accessBindingDeltas[].accessBinding.subject.id— идентификатор субъекта, которому назначается роль. -
accessBindingDeltas[].accessBinding.subject.type— тип субъекта, которому назначается роль.Обозначения субъектов
Для обозначения субъекта используется комбинация типа и уникального идентификатора в полях запроса
subject.typeиsubject.id. Возможные комбинации:subject.type
subject.id
userAccount<идентификатор_пользователя>serviceAccount<идентификатор_сервисного_аккаунта>federatedUser<идентификатор_пользователя>group<идентификатор_группы>systemallAuthenticatedUsers(группа
All authenticated users)allUsers(группа
All users)group:organization:<идентификатор_организации>:users(группа
All users in organization X)group:federation:<идентификатор_федерации>:users(группа
All users in federation N)group:userpool:<идентификатор_пула>:users(группа
All users in userpool P)
-
-
Назначьте роль. Например, для организации с идентификатором
bpf3crucp1v2********:export ORGANIZATION_ID=bpf3crucp1v2******** export IAM_TOKEN=<IAM-токен> curl \ --request POST \ --header "Content-Type: application/json" \ --header "Authorization: Bearer ${IAM_TOKEN}" \ --data '@body.json' \ "https://organization-manager.api.cloud.yandex.net/organization-manager/v1/organizations/${ORGANIZATION_ID}:updateAccessBindings"
Аналогичным образом можно назначить роль на организацию сервисному аккаунту.