Создание бакета
Минимально необходимая роль для создания бакета — storage.editor
. См. описание роли.
- В консоли управления
выберите каталог, в котором хотите создать бакет. - Выберите сервис Object Storage.
- Нажмите кнопку Создать бакет.
- На странице создания бакета:
-
Введите имя бакета в соответствии с правилами именования.
По умолчанию бакет с точкой в имени доступен только по протоколу HTTP. Чтобы поддержать для бакета протокол HTTPS, загрузите собственный сертификат безопасности в Object Storage.
-
При необходимости ограничьте максимальный размер бакета.
Размер
0
означает отсутствие ограничений и аналогичен включенной опции Без ограничения. -
Выберите тип доступа.
-
Выберите класс хранилища по умолчанию.
-
При необходимости добавьте метки:
- Нажмите кнопку Добавить метку.
- Введите метку в формате
ключ: значение
. - Нажмите Enter.
-
Нажмите кнопку Создать бакет для завершения операции.
-
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команды CLI для создания бакета:
yc storage bucket create --help
-
Создайте бакет в каталоге по умолчанию:
yc storage bucket create \ --name <имя_бакета> \ --default-storage-class <класс_хранилища> \ --max-size <максимальный_размер_бакета> \ --public-read \ --public-list \ --public-config-read
Где:
-
--name
— имя бакета. Подробнее см. Правила именования бакетов.По умолчанию бакет с точкой в имени доступен только по протоколу HTTP. Чтобы поддержать для бакета протокол HTTPS, загрузите собственный сертификат безопасности в Object Storage.
-
--default-storage-class
— класс хранилища. Доступные значения:standard
— стандартное хранилище;cold
— холодное хранилище;ice
— ледяное хранилище.
-
--max-size
— максимальный размер бакета в байтах.0
— без ограничений. -
--public-read
— флаг для включения публичного доступа на чтение объектов в бакете. -
--public-list
— флаг для включения публичного доступа на просмотр списка объектов в бакете. -
--public-config-read
— флаг для включения публичного доступа на чтение настроек в бакете.
name
— обязательный парметр. Остальные параметры необязательны. По умолчанию значение параметра--max-size
—0
, публичный доступ к бакету выключен.Результат:
name: <имя_бакета> 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"
-
Если у вас еще нет интерфейса командной строки AWS CLI, установите и сконфигурируйте его.
В терминале выполните команду, указав имя бакета и эндпоинт Object Storage:
aws --endpoint-url=https://storage.yandexcloud.net \
s3 mb s3://<имя_бакета>
Примечание
По умолчанию бакет с точкой в имени доступен только по протоколу HTTP. Чтобы поддержать для бакета протокол HTTPS, загрузите собственный сертификат безопасности в Object Storage. Подробнее см. Правила именования бакетов.
Terraform
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Опишите в конфигурационном файле параметры ресурсов, которые необходимо создать:
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-editor" { folder_id = "<идентификатор_каталога>" role = "storage.editor" 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 = "<имя_бакета>" }
Где:
yandex_iam_service_account
— описание сервисного аккаунта, который создаст бакет и будет работать с ним:name
— имя сервисного аккаунта.
yandex_storage_bucket
— описание бакета:bucket
— имя бакета.
Более подробную информацию о ресурсах, которые вы можете создать с помощью Terraform, см. в документации провайдера
. -
Проверьте корректность конфигурационных файлов.
- В командной строке перейдите в папку, где вы создали конфигурационный файл.
- Выполните проверку с помощью команды:
terraform plan
Если конфигурация описана верно, в терминале отобразится список создаваемых ресурсов и их параметров. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Разверните облачные ресурсы.
-
Если в конфигурации нет ошибок, выполните команду:
terraform apply
-
Подтвердите создание ресурсов.
После этого в указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления
. -
Чтобы создать бакет, воспользуйтесь методом REST API create для ресурса Bucket, вызовом gRPC API BucketService/Create или методом S3 API create.