Настройка прав доступа к бакету с помощью Identity and Access Management
В Object Storage реализовано несколько механизмов для управления доступом к ресурсам. Алгоритм взаимодействия этих механизмов см. в Обзор способов управления доступом в Object Storage.
Чтобы настроить доступ к бакету с помощью Identity and Access Management, назначьте пользователю, группе пользователей или сервисному аккаунту роль на бакет:
- В консоли управления
выберите каталог. - Перейдите в сервис Object Storage.
- Нажмите на имя бакета, к которому вы хотите выдать доступ.
- В меню слева выберите Безопасность.
- Перейдите на вкладку Права доступа.
- Нажмите кнопку Назначить роли.
- Выберите пользователя из списка или воспользуйтесь поиском по пользователям.
- Нажмите кнопку Добавить роль.
- Выберите роль для пользователя.
- Нажмите кнопку Сохранить.
Terraform
Terraform распространяется под лицензией Business Source License
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
Чтобы назначить роль на бакет с помощью Terraform:
-
Опишите в конфигурационном файле Terraform параметры ресурсов, которые необходимо создать:
resource "yandex_storage_bucket_iam_binding" "mybucket-viewers" { bucket = "<имя_бакета>" role = "<роль>" members = [ "<тип_субъекта>:<идентификатор_субъекта>", "serviceAccount:<идентификатор_сервисного_аккаунта>", "userAccount:<идентификатор_пользователя>" ] } # Пример назначения роли storage.editor для сервисных аккаунтов resource "yandex_storage_bucket_iam_binding" "sa-editors" { bucket = "<имя_бакета>" role = "storage.editor" members = [ "serviceAccount:<идентификатор_сервисного_аккаунта_1>", "serviceAccount:<идентификатор_сервисного_аккаунта_2>" ] } # Пример назначения роли storage.admin для пользователей resource "yandex_storage_bucket_iam_binding" "users-admins" { bucket = "<имя_бакета>" role = "storage.admin" members = [ "userAccount:<идентификатор_пользователя_1>", "userAccount:<идентификатор_пользователя_2>" ] }Где:
-
bucket— имя бакета. -
role— назначаемая роль.Важно
Ресурс yandex_storage_bucket_iam_binding нельзя использовать для назначения примитивных ролей (
viewer,editorиadmin) на бакет, если одновременно используется ресурс yandex_storage_bucket_grant или параметрыaclиgrantресурса yandex_storage_bucket. -
members— список типов и идентификаторов субъектов, которым назначается роль. Указывается в форматеuserAccount:<идентификатор_пользователя>илиserviceAccount:<идентификатор_сервисного_аккаунта>.
Подробнее о параметрах ресурса
yandex_storage_bucket_iam_bindingсм. в документации провайдера. -
-
Если вы совместно с ресурсом yandex_storage_bucket_iam_binding планируете использовать ресурс yandex_storage_bucket_grant для одного и того же бакета, рекомендуем выполнять создание ресурсов последовательно. Для этого добавьте в блок
yandex_storage_bucket_iam_bindingзависимость от наличия ресурсаyandex_storage_bucket_grant:resource "yandex_storage_bucket_iam_binding" "mybucket-viewers" { ... depends_on = [ yandex_storage_bucket_grant.my_bucket_grant ] } -
Примените конфигурацию:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validateЕсли конфигурация является корректной, появится сообщение:
Success! The configuration is valid. -
Выполните команду:
terraform planВ терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply -
Подтвердите изменения: введите в терминале слово
yesи нажмите Enter.
Проверить изменения ресурсов можно в консоли управления
. -
Воспользуйтесь методом REST API updateAccessBindings для ресурса Bucket или вызовом gRPC API BucketService/UpdateAccessBindings.
Также вы можете назначить роль на бакет в сервисе Identity and Access Management.