Yandex Cloud
Поиск
Связаться с экспертомПопробовать бесплатно
  • Кейсы
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
  • Marketplace
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Искусственный интеллект
    • Безопасность
    • Инструменты DevOps
    • Бессерверные вычисления
    • Управление ресурсами
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
    • Акции и free tier
  • Кейсы
  • Документация
  • Блог
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ООО «Яндекс.Облако»
Yandex Object Storage
    • Все инструкции
      • Создание бакета
      • Удаление бакета
      • Ограничение максимального размера бакета
      • Шифрование бакета
      • Управление жизненными циклами объектов
      • Управление конфигурацией CORS
      • Настройка прав доступа с помощью IAM
      • Редактирование ACL бакета
      • Управление политикой доступа
      • Настройка публичного доступа к бакету
      • Запретить доступ со статическими ключами
      • Доступ в бакет с помощью Security Token Service
      • Доступ в бакет с помощью эфемерного ключа доступа
      • Доступ в бакет с помощью сервисного подключения из VPC
      • Управление версионированием бакета
      • Включение механизма логирования
      • Управление блокировками версий объектов
      • Управление выгрузкой метаданных объектов
      • Управление метками бакета
      • Получение списка бакетов
      • Получение информации и статистики о бакете
      • Просмотр метрик бакета
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Логи бакета
  • История изменений
  • Вопросы и ответы
  • Обучающие курсы
  1. Пошаговые инструкции
  2. Бакеты
  3. Настройка прав доступа с помощью IAM

Настройка прав доступа к бакету с помощью Identity and Access Management

Статья создана
Yandex Cloud
Улучшена
Обновлена 18 июня 2026 г.

В Object Storage реализовано несколько механизмов для управления доступом к ресурсам. Алгоритм взаимодействия этих механизмов приведен в Обзор способов управления доступом в Object Storage.

Чтобы настроить доступ к бакету с помощью Identity and Access Management, назначьте пользователю, группе пользователей или сервисному аккаунту роль на бакет:

Консоль управления
CLI
Terraform
API
  1. В консоли управления выберите каталог.
  2. Перейдите в сервис Object Storage.
  3. Нажмите на имя бакета, к которому вы хотите выдать доступ.
  4. В меню слева выберите Безопасность.
  5. Перейдите на вкладку Права доступа.
  6. Нажмите кнопку Назначить роли.
  7. Выберите пользователя из списка или воспользуйтесь поиском по пользователям.
  8. Нажмите кнопку Добавить роль.
  9. Выберите роль для пользователя.
  10. Нажмите кнопку Сохранить.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

  1. Посмотрите описание команды CLI для изменения настроек бакета:

    yc storage bucket update --help
    
  2. Назначьте роль на бакет:

    yc storage bucket update \
      --name <имя_бакета> \
      --grants grantee-id=<идентификатор_аккаунта>,grant-type=<тип_субъекта>,permission=<разрешение>
    

    Где:

    • --name — имя бакета.
    • --grants — параметры настройки прав доступа ACL:
      • grantee-id — идентификатор аккаунта, которому выдаются права. Используется при значении параметра grant-type=grant-type-account.
      • grant-type — тип субъекта, которому выдаются права. Возможные значения:
        • grant-type-account — пользовательский или сервисный аккаунт;
        • grant-type-all-authenticated-users — все аутентифицированные пользователи;
        • grant-type-all-users — все пользователи.
      • permission — выдаваемое разрешение. Возможные значения:
        • permission-full-control — полный доступ к бакету и объектам в нем;
        • permission-write — запись объектов в бакет;
        • permission-write-acp — изменение ACL бакета;
        • permission-read — чтение объектов в бакете;
        • permission-read-acp — чтение ACL бакета.

При вызове команды yc storage bucket update назначенные роли ACL бакета перезаписываются, а не дополняются. Чтобы сохранить существующие настройки прав доступа, их необходимо перечислить заново в параметре --grants.

Подробнее о команде yc storage bucket update в Справочнике YC CLI.

ПримерПример

Чтобы назначить сервисному аккаунту права для полного доступа к бакету с помощью CLI:

  1. Получите список бакетов в каталоге по умолчанию:

    yc storage bucket list
    

    Результат:

    +------------------+----------------------+----------+-----------------------+---------------------+
    |       NAME       |      FOLDER ID       | MAX SIZE | DEFAULT STORAGE CLASS |     CREATED AT      |
    +------------------+----------------------+----------+-----------------------+---------------------+
    | my-bucket        | b1gmit33ngp3******** | 10       | STANDARD              | 2022-12-16 13:58:18 |
    +------------------+----------------------+----------+-----------------------+---------------------+
    
  2. Получите список сервисных аккаунтов в каталоге по умолчанию:

    yc iam service-account list
    

    Результат:

    +----------------------+--------------+--------+---------------------+-----------------------+
    |          ID          |     NAME     | LABELS |     CREATED AT      | LAST AUTHENTICATED AT |
    +----------------------+--------------+--------+---------------------+-----------------------+
    | ajeg2b2et02f******** | my-robot     |        | 2024-09-08 18:59:45 | 2025-02-18 10:10:00   |
    | ajegtlf2q28a******** | account-name |        | 2023-06-27 16:18:18 | 2025-02-18 10:20:00   |
    +----------------------+--------------+--------+---------------------+-----------------------+
    
  3. Назначьте роль на бакет:

    yc storage bucket update \
      --name my-bucket \
      --grants grantee-id=ajeg2b2et02f********,grant-type=grant-type-account,permission=permission-full-control
    

Результат:

name: my-bucket
folder_id: b1g0ijbfaqsn********
default_storage_class: STANDARD
versioning: VERSIONING_DISABLED
max_size: "53687091200"
acl:
  grants:
    - permission: PERMISSION_FULL_CONTROL
      grant_type: GRANT_TYPE_ACCOUNT
      grantee_id: ajeg2b2et02f********
created_at: "2026-04-30T09:48:38.836171Z"
resource_id: e3ev6mif5rb1********

Terraform позволяет быстро создать облачную инфраструктуру в Yandex Cloud и управлять ею с помощью файлов конфигураций. В файлах конфигураций хранится описание инфраструктуры на языке HCL (HashiCorp Configuration Language). При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.

Terraform распространяется под лицензией Business Source License, а провайдер Yandex Cloud для Terraform — под лицензией MPL-2.0.

Подробная информация о ресурсах провайдера в документации на сайте Terraform или в зеркале.

Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.

Чтобы управлять инфраструктурой с помощью Terraform от имени сервисного аккаунта или пользовательских аккаунтов: аккаунта на Яндексе, федеративного аккаунта и локального пользователя, аутентифицируйтесь соответствующим способом.

Чтобы назначить роль на бакет с помощью Terraform:

  1. Опишите в конфигурационном файле 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 читайте в документации провайдера.

  2. Если вы совместно с ресурсом 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
      ]
    }
    
  3. Примените конфигурацию:

    1. В терминале перейдите в директорию с конфигурационным файлом.

    2. Проверьте корректность конфигурации с помощью команды:

      terraform validate
      

      Если конфигурация является корректной, появится сообщение:

      Success! The configuration is valid.
      
    3. Выполните команду:

      terraform plan
      

      В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.

    4. Примените изменения конфигурации:

      terraform apply
      
    5. Подтвердите изменения: введите в терминале слово yes и нажмите Enter.

    Проверить изменения ресурсов можно в консоли управления.

Воспользуйтесь методом REST API updateAccessBindings для ресурса Bucket или вызовом gRPC API BucketService/UpdateAccessBindings.

Также вы можете назначить роль на бакет в сервисе Identity and Access Management.

Была ли статья полезна?

Предыдущая
Управление конфигурацией CORS
Следующая
Редактирование ACL бакета
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ООО «Яндекс.Облако»