Настройка прав доступа к бакету с помощью 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.
Проверить изменения ресурсов можно в консоли управления
. -
Также вы можете назначить роль на бакет в сервисе Identity and Access Management.