- tocdepth
2
Открытие публичного доступа к операциям с бакетами
По умолчанию бакеты в хранилище S3 создаются с приватным доступом.
Получить приватный доступ к объектам в бакете может только авторизованный пользователь (администратор) при наличии ключей Access Key ID и Secret Key.
При публичном доступе пользователи и приложения получают доступ к данным без авторизации.
Внимание
Публичный доступ к бакету дает возможность совершать операции с объектами широкому кругу лиц. Убедитесь заранее, что в публичный доступ не попадает ваша конфиденциальная информация.
Мы как поставщик инфраструктуры обеспечиваем надежность хранения данных в нашем облаке, а вы как владелец самих данных обеспечиваете контроль доступа к ним и отвечаете за их сохранность (подробнее — в пп. 1.1.6. , пп. 1.1.9, п. 1.2. Приложения 3 к Договору).
Напишите в техническую поддержку — и мы расскажем, с чего начать, чтобы правильно организовать работу с объектным хранилищем S3.
Как открыть публичный доступ к бакету
Открыть публичный доступ к объектам может только администратор бакета. При этом доступ к таким объектам осуществляется по специальному URL.
Управлять публичным доступом к объектам и бакетам можно с помощью Политики бакетов (Bucket Policy) или ACL (Access Control List).
Bucket policy используют для более гибкой настройки доступа. Например, политика позволяет ограничивать доступ к объектам с определенных IP-адресов.
ACL позволяет устанавливать стандартные разрешения на чтение и запись объектов.
Bucket Policy
Для создания политики можно использовать генератор политик AWS. Готовую политику необходимо сохранить в формате JSON и загрузить в S3.
Пример политики, которая разрешает публичный доступ на чтение всех объектов в бакете для любого пользователя:
{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"AddPerm",
"Effect":"Allow",
"Principal": "*",
"Action":["s3:GetObject"],
"Resource":["arn:aws:s3:::BUCKET/*"]
}
]
}
Для загрузки политики:
через AWS CLI используйте следующую команду:
aws s3api put-bucket-policy --bucket <bucket_name> --policy file://policy.json
через S3 Browser:
Перейдите в меню
.Скопируйте политику, вставьте в окно и нажмите Apply.
через REST API используйте метод PUT.
ACL
Примеры настройки ACL через популярные инструменты:
AWS CLI
Для открытия публичного доступа к объектам в бакете используется следующая команда:
aws s3api –endpoint-url=https://b1.s3.sbercloud.ru put-object-acl --bucket <bucket_name> --key <object_name> --acl public-read
где:
<endpoint>
— URL для доступа к бакету, напримерb1.s3.sbercloud.ru
.put-object-acl
— устанавливает правило доступа к указанному объекту.<bucket_name>
— название бакета.<object_name>
— название объекта.--acl public-read
— разрешает публичный доступ на чтение объекта.
Подсказка
S3 Browser
Чтобы активировать публичный доступ к бакету через S3 Browser:
Выберите бакет или объект.
Откройте вкладку Permissions.
Напротив пункта All Users активируйте чекбокс с нужными разрешениями.
Если необходимо применить права ко всем объектам в бакете, активируйте чекбокс Apply for all subfolders and files.
Нажмите Apply changes.
для Dev & Test