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

По умолчанию бакеты в хранилище 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:

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

    2. Скопируйте политику, вставьте в окно и нажмите 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:

    1. Выберите бакет или объект.

    2. Откройте вкладку Permissions.

    3. Напротив пункта All Users активируйте чекбокс с нужными разрешениями.

    4. Если необходимо применить права ко всем объектам в бакете, активируйте чекбокс Apply for all subfolders and files.

    5. Нажмите Apply changes.

Масштабная конференция
GoCloud 2024:
облачные грани будущего