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

Создание бакета

Статья создана
Yandex Cloud
Улучшена
Обновлена 24 апреля 2025 г.

Чтобы создать бакет, у вас должна быть минимальная роль storage.editor на каталог.

Консоль управления
Yandex Cloud CLI
AWS CLI
Terraform
API
  1. В консоли управления выберите каталог, в котором хотите создать бакет.

  2. Выберите сервис Object Storage.

  3. На панели сверху нажмите Создать бакет.

  4. На странице создания бакета:

    1. Введите имя бакета в соответствии с правилами именования.

      По умолчанию бакет с точкой в имени доступен только по протоколу HTTP. Чтобы поддержать для бакета протокол HTTPS, загрузите собственный сертификат безопасности в Object Storage.

    2. При необходимости добавьте метки:

      1. Нажмите Добавить метку.
      2. Введите метку в формате ключ: значение.
      3. Нажмите Enter.
    3. При необходимости ограничьте максимальный размер бакета.

      Размер 0 означает отсутствие ограничений и аналогичен включенной опции Без ограничения.

    4. Задайте параметры публичного доступа на чтение объектов в бакете, получение списка объектов и чтение настроек бакета:

      • Ограниченный — доступ только для авторизованных пользователей Yandex Cloud.
      • Публичный — доступ для любых пользователей.

      Важно

      Публичный доступ предоставляется неограниченному кругу анонимных пользователей. Используйте его только в случае, когда нет возможности применить другие механизмы предоставления доступа.

    5. Выберите класс хранилища по умолчанию:

      • Стандартное
      • Холодное
      • Ледяное

      Более «холодные» классы предназначены для длительного хранения объектов, работать с которыми планируется реже. Чем «холоднее» хранилище, тем дешевле хранить в нем данные, но тем дороже их читать и записывать.

    6. При необходимости включите шифрование: в поле Ключ KMS выберите симметричный ключ или создайте новый.

    7. Нажмите Создать бакет для завершения операции.

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

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

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

    yc storage bucket create --help
    
  2. Создайте бакет в каталоге по умолчанию:

    yc storage bucket create --name <имя_бакета>
    

    Где --name — имя бакета. Обязательный параметр. Подробнее см. Правила именования бакетов.

    По умолчанию бакет с точкой в имени доступен только по протоколу HTTP. Чтобы поддержать для бакета протокол HTTPS, загрузите собственный сертификат безопасности в Object Storage.

    Результат:

    name: example
    folder_id: b1gmit33ngp6********
    anonymous_access_flags:
    read: false
    list: false
    default_storage_class: STANDARD
    versioning: VERSIONING_DISABLED
    max_size: "53687091200"
    acl: {}
    created_at: "2022-12-16T14:05:12.196007Z"
    
    Опциональные параметры
    • --default-storage-class — класс хранилища. Доступные значения:
    • standard — стандартное хранилище. Устанавливается по умолчанию.
    • cold — холодное хранилище.
    • ice — ледяное хранилище.

    Более холодные классы предназначены для длительного хранения объектов, работать с которыми планируется реже. Чем холоднее хранилище, тем дешевле хранить в нем данные, но тем дороже их читать и записывать.

    • --max-size — максимальный размер бакета в байтах. Значение по умолчанию — 0 (без ограничений).
    • Параметры для включения публичного доступа к бакету:
    • --public-read — включить публичный доступ на чтение объектов в бакете.
    • --public-list — включить публичный доступ на просмотр списка объектов в бакете.
    • --public-config-read — включить публичный доступ на чтение настроек в бакете.

    По умолчанию публичный доступ к бакету выключен.

    Важно

    Публичный доступ предоставляется неограниченному кругу анонимных пользователей. Используйте его только в случае, когда нет возможности применить другие механизмы предоставления доступа.

    • Параметры для настройки ACL бакета:

    • --acl — предопределенный ACL. Список возможных значений см. в разделе Предопределенные ACL. Нельзя использовать одновременно с параметром --grants.

    • --grants — настройки разрешений для отдельных пользователей, сервисных аккаунтов, групп пользователей и публичных групп (группа всех пользователей интернета, группа всех аутентифицированных пользователей Yandex Cloud). Нельзя использовать одновременно с параметром --acl. Значение параметра указывается в формате: grant-type=<тип_получателя_разрешения>,grantee-id=<идентификатор_получателя>,permission=<тип_разрешения>, где:

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

      Чтобы настроить несколько разрешений, укажите параметр --grants несколько раз.

    По умолчанию для каждого нового бакета создается пустой ACL.

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

Если у вас еще нет интерфейса командной строки AWS CLI, установите и сконфигурируйте его.

Чтобы создать бакет, назначьте сервисному аккаунту, через который работает AWS CLI, роль storage.editor.

В терминале выполните команду:

aws s3api create-bucket \
  --endpoint-url=https://storage.yandexcloud.net \
  --bucket <имя_бакета>

Где:

  • --endpoint-url — эндпоинт Object Storage.
  • --bucket — имя бакета.

Примечание

По умолчанию бакет с точкой в имени доступен только по протоколу HTTP. Чтобы поддержать для бакета протокол HTTPS, загрузите собственный сертификат безопасности в Object Storage. Подробнее см. Правила именования бакетов.

Результат:

{
  "Location": "/<имя_бакета>"
}

Будет создан бакет со следующими параметрами:

  • без ограничения максимального размера;
  • с ограниченным доступом на чтение объектов, к списку объектов и на чтение настроек;
  • с классом хранилища Стандартное.
Опциональные параметры

Вы можете применить к бакету предопределенный ACL или настроить разрешения для отдельных пользователей, сервисных аккаунтов, групп пользователей и публичных групп (группа всех пользователей интернета, группа всех аутентифицированных пользователей Yandex Cloud). Эти настройки несовместимы: у бакета должен быть либо предопределенный ACL, либо набор отдельных разрешений.

Примечание

Чтобы управлять настройками ACL бакета, назначьте сервисному аккаунту, через который работает AWS CLI, роль storage.admin.

Предопределенный ACL

aws s3api create-bucket \
  --endpoint-url=https://storage.yandexcloud.net \
  --bucket <имя_бакета> \
  --acl <предопределенный_ACL>

Где --acl — предопределенный ACL. Список значений см. в разделе Предопределенные ACL.

Отдельные разрешения

aws s3api create-bucket \
  --endpoint-url=https://storage.yandexcloud.net \
  --bucket <имя_бакета> \
  <тип_разрешения> <получатель_разрешения>

Где:

  • Возможные типы разрешений ACL:

    • --grant-read — доступ к списку объектов в бакете, чтению различных настроек бакета (жизненный цикл, CORS, статический хостинг), чтению всех объектов в бакете.
    • --grant-write — доступ к записи, перезаписи и удалению объектов в бакете. Используется только совместно с --grant-read.
    • --grant-full-control — полный доступ к бакету и объектам в нем.

    Вы можете задать несколько разрешений в одной команде.

  • Возможные получатели разрешений:

    • id=<идентификатор_получателя> — идентификатор пользователя, сервисного аккаунта или группы пользователей, которым нужно дать разрешение.
    • uri=http://acs.amazonaws.com/groups/global/AuthenticatedUsers — публичная группа всех аутентифицированных пользователей Yandex Cloud.
    • uri=http://acs.amazonaws.com/groups/global/AllUsers — публичная группа всех пользователей интернета.

По умолчанию для каждого нового бакета создается пустой ACL.

Подробнее о команде aws s3api create-bucket см. в документации AWS.

Примечание

Terraform взаимодействует с Object Storage от имени сервисного аккаунта. Назначьте сервисному аккаунту нужную роль, например storage.admin, на каталог, в котором будут создаваться ресурсы.

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

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

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

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

По умолчанию для аутентификации в Object Storage Terraform использует IAM-токен. Кроме IAM-токена для аутентификации в Object Storage можно использовать сервисный аккаунт и статические ключи доступа. Более подробную информацию об особенностях аутентификации Terraform в в Object Storage, см. в документации провайдера.

Создание бакета с использованием IAM-токена

  1. Получите данные для аутентификации и добавьте их в переменные окружения.

  2. Опишите в конфигурационном файле параметры ресурсов, которые необходимо создать:

    # Создание бакета с использованием IAM-токена
    
    resource "yandex_storage_bucket" "iam-bucket" {
      bucket    = "<имя_бакета>"
      folder_id = "<идентификатор_каталога>"
    }
    

    Где:

    • bucket — имя бакета. Обязательный параметр.

      По умолчанию бакет с точкой в имени доступен только по протоколу HTTP. Чтобы поддержать для бакета протокол HTTPS, загрузите собственный сертификат безопасности в Object Storage.

    • folder_id — идентификатор каталога

      Если вы используете IAM-токен учетной записи пользователя, то в ресурсе yandex_storage_bucket необходимо указывать идентификатор каталога folder_id.

      В случае использования IAM-токена сервисного аккаунта или статических ключей доступа, folder_id указывать необязательно — он потребуется только если вы хотите создать ресурс в каталоге, отличном от каталога сервисного аккаунта.

    Более подробную информацию о параметрах ресурса yandex_storage_bucket в Terraform, см. в документации провайдера.

  3. Создайте ресурсы:

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

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

      terraform validate
      

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

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

      terraform plan
      

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

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

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

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

Создание бакета с использованием статического ключа

  1. Опишите в конфигурационном файле параметры ресурсов, которые необходимо создать:

    Создание бакета с использованием ключа
    terraform {
      required_providers {
        yandex = {
          source = "yandex-cloud/yandex"
        }
      }
      required_version = ">= 0.13"
    }
    
    # Настройка провайдера
    
    provider "yandex" {
      token     = "<IAM-_или_OAuth-токен>"
      cloud_id  = "<идентификатор_облака>"
      folder_id = "<идентификатор_каталога>"
      zone      = "ru-central1-a"
    }
    
    # Создание сервисного аккаунта
    
    resource "yandex_iam_service_account" "sa" {
      name = "<имя_сервисного_аккаунта>"
    }
    
    # Назначение роли сервисному аккаунту
    
    resource "yandex_resourcemanager_folder_iam_member" "sa-admin" {
      folder_id = "<идентификатор_каталога>"
      role      = "storage.admin"
      member    = "serviceAccount:${yandex_iam_service_account.sa.id}"
    }
    
    # Создание статического ключа доступа
    
    resource "yandex_iam_service_account_static_access_key" "sa-static-key" {
      service_account_id = yandex_iam_service_account.sa.id
      description        = "static access key for object storage"
    }
    
    # Создание бакета с использованием статического ключа
    
    resource "yandex_storage_bucket" "test" {
      access_key            = yandex_iam_service_account_static_access_key.sa-static-key.access_key
      secret_key            = yandex_iam_service_account_static_access_key.sa-static-key.secret_key
      bucket                = "<имя_бакета>"
      max_size              = <максимальный_размер_бакета>
      default_storage_class = "<класс_хранилища>"
      anonymous_access_flags {
        read        = <true|false>
        list        = <true|false>
        config_read = <true|false>
      }
      tags = {
        <ключ_1> = "<значение_1>"
        <ключ_2> = "<значение_2>"
        ...
        <ключ_n> = "<значение_n>"
      }
    }
    

    Где:

    • yandex_iam_service_account — описание сервисного аккаунта, который создаст бакет и будет работать с ним:

      • name — имя сервисного аккаунта. Обязательный параметр.

      • bucket — имя бакета.

        По умолчанию бакет с точкой в имени доступен только по протоколу HTTP. Чтобы поддержать для бакета протокол HTTPS, загрузите собственный сертификат безопасности в Object Storage.

      • max_size — максимальный размер бакета в байтах. Значение по умолчанию — 0, без ограничений.

      • default_storage_class — класс хранилища. Доступные значения:

        • standard — стандартное хранилище. Значение по умолчанию.
        • cold — холодное хранилище.
        • ice — ледяное хранилище.

        Более холодные классы предназначены для длительного хранения объектов, работать с которыми планируется реже. Чем холоднее хранилище, тем дешевле хранить в нем данные, но тем дороже их читать и записывать.

      • anonymous_access_flags — настройки доступа:

        • read — публичный доступ на чтение объектов в бакете.
        • list — публичный доступ на просмотр списка объектов в бакете.
        • config_read — публичный доступ на чтение настроек в бакете. По умолчанию выключен.
      • tags — метки бакета в формате ключ = "значение".

    Более подробную информацию о параметрах ресурса yandex_storage_bucket в Terraform, см. в документации провайдера.

  2. Создайте ресурсы:

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

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

      terraform validate
      

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

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

      terraform plan
      

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

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

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

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

Чтобы создать бакет, воспользуйтесь методом REST API create для ресурса Bucket, вызовом gRPC API BucketService/Create или методом S3 API create.

См. такжеСм. также

  • Загрузка объекта
  • Редактирование ACL бакета
  • Ограничение максимального размера бакета
  • Настройка публичного доступа к бакету
  • Управление метками бакета
  • Управление жизненными циклами объектов в бакете
  • Управление политикой доступа (bucket policy)

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

Предыдущая
Все инструкции
Следующая
Удаление бакета
Проект Яндекса
© 2025 ООО «Яндекс.Облако»