Отзыв роли на ресурс
Если вы хотите запретить субъекту доступ к ресурсу, отзовите у него соответствующие роли на этот ресурс и на ресурсы, от которых наследуются права доступа. Подробнее читайте в разделе Как устроено управление доступом в Yandex.Cloud.
Примечание
Если вам надо временно отнять все права доступа у пользователя с аккаунтом на Яндексе, вы можете отозвать только роль resource-manager.clouds.member
. У пользователя останутся все остальные роли, но он не сможет выполнять никаких операций с ресурсами в облаке. Когда вы снова добавите пользователя в облако, права доступа для него уже будут настроены.
Отозвать роль
В консоли управления можно отозвать роль только на облако или каталог:
-
Откройте страницу Управление доступом для выбранного облака. Если необходимо, переключитесь на другое облако.
-
Выберите пользователя, которому хотите назначить роль, нажмите значок и выберите Настроить роли.
- Нажмите на крестик рядом с ролью, чтобы удалить ее. В блоке Роли на облако <имя облака> вы можете удалять роли, назначенные пользователю на это облако. В блоке Роли в каталогах вы можете удалять роли, назначенные пользователю на каталоги.
Чтобы отозвать роль у субъекта, удалите соответствующую привязку прав доступа для соответствующего ресурса:
- Посмотрите, кому и какие роли назначены на ресурс:
Посмотрите, какие роли назначены на ресурс:
$ yc <SERVICE-NAME> <RESOURCE> list-access-bindings <RESOURCE-NAME>|<RESOURCE-ID>
где:
<SERVICE-NAME>
— имя сервиса, которому принадлежит ресурс, напримерresource-manager
.<RESOURCE>
— категория ресурса, напримерfolder
.<RESOURCE-NAME>
— имя ресурса. Вы можете указать ресурс по имени или идентификатору.<RESOURCE-ID>
— идентификатор ресурса.
Например, посмотрите кому и какие роли назначены на каталог default
:
$ yc resource-manager folder list-access-bindings default
+---------------------+----------------+----------------------+
| ROLE ID | SUBJECT TYPE | SUBJECT ID |
+---------------------+----------------+----------------------+
| editor | serviceAccount | ajepg0mjas06siuj5usm |
| viewer | userAccount | aje6o61dvog2h6g9a33s |
+---------------------+----------------+----------------------+
-
Чтобы удалить привязку прав доступа, выполните команду:
yc <SERVICE-NAME> <RESOURCE> remove-access-binding <RESOURCE-NAME>|<RESOURCE-ID> \ --role <ROLE-ID> \ --subject <SUBJECT-TYPE>:<SUBJECT-ID>
где:
<ROLE-ID>
— идентификатор роли, которую надо отозвать, напримерresource-manager.clouds.owner
.<SUBJECT-TYPE>
— тип субъекта, у которого отзывается роль.<SUBJECT-ID>
— идентификатор субъекта.
Например, чтобы отозвать роль у пользователя с идентификатором
aje6o61dvog2h6g9a33s
:$ yc resource-manager folder remove-access-binding default \ --role viewer \ --subject userAccount:aje6o61dvog2h6g9a33s
Чтобы отозвать роль у субъекта на ресурс, удалите соответствующую привязку прав доступа:
-
Посмотрите, кому и какие роли назначены на ресурс с помощью метода
listAccessBindings
. Например, чтобы посмотреть роли на каталогb1gvmob95yysaplct532
:$ export FOLDER_ID=b1gvmob95yysaplct532 $ export IAM_TOKEN=CggaATEVAgA... $ curl -H "Authorization: Bearer ${IAM_TOKEN}" "https://resource-manager.api.cloud.yandex.net/resource-manager/v1/folders/${FOLDER_ID}:listAccessBindings" { "accessBindings": [ { "subject": { "id": "ajei8n54hmfhuk5nog0g", "type": "userAccount" }, "roleId": "editor" } ] }
-
Сформируйте тело запроса, например в файле
body.json
. В теле запроса укажите, какую привязку прав доступа необходимо удалить. Например, отзовите у пользователяajei8n54hmfhuk5nog0g
рольeditor
:body.json:
{ "accessBindingDeltas": [{ "action": "REMOVE", "accessBinding": { "roleId": "editor", "subject": { "id": "ajei8n54hmfhuk5nog0g", "type": "userAccount" } } } ] }
-
Отзовите роль, удалив указанную привязку прав доступа:
$ export FOLDER_ID=b1gvmob95yysaplct532 $ export IAM_TOKEN=CggaATEVAgA... $ curl -X POST \ -H "Content-Type: application/json" \ -H "Authorization: Bearer ${IAM_TOKEN}" \ -d '@body.json' \ "https://resource-manager.api.cloud.yandex.net/resource-manager/v1/folders/${FOLDER_ID}:updateAccessBindings"