Настроить права доступа к расписанию снимков диска
Чтобы предоставить пользователю, группе или сервисному аккаунту доступ к расписанию снимков диска, назначьте на него роль.
Назначить роль
- В консоли управления
выберите каталог, которому принадлежит расписание. - Выберите сервис Compute Cloud.
- На панели слева выберите
Снимки дисков. - Перейдите на вкладку Расписания снимков.
- Выберите расписание из списка.
- Перейдите на вкладку
Права доступа. - Нажмите кнопку Назначить роли.
- В открывшемся окне выберите группу, пользователя или сервисный аккаунт, которым нужно предоставить доступ к расписанию.
- Нажмите кнопку
Добавить роль и выберите необходимые роли. - Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команды CLI для назначения роли на расписание снимков диска:
yc compute snapshot-schedule add-access-binding --help
-
Получите список расписаний в каталоге по умолчанию:
yc compute snapshot-schedule list
Результат:
+----------------------+-----------------+--------+-------------+ | ID | NAME | STATUS | DESCRIPTION | +----------------------+-----------------+--------+-------------+ | fd85vvoeea6u******** | first-schedule | ACTIVE | | | fd14ogykea8j******** | second-schedule | ACTIVE | | +----------------------+-----------------+--------+-------------+
-
Посмотрите список ролей, которые уже назначены на ресурс:
yc compute snapshot-schedule list-access-bindings <идентификатор_расписания>
-
Назначьте роль с помощью команды:
-
Пользователю:
yc compute snapshot-schedule add-access-binding <идентификатор_расписания> \ --user-account-id <идентификатор_пользователя> \ --role <роль>
Где:
--user-account-id
— идентификатор пользователя.--role
— назначаемая роль.
-
Сервисному аккаунту:
yc compute snapshot-schedule add-access-binding <идентификатор_расписания> \ --service-account-id <идентификатор_сервисного_аккаунта> \ --role <роль>
Где:
--service-account-id
— идентификатор сервисного аккаунта.--role
— назначаемая роль.
-
Terraform
Terraform распространяется под лицензией Business Source License
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
Чтобы назначить роль на расписание с помощью Terraform:
-
Опишите в конфигурационном файле Terraform параметры ресурсов, которые необходимо создать:
resource "yandex_compute_snapshot_schedule_iam_binding" "sa-access" { snapshot_schedule_id = "<идентификатор_расписания>" role = "<роль>" members = ["<тип_субъекта>:<идентификатор_субъекта>","<тип_субъекта>:<идентификатор_субъекта>"] }
Где:
snapshot_schedule_id
— идентификатор расписания.role
— назначаемая роль.members
— список типов и идентификаторов субъектов, которым назначается роль. Указывается в видеuserAccount:<идентификатор_пользователя>
илиserviceAccount:<идентификатор_сервисного_аккаунта>
.
Более подробную информацию о параметрах ресурса
yandex_compute_snapshot_schedule_iam_binding
см. в документации провайдера . -
Создайте ресурсы:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминале слово
yes
и нажмите Enter.
Terraform создаст все требуемые ресурсы. Проверить появление ресурсов можно в консоли управления
и с помощью команды CLI:yc compute snapshot-schedule list-access-bindings <идентификатор_расписания>
-
Воспользуйтесь методом REST API updateAccessBindings для ресурса SnapshotSchedule или вызовом gRPC API SnapshotSchedule/UpdateAccessBindings. В теле запроса в свойстве action
укажите ADD
, а в свойстве subject
— тип и идентификатор пользователя.
Назначить несколько ролей
- В консоли управления
выберите каталог, которому принадлежит расписание. - Выберите сервис Compute Cloud.
- На панели слева выберите
Снимки дисков. - Перейдите на вкладку Расписания снимков.
- Выберите расписание из списка.
- Перейдите на вкладку
Права доступа. - Нажмите кнопку Назначить роли.
- В открывшемся окне выберите группу, пользователя или сервисный аккаунт, которым нужно предоставить доступ к расписанию.
- Нажмите кнопку
Добавить роль и выберите необходимые роли. - Добавьте еще роль через кнопку Добавить роль.
- Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Вы можете назначить несколько ролей с помощью команды set-access-bindings
.
Внимание
Команда set-access-bindings
полностью перезаписывает права доступа к ресурсу. Все текущие роли на ресурс будут удалены.
-
Убедитесь, что на ресурс не назначены роли, которые вы не хотите потерять:
yc compute snapshot-schedule list-access-bindings <идентификатор_расписания>
-
Посмотрите описание команды CLI для назначения ролей на расписание снимков диска:
yc compute snapshot-schedule set-access-bindings --help
-
Назначьте роли:
yc compute snapshot-schedule set-access-bindings <идентификатор_расписания> \ --access-binding role=<роль>,subject=<тип_субъекта>:<идентификатор_субъекта>
Где:
-
--access-binding
— назначаемая роль:role
— идентификатор назначаемой роли.subject
— тип и идентификатор субъекта, которому назначается роль.
Например, назначьте роли нескольким пользователям и сервисному аккаунту:
yc compute snapshot-schedule set-access-bindings my-schedule \ --access-binding role=editor,subject=userAccount:gfei8n54hmfh******** --access-binding role=viewer,subject=userAccount:helj89sfj80a******** --access-binding role=editor,subject=serviceAccount:ajel6l0jcb9s********
-
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
Чтобы назначить несколько ролей на расписание с помощью Terraform:
-
Опишите в конфигурационном файле Terraform параметры ресурсов, которые необходимо создать:
resource "yandex_compute_snapshot_schedule_iam_binding" "role-1" { snapshot_schedule_id = "<идентификатор_расписания>" role = "<роль_1>" members = ["<тип_субъекта>:<идентификатор_субъекта>"] } resource "yandex_compute_snapshot_schedule_iam_binding" "role-2" { snapshot_schedule_id = "<идентификатор_расписания>" role = "<роль_2>" members = ["<тип_субъекта>:<идентификатор_субъекта>"] }
Где:
snapshot_schedule_id
— идентификатор расписания.role
— назначаемая роль.members
— список типов и идентификаторов субъектов, которым назначается роль. Указывается в видеuserAccount:<идентификатор_пользователя>
илиserviceAccount:<идентификатор_сервисного_аккаунта>
.
Более подробную информацию о параметрах ресурса
yandex_compute_snapshot_schedule_iam_binding
см. в документации провайдера . -
Создайте ресурсы:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминале слово
yes
и нажмите Enter.
Проверить изменения можно в консоли управления
и с помощью команды CLI:yc compute snapshot-schedule list-access-bindings <идентификатор_расписания>
-
Воспользуйтесь методом REST API setAccessBindings для ресурса SnapshotSchedule или вызовом gRPC API SnapshotSchedule/SetAccessBindings.
Отозвать роль
- В консоли управления
выберите каталог, которому принадлежит расписание. - Выберите сервис Compute Cloud.
- На панели слева выберите
Снимки дисков. - Перейдите на вкладку Расписания снимков.
- Выберите расписание из списка.
- Перейдите на вкладку
Права доступа. - В строке нужного пользователя нажмите значок
и выберите Изменить роли. - Нажмите значок
рядом с ролью, чтобы удалить ее. - Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команды CLI для отзыва роли на расписание снимков диска:
yc compute snapshot-schedule remove-access-binding --help
-
Посмотрите, кому и какие роли назначены на ресурс:
yc compute snapshot-schedule list-access-bindings <идентификатор_расписания>
-
Чтобы отозвать права доступа, выполните команду:
yc compute snapshot-schedule remove-access-binding <идентификатор_расписания> \ --role <идентификатор_роли> \ --subject <тип_субъекта>:<идентификатор_субъекта>
Где:
--role
— идентификатор роли, которую надо отозвать.--subject
— субъект, у которого отзывается роль.
Например, чтобы отозвать роль
viewer
у пользователя с идентификаторомajel6l0jcb9s********
на расписание:yc compute snapshot-schedule remove-access-binding my-schedule \ --role viewer \ --subject userAccount:ajel6l0jcb9s********
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
Чтобы отозвать роль, назначенную на расписание снимков диска с помощью Terraform:
-
Откройте файл конфигурации Terraform и удалите фрагмент с описанием роли:
... resource "yandex_compute_snapshot_schedule_iam_binding" "sa-access" { snapshot_schedule_id = "<идентификатор_расписания>" role = "<роль>" members = ["<тип_субъекта>:<идентификатор_субъекта>"] }
-
Примените изменения:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминале слово
yes
и нажмите Enter.
Проверить изменения можно в консоли управления
и с помощью команды CLI:yc compute snapshot-schedule list-access-bindings <идентификатор_расписания>
-
Чтобы отозвать роли на расписание снимков диска, воспользуйтесь методом REST API [updateAccessBindings](../../api-ref/SnapshotSchedule /updateAccessBindings.md) для ресурса SnapshotSchedule или вызовом gRPC API SnapshotScheduleService/UpdateAccessBindings. В теле запроса в свойстве action
укажите REMOVE
, а в свойстве subject
— тип и идентификатор пользователя.