Объектное S3-хранилище:Быстрый старт
Работать с объектным хранилищем можно в посредством инструментов.
- Создайте бакет (контейнер).
- Настройте бакет(опционально).
- Загрузите объекты в бакет.
- Обратитесь к бакету (опционально).
Создание бакета (контейнера).
После создания заказа на объектное хранилище 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
Для открытия публичного доступа к объектам в бакете используется следующая команда:
где:
put-object-acl
— устанавливает правило доступа к указанному объекту<bucket_name>
— название бакета<object_name>
— название объекта--acl public-read
— разрешает публичный доступ на чтение объекта
Bucket Policy
Политика доступа имеет JSON-структуру. Подробней о Bucket Policy
Пример политики, разрешающей публичный доступ на чтение всех объектов в бакете для любого пользователя:
Для создания политики можно использовать генератор политик AWS.
Готовую политику необходимо сохранить в формате JSON и загрузить в S3.
Содержимое политики
Поле | Тип данных | Обязательный | Описание |
---|---|---|---|
Id | Строка | ✗ | Идентификатор политики, может быть любым |
Version | Строка | ✓ | Версия политики доступа, значение — константа: “2012-10-17” |
Statement | Массив | ✓ | Массив правил |
Sid | Строка | ✗ | Название правила |
Effect | Строка | ✓ | Тип правила (Allow или Deny) |
Principal:AWS | Массив строк или строка | ✓ | Принципалы (идентификаторы пользователей или * для всех запросов) |
Actions | Массив строки или строка | ✓ | Действия или * для всех действий |
Resources | Массив строк или строка | ✓ | Ресурсы, на которые действует правило |
Condition | Массив | ✗ | Массив условий, представленных в формате: [оператор]:[ключ]:[массив значений ключа] |
Примеры загрузки политики
Для загрузки политики через AWS CLI используйте следующую команду:
Для загрузки политики через 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/<имя бакета>