Настроить права доступа к снимку диска
Чтобы предоставить пользователю, группе или сервисному аккаунту доступ к снимку диска, назначьте на него роль.
Назначить роль
- В консоли управления
выберите каталог, которому принадлежит снимок диска. - Перейдите
в сервис Compute Cloud. - На панели слева выберите
Снимки дисков. - Выберите снимок диска из списка.
- Перейдите на вкладку Права доступа.
- Нажмите кнопку Назначить роли.
- В открывшемся окне выберите группу, пользователя или сервисный аккаунт, которым нужно предоставить доступ к снимку диска.
- Нажмите кнопку
Добавить роль и выберите необходимые роли. - Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
-
Посмотрите описание команды CLI для назначения роли на снимок диска:
yc compute snapshot add-access-binding --help -
Получите список снимков в каталоге по умолчанию:
yc compute snapshot listРезультат:
+----------------------+-----------------+----------------------+--------+----------------------------+ | ID | NAME | PRODUCT IDS | STATUS | DESCRIPTION | +----------------------+-----------------+----------------------+--------+----------------------------+ | fd8rlt1u2rf0l******* | first-snapshot | f2ecl5vhsftd******** | READY | my first snapshot via CLI | | fhmolt1u2rf0******** | second-snapshot | f2eclmol5lps******** | READY | my second snapshot via CLI | +----------------------+-----------------+----------------------+--------+----------------------------+ -
Посмотрите список ролей, которые уже назначены на ресурс:
yc compute snapshot list-access-bindings <идентификатор_снимка> -
Назначьте роль с помощью команды:
yc compute snapshot add-access-binding <идентификатор_снимка> \ --role <роль> \ --subject <тип_субъекта>:<идентификатор_субъекта>Где:
-
--role— назначаемая роль. -
--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
Terraform распространяется под лицензией Business Source License
Подробная информация о ресурсах провайдера в документации на сайте Terraform
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
Чтобы управлять инфраструктурой с помощью Terraform от имени сервисного аккаунта или пользовательских аккаунтов: аккаунта на Яндексе, федеративного аккаунта и локального пользователя, аутентифицируйтесь соответствующим способом.
Чтобы назначить роль на снимок с помощью Terraform:
-
Опишите в конфигурационном файле Terraform параметры ресурсов, которые необходимо создать:
resource "yandex_compute_snapshot_iam_binding" "sa-access" { snapshot_id = "<идентификатор_снимка>" role = "<роль>" members = ["<тип_субъекта>:<идентификатор_субъекта>","<тип_субъекта>:<идентификатор_субъекта>"] }Где:
-
snapshot_id— идентификатор снимка. -
role— назначаемая роль. -
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_compute_snapshot_iam_bindingчитайте в документации провайдера. -
-
Создайте ресурсы:
-
В терминале перейдите в директорию с конфигурационным файлом.
-
Проверьте корректность конфигурации с помощью команды:
terraform validateЕсли конфигурация является корректной, появится сообщение:
Success! The configuration is valid. -
Выполните команду:
terraform planВ терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply -
Подтвердите изменения: введите в терминале слово
yesи нажмите Enter.
Terraform создаст все требуемые ресурсы. Проверить появление ресурсов можно в консоли управления
и с помощью команды CLI:yc compute snapshot list-access-bindings <идентификатор_снимка> -
Воспользуйтесь методом REST API updateAccessBindings для ресурса Snapshot или вызовом gRPC API SnapshotService/UpdateAccessBindings. В теле запроса в свойстве action укажите ADD, а в свойстве subject — тип и идентификатор субъекта.
Обозначения субъектов
Для обозначения субъекта используется комбинация типа и уникального идентификатора в полях запроса subject.type и subject.id. Возможные комбинации:
|
subject.type |
subject.id |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(группа |
|
(группа |
|
|
(группа |
|
|
(группа |
|
|
(группа |
Назначить несколько ролей
- В консоли управления
выберите каталог, которому принадлежит снимок диска. - Перейдите
в сервис Compute Cloud. - На панели слева выберите
Снимки дисков. - Выберите снимок диска из списка.
- Перейдите на вкладку Права доступа.
- Нажмите кнопку Назначить роли.
- В открывшемся окне выберите группу, пользователя или сервисный аккаунт, которым нужно предоставить доступ к снимку диска.
- Нажмите кнопку
Добавить роль и выберите необходимые роли. - Добавьте еще роль через кнопку Добавить роль.
- Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
Вы можете назначить несколько ролей с помощью команды set-access-bindings.
Внимание
Команда set-access-bindings полностью перезаписывает права доступа к ресурсу. Все текущие роли на ресурс будут удалены.
-
Убедитесь, что на ресурс не назначены роли, которые вы не хотите потерять:
yc compute snapshot list-access-bindings <идентификатор_снимка> -
Посмотрите описание команды CLI для назначения ролей на снимок диска:
yc compute snapshot set-access-bindings --help -
Назначьте роли:
yc compute snapshot set-access-bindings <идентификатор_снимка> \ --access-binding role=<роль>,subject=<тип_субъекта>:<идентификатор_субъекта>Где
--access-binding— назначаемая роль:-
role— идентификатор назначаемой роли. -
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)—
Например, назначьте роли нескольким пользователям и сервисному аккаунту:
yc compute snapshot set-access-bindings my-snapshot \ --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:
-
Опишите в конфигурационном файле Terraform параметры ресурсов, которые необходимо создать:
resource "yandex_compute_snapshot_iam_binding" "role-1" { snapshot_id = "<идентификатор_снимка>" role = "<роль_1>" members = ["<тип_субъекта>:<идентификатор_субъекта>"] } resource "yandex_compute_snapshot_iam_binding" "role-2" { snapshot_id = "<идентификатор_снимка>" role = "<роль_2>" members = ["<тип_субъекта>:<идентификатор_субъекта>"] }Где:
-
snapshot_id— идентификатор снимка. -
role— назначаемая роль. -
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_compute_snapshot_iam_bindingчитайте в документации провайдера. -
-
Создайте ресурсы:
-
В терминале перейдите в директорию с конфигурационным файлом.
-
Проверьте корректность конфигурации с помощью команды:
terraform validateЕсли конфигурация является корректной, появится сообщение:
Success! The configuration is valid. -
Выполните команду:
terraform planВ терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply -
Подтвердите изменения: введите в терминале слово
yesи нажмите Enter.
Проверить изменения можно в консоли управления
и с помощью команды CLI:yc compute snapshot list-access-bindings <идентификатор_снимка> -
Воспользуйтесь методом REST API setAccessBindings для ресурса Snapshot или вызовом gRPC API SnapshotService/SetAccessBindings. В теле запроса в свойстве subject укажите тип и идентификатор субъекта.
Обозначения субъектов
Для обозначения субъекта используется комбинация типа и уникального идентификатора в полях запроса subject.type и subject.id. Возможные комбинации:
|
subject.type |
subject.id |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(группа |
|
(группа |
|
|
(группа |
|
|
(группа |
|
|
(группа |
Отозвать роль
- В консоли управления
выберите каталог, которому принадлежит снимок диска. - Перейдите
в сервис Compute Cloud. - На панели слева выберите
Снимки дисков. - Выберите снимок диска из списка.
- Перейдите на вкладку Права доступа.
- В строке нужного пользователя нажмите значок
и выберите Изменить роли. - Нажмите значок
рядом с ролью, чтобы удалить ее. - Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
-
Посмотрите описание команды CLI для отзыва роли на снимок диска:
yc compute snapshot remove-access-binding --help -
Посмотрите, кому и какие роли назначены на ресурс:
yc compute snapshot list-access-bindings <идентификатор_снимка> -
Чтобы отозвать права доступа, выполните команду:
yc compute snapshot remove-access-binding <идентификатор_снимка> \ --role <идентификатор_роли> \ --subject <тип_субъекта>:<идентификатор_субъекта>Где:
-
--role— идентификатор роли, которую надо отозвать. -
--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)—
Например, чтобы отозвать роль
viewerу пользователя с идентификаторомajel6l0jcb9s********на снимок диска:yc compute snapshot remove-access-binding my-snapshot \ --role viewer \ --subject userAccount:ajel6l0jcb9s******** -
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
Чтобы управлять инфраструктурой с помощью Terraform от имени сервисного аккаунта или пользовательских аккаунтов: аккаунта на Яндексе, федеративного аккаунта и локального пользователя, аутентифицируйтесь соответствующим способом.
Чтобы отозвать роль, назначенную на снимок диска с помощью Terraform:
-
Откройте файл конфигурации Terraform и удалите фрагмент с описанием роли:
resource "yandex_compute_snapshot_iam_binding" "sa-access" { snapshot_id = "<идентификатор_снимка>" role = "<роль>" members = ["<тип_субъекта>:<идентификатор_субъекта>"] } -
Примените изменения:
-
В терминале перейдите в директорию с конфигурационным файлом.
-
Проверьте корректность конфигурации с помощью команды:
terraform validateЕсли конфигурация является корректной, появится сообщение:
Success! The configuration is valid. -
Выполните команду:
terraform planВ терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply -
Подтвердите изменения: введите в терминале слово
yesи нажмите Enter.
Проверить изменения можно в консоли управления
и с помощью команды CLI:yc compute snapshot list-access-bindings <идентификатор_снимка> -
Чтобы отозвать роли на снимок диска, воспользуйтесь методом REST API updateAccessBindings для ресурса Snapshot или вызовом gRPC API SnapshotService/UpdateAccessBindings. В теле запроса в свойстве action укажите REMOVE, а в свойстве subject — тип и идентификатор субъекта.
Обозначения субъектов
Для обозначения субъекта используется комбинация типа и уникального идентификатора в полях запроса subject.type и subject.id. Возможные комбинации:
|
subject.type |
subject.id |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(группа |
|
(группа |
|
|
(группа |
|
|
(группа |
|
|
(группа |