Отзыв роли на ресурс
Примечание
Даже если операция с ресурсами сервисов Yandex Cloud разрешена ролью, ее выполнение может быть заблокировано, если для организации, облака или каталога создана политика авторизации, запрещающая эту операцию.
Если вы хотите запретить субъекту доступ к ресурсу, отзовите у него соответствующие роли на этот ресурс и на ресурсы, от которых наследуются права доступа. Подробнее читайте в разделе Как устроено управление доступом в Yandex Cloud.
Отозвать роль
-
Чтобы отозвать роль в каталоге и его дочерних ресурсах:
- В консоли управления
на панели сверху нажмите или и выберите нужный каталог. - Перейдите на вкладку Права доступа.
- Выберите пользователя в списке и нажмите значок
напротив имени пользователя. - Нажмите кнопку Изменить роли.
- Нажмите значок
напротив роли, которую хотите отозвать. - Нажмите кнопку Сохранить.
- В консоли управления
-
Чтобы отозвать роль в облаке:
- В консоли управления
на панели сверху нажмите или и выберите нужное облако. - Перейдите на вкладку Права доступа.
- Выберите пользователя в списке и нажмите значок
напротив имени пользователя. - Нажмите кнопку Изменить роли.
- Нажмите значок
напротив роли, которую хотите отозвать. - Нажмите кнопку Сохранить.
- В консоли управления
-
Чтобы отозвать сразу все роли в каталоге или облаке:
- В консоли управления
на панели сверху нажмите или и выберите каталог или облако. - Перейдите на вкладку Права доступа.
- Выберите пользователя в списке и нажмите значок
напротив имени пользователя. - Если вы хотите отозвать все роли пользователя в облаке — нажмите кнопку Отозвать доступ и подтвердите отзыв.
- В консоли управления
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
Чтобы отозвать роль у субъекта, удалите права доступа для соответствующего ресурса:
-
Посмотрите, какие роли назначены на ресурс:
yc <имя_сервиса> <категория_ресурса> list-access-bindings <имя_или_идентификатор_ресурса>Где:
<имя_сервиса>— имя сервиса, которому принадлежит ресурс, напримерresource-manager.<категория_ресурса>— категория ресурса, напримерfolder.<имя_или_идентификатор_ресурса>— имя или идентификатор ресурса. Вы можете указать ресурс по имени или идентификатору.
Например, посмотрите кому и какие роли назначены на каталог
default:yc resource-manager folder list-access-bindings defaultРезультат:
+---------------------+----------------+----------------------+ | ROLE ID | SUBJECT TYPE | SUBJECT ID | +---------------------+----------------+----------------------+ | editor | serviceAccount | ajepg0mjas06******** | | viewer | userAccount | aje6o61dvog2******** | +---------------------+----------------+----------------------+ -
Чтобы удалить права доступа, выполните команду:
yc <имя_сервиса> <категория_ресурса> remove-access-binding \ --id <идентификатор_ресурса> \ --role <идентификатор_роли> \ --subject <тип_субъекта>:<идентификатор_субъекта>Где:
-
--id— идентификатор ресурса, с которого отзывается роль. -
--role— идентификатор роли, которую надо отозвать, напримерresource-manager.clouds.owner. -
--subject— обозначение субъекта, у которого отзывается роль.Обозначения субъектов
Для обозначения субъекта используется параметр
--subjectсо значением в формате<тип_субъекта>:<идентификатор>. Для некоторых типов субъектов в Yandex Cloud CLI вместо--subjectдоступны отдельные параметры, в которых достаточно указать имя или идентификатор субъекта без типа. Возможные обозначения субъектов и соответствующие параметры CLI:Тип субъекта
Обозначение субъекта
Параметр Yandex Cloud CLI
userAccountuserAccount:<идентификатор_пользователя>--user-account-idили--user-yandex-loginserviceAccountserviceAccount:<идентификатор_сервисного_аккаунта>--service-account-idили--service-account-namefederatedUserfederatedUser:<идентификатор_пользователя>--user-account-idgroupgroup:<идентификатор_группы>--group-memberssystemsystem:allAuthenticatedUsers(группа
All authenticated users)--all-authenticated-userssystem:allUsers(группа
All users)—
system:group:organization:<идентификатор_организации>:users(группа
All users in organization X)--organization-userssystem:group:federation:<идентификатор_федерации>:users(группа
All users in federation N)--federation-userssystem:group:userpool:<идентификатор_пула>:users(группа
All users in userpool P)—
-
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
Чтобы управлять инфраструктурой с помощью Terraform от имени сервисного аккаунта или пользовательских аккаунтов: аккаунта на Яндексе, федеративного аккаунта и локального пользователя, аутентифицируйтесь соответствующим способом.
-
Чтобы отозвать роль у субъекта на ресурс, найдите в конфигурационном файле описание ресурса:
resource "yandex_resourcemanager_cloud_iam_binding" "admin" { cloud_id = "<идентификатор_облака>" role = "<роль>" members = ["<субъект_1>","<субъект_2>,...,<субъект_n>"] } -
Удалите запись с информацией о субъекте, у которого нужно отозвать права, из перечня субъектов
members.Обозначения субъектов
Для обозначения субъекта используется комбинация типа и уникального идентификатора —
<тип_субъекта>:<идентификатор>. Возможные обозначения субъектов:Тип субъекта
Обозначение субъекта
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_resourcemanager_cloud_iam_bindingчитайте в документации провайдера. -
Проверьте корректность конфигурационных файлов.
- В командной строке перейдите в папку, где вы создали конфигурационный файл.
- Выполните проверку с помощью команды:
terraform planЕсли конфигурация описана верно, в терминале отобразится список создаваемых ресурсов и их параметров. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Разверните облачные ресурсы.
-
Если в конфигурации нет ошибок, выполните команду:
terraform apply -
Подтвердите создание ресурсов: введите в терминал слово
yesи нажмите Enter.
После этого в указанном каталоге будут созданы все требуемые ресурсы. Проверить создание ресурса можно в консоли управления
или с помощью команды CLI:yc resource-manager cloud list-access-bindings <имя_или_идентификатор_облака> -
Чтобы отозвать роль у субъекта на ресурс, удалите соответствующие права доступа:
-
Посмотрите, кому и какие роли назначены на ресурс с помощью метода REST API
listAccessBindings. Например, чтобы посмотреть роли на каталогb1gvmob95yys********:export FOLDER_ID=b1gvmob95yys******** export IAM_TOKEN=CggaATEVAgA... curl \ --header "Authorization: Bearer ${IAM_TOKEN}" \ "https://resource-manager.api.cloud.yandex.net/resource-manager/v1/folders/${FOLDER_ID}:listAccessBindings"Результат:
{ "accessBindings": [ { "subject": { "id": "ajei8n54hmfh********", "type": "userAccount" }, "roleId": "editor" } ] } -
Сформируйте тело запроса, например в файле
body.json. В теле запроса укажите, какие назначенные права доступа необходимо удалить. Например, отзовите у пользователяajei8n54hmfh********рольeditor:body.json:
{ "accessBindingDeltas": [{ "action": "REMOVE", "accessBinding": { "roleId": "editor", "subject": { "id": "ajei8n54hmfh********", "type": "userAccount" } } } ] } -
Отзовите роль, удалив назначенные права доступа:
export FOLDER_ID=b1gvmob95yys******** export IAM_TOKEN=CggaAT******** curl \ --request POST \ --header "Content-Type: application/json" \ --header "Authorization: Bearer ${IAM_TOKEN}" \ --data '@body.json' \ "https://resource-manager.api.cloud.yandex.net/resource-manager/v1/folders/${FOLDER_ID}:updateAccessBindings"