Сконфигурируйте корзину S3, чтобы разрешить getObject только для некоторого каталога для анонимных - PullRequest
0 голосов
/ 03 октября 2018

Я пытаюсь выполнить некоторые настройки для разрешения Amazon S3, но это не работает.

Я использую ведро Amazon S3 для хранения файлов для веб-сайта.Некоторые файлы являются общедоступными, поэтому их могут видеть все.Но часть этих файлов должна быть приватной и храниться в определенных каталогах.Эти личные файлы должны быть представлены пользователям веб-сайта в зависимости от некоторых условий (если они приобрели изображение).В этом случае веб-сайт отправит файл пользователю.

В настоящее время кажется, что все файлы доступны всем, несмотря на то, что корзина не является общедоступной.В Списке контроля доступа я даю право только пользователю, который используется веб-сайтом для связи с API.

Но файлы остаются видимыми и загружаемыми анонимными пользователями, если у вас есть прямой URL.Я нахожу это странным, но, как будто это не проблема для публичных файлов, я подумал, что это нормально, и я изменил Bucket Policy для частного каталога следующим образом:

{
        "Sid": "Stmt1538509082866",
        "Effect": "Deny",
        "Principal": "*",
        "Action": "s3:GetObject",
        "Resource": [
            "arn:aws:s3:::bucket-name/private/*"
        ]
 }

Но это правило лишает права видеть и загружатьфайлы для моего конкретного пользователя.Я пытаюсь оставить разрешение для него позади, но это не сработает.Я думал, что смогу использовать условие, но, по-видимому, не для конкретного пользователя.

Я уточнил, что я работаю над этим проектом с недавнего времени, и я не инициализировал корзину, поэтому, возможно, она имеет неправильную конфигурацию, которую я сделалсм.

Спасибо.

...