Открытие публичного доступа к операциям с бакетами
По умолчанию бакеты в хранилище 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:
-
Перейдите в меню Buckets → Edit Bucket Policy.
-
Скопируйте политику, вставьте в окно и нажмите Apply.
-
-
через REST API используйте метод PUT из официальной документации S3.
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.
-
- Как открыть публичный доступ к бакету