Отзыв роли на ресурс
Если вы хотите запретить субъекту доступ к ресурсу, отзовите у него соответствующие роли на этот ресурс и на ресурсы, от которых наследуются права доступа. Подробнее читайте в разделе Как устроено управление доступом в Yandex Cloud.
Отозвать роль
В консоли управления можно отозвать роль только на облако или каталог.
-
Чтобы отозвать роль только в каталоге:
- На стартовой странице консоли управления выберите каталог.
- Перейдите на вкладку Права доступа.
- Выберите пользователя в списке и нажмите значок
- Нажмите кнопку Изменить роли.
- Нажмите значок
напротив роли, которую хотите отозвать. - Нажмите кнопку Сохранить.
-
Чтобы отозвать роль в облаке:
- На стартовой странице консоли управления выберите облако.
- Перейдите на вкладку Права доступа.
- Выберите пользователя в списке и нажмите значок
- Нажмите кнопку Изменить роли.
- Нажмите значок
напротив роли, которую хотите отозвать. - Нажмите кнопку Сохранить.
-
Чтобы отозвать сразу все роли в каталоге или облаке:
- На стартовой странице консоли управления выберите каталог или облако.
- Перейдите на вкладку Права доступа.
- Выберите пользователя в списке и нажмите значок
- Если вы хотите отозвать все роли пользователя в облаке — нажмите кнопку Отозвать роли и подтвердите отзыв.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
Чтобы отозвать роль у субъекта, удалите соответствующую привязку прав доступа для соответствующего ресурса:
-
Посмотрите, какие роли назначены на ресурс:
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>
— идентификатор субъекта.
Чтобы отозвать роль у субъекта на ресурс, удалите соответствующую привязку прав доступа:
-
Посмотрите, кому и какие роли назначены на ресурс с помощью метода
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"
Если у вас ещё нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Чтобы отозвать роль у субъекта на ресурс, найдите в конфигурационном файле описание ресурса:
resource "yandex_resourcemanager_cloud_iam_binding" "admin" { cloud_id = "<идентификатор облака>" role = "<роль>" members = [ "serviceAccount:<идентификатор сервисного аккаунта>", "userAccount:<идентификатор пользователя>", ] }
-
Удалите запись с информацией о субъекте, у которого нужно отозвать права, из перечня пользователей
members
.Более подробную информацию о параметрах ресурса
yandex_resourcemanager_cloud_iam_binding
, см. в документации провайдера. -
Проверьте корректность конфигурационных файлов.
- В командной строке перейдите в папку, где вы создали конфигурационный файл.
- Выполните проверку с помощью команды:
terraform plan
Если конфигурация описана верно, в терминале отобразится список создаваемых ресурсов и их параметров. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Разверните облачные ресурсы.
-
Если в конфигурации нет ошибок, выполните команду:
terraform apply
-
Подтвердите создание ресурсов: введите в терминал слово
yes
и нажмите Enter.
После этого в указанном каталоге будут созданы все требуемые ресурсы. Проверить создание ресурса можно в консоли управления или с помощью команды CLI:
yc resource-manager cloud list-access-bindings <имя облака>|<идентификатор облака>
-