Пропустить до содержимого

Объектное S3-хранилище:Быстрый старт

Работать с объектным хранилищем можно в посредством инструментов.

  1. Создайте бакет (контейнер).
  2. Настройте бакет(опционально).
  3. Загрузите объекты в бакет.
  4. Обратитесь к бакету (опционально).

Создание бакета (контейнера).

После создания заказа на объектное хранилище S3 в личном кабинете в появится заказ с информацией для подключения к хранилищу. В заказе будут указаны авторизационные ключи:

Access Key ID: идентификатор ключа access Key, который вы получили при создании заказа.
Secret Access Key: секретный ключ Secret Key, который вы получили при создании заказа.

Посредством одного из инструментов Создайте бакет указав его название.
Внимание! При создании заказа автоматически создается один бакет с именем Вашего заказа вида zXXXXX,
где XXXXX- номер вашего заказа.

Бакет — это контейнер для хранения объектов в хранилище S3.

По умолчанию будет создан бакет приватного типа - т.е. доступ к нему возможен только по авторизационным ключам.

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

Настройка бакета

(Опционально)
Для того, чтобы бакет стал публичным Вам необходимо посредством того же инструмента (которым вы создавали бакет) изменить права доступа к бакету. При этом ссылка публичного доступа к бакету будет иметь вид: https://s3.adman.com/<имя бакета>

Так же можно давать публичный доступ к отдельным объектам в бакете.

Открытие публичного доступа к операциям с бакетами

Публичный доступ к объектам в облачном хранилище может быть активирован исключительно администратором.
Такой доступ осуществляется через специальный URL-адрес: https://s3.adman.com/<имя бакета>
Управление публичным доступом к облачным объектам и их хранилищам выполняется через политику хранилищ (Bucket Policy) и список контроля доступа (ACL).

Bucket Policy для более детальной настройки доступа. К примеру, она позволяет контролировать доступ к объектам из определенных IP-адресов.

Список контроля доступа позволяет задавать стандартные разрешения для чтения и записи объектов.

ACL (Access Control List)

Примеры настройки ACL через популярные инструменты:

S3 Browser

Чтобы активировать публичный доступ к бакету через S3 Browser:

  • Выберите бакет или объект.
  • Откройте вкладку Permissions.
  • Напротив пункта All Users активируйте чекбокс с нужными разрешениями.
  • Если необходимо применить права ко всем объектам в бакете, активируйте чекбокс Apply for all subfolders and files.
  • Нажмите Apply changes.
AWS CLI

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

aws s3api –endpoint-url=https://s3.adman.com put-object-acl --bucket <bucket_name> --key <object_name> --acl public-read

где:

  • put-object-acl — устанавливает правило доступа к указанному объекту
  • <bucket_name> — название бакета
  • <object_name> — название объекта
  • --acl public-read — разрешает публичный доступ на чтение объекта

Bucket Policy

Политика доступа имеет JSON-структуру. Подробней о Bucket Policy

Пример политики, разрешающей публичный доступ на чтение всех объектов в бакете для любого пользователя:

{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"AddPerm",
"Effect":"Allow",
"Principal": "*",
"Action":["s3:GetObject"],
"Resource":["arn:aws:s3:::BUCKET/*"]
}
]
}

Для создания политики можно использовать генератор политик AWS.
Готовую политику необходимо сохранить в формате JSON и загрузить в S3.

Содержимое политики
ПолеТип данныхОбязательныйОписание
IdСтрокаИдентификатор политики, может быть любым
VersionСтрокаВерсия политики доступа, значение — константа: “2012-10-17”
StatementМассивМассив правил
SidСтрокаНазвание правила
EffectСтрокаТип правила (Allow или Deny)
Principal:AWS Массив строк или строкаПринципалы (идентификаторы пользователей или * для всех запросов)
ActionsМассив строки или строкаДействия или * для всех действий
ResourcesМассив строк или строкаРесурсы, на которые действует правило
ConditionМассивМассив условий, представленных в формате: [оператор]:[ключ]:[массив значений ключа]
Примеры загрузки политики

Для загрузки политики через AWS CLI используйте следующую команду:

aws s3api put-bucket-policy --bucket <bucket_name> --policy file://policy.json

Для загрузки политики через S3 Browser:

  • Перейдите в меню Buckets → Edit Bucket Policy.

  • Скопируйте политику, вставьте в окно и нажмите Apply.

Для загрузки политики через REST API используйте метод PUT.

Загрузка объектов в бакет

Вы можете загрузить объекты в бакет двумя способами:

  • с помощью простой загрузки посредством инструментов,
  • с помощью сегментированной загрузки через S3 API, подходящей для файлов большего размера.

Мы советуем не использовать кириллицу при именовании объектов. Количество загружаемых объектов не ограничено объемом s3-хранилища.

Обращение к бакетам

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

  • графические клиенты: S3 Browser, CyberDuck, WinSCP, BucketAnywhere
  • через API: S3 API, AWS CLI, S3cmd, Rclone
  • набор средств AWS SDK: Java SDK, JS SDK, PHP SDK, SDK для .NET, Python (boto) SDK
  • инструменты монтирования бакетов хранилища: s3fs, goofys

Обращение к объектам в бакете с публичным доступом можно получить по https-ссылкам типа: https://s3.adman.com/<имя бакета>/<имя объекта> или напрямую к общедоступным бакетам по ссылкам: https://s3.adman.com/<имя бакета>