Amazon S3 просмотреть личные файлы

Я использую Amazon S3 для загрузки файлов в разные папки. Все папки и файлы являются общедоступными и могут быть замечены кем угодно. Я создал частную папку, где я хочу разместить частные изображения, чтобы я мог их видеть. Я уже создал правило политики ведра, которое запретит доступ к этой папке. Но как я могу видеть файлы? Есть ли специальная ссылка, подобная этой https://s3.amazonaws.com/bucket/private_folder/file.jpg?secret_key=123, которая позволит мне и тому, кто знает этот секретный ключ см. файлы?

Есть ли способ загрузить личные файлы, которые можно увидеть с помощью secret_key, url или что-то в этом роде?

Ответ 1

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

  • Список контроля доступа к объектам (ACL): Установка разрешения непосредственно на объект
  • Политика Bucket:. Относится к ведро, может определять правила, относящиеся к подкаталогам, имени ключа (именам файлов), времени суток, IP-адресу и т.д.
  • Политика IAM: относится к определенным пользователям или группам

Пока один из этих способов предоставляет доступ, человек сможет получить доступ к объекту. Также возможно назначить разрешения Deny, которые переопределяют Разрешить разрешения.

Когда к объекту обращаются через не прошедший аутентификацию URL (например, s3.amazonaws.com/bucket-name/object-key), указанные выше правила определяют доступ. Тем не менее, даже файлы "private" могут быть доступны, если вы аутентифицируете службу, например, вызываете S3 API с учетными данными пользователя или используете предварительно подписанный URL.

Чтобы узнать, как это работает, щелкните личный файл в консоли управления Amazon S3 и выберите Открыть в меню "Действия". Объект будет открыт. Это делается путем предоставления браузеру предварительно подписанного URL-адреса, который включает URL-адрес с криптографическим размером и срок действия. URL будет работать, чтобы получить частный файл только до определенного времени.

Итак, чтобы ответить на ваш вопрос, вы все равно можете получить доступ к приватным файлам через:

  • Команда Open в консоли
  • Предварительно подписанные URL-адреса в веб-браузере
  • Аутентифицированные API-вызовы

Просто будьте осторожны, чтобы вы не определяли правила DENY, которые перекрывают даже вашу способность доступа к файлам. Это проще просто ПОЗВОЛЯТЬ каталоги, которые вы хотите публиковать.

Смотрите: Альтернатива запроса проверки строки запроса