Как веб-приложения обычно взаимодействуют с Amazon S3? - PullRequest
0 голосов
/ 12 февраля 2019

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

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

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

Используя S3, можно было бы просто создать Bucket для всего приложения с одним пользователем S3 свсе разрешения и оставить обработку пользовательских разрешений для приложения?Или я что-то упустил?Мне не удалось найти много примеров реального использования S3 в Интернете, в частности, когда речь идет о правах доступа.

1 Ответ

0 голосов
/ 13 февраля 2019

Типичная архитектура - хранить корзины Amazon S3 полностью конфиденциальными .

Когда ваше приложение определяет, что пользователю разрешено загружать или скачивать файл, оно может сгенерировать Предписанный URL .Это ограниченный по времени URL-адрес, который позволяет загружать или загружать объект.

При загрузке также можно Создать политику POST - , чтобы применить некоторые ограничения при загрузке, например, его длина, тип и место хранения.Если загрузка соответствует требованиям, файл будет принят.

Вам следует вести базу данных , которая идентифицирует все загруженные объекты и сопоставляет ее с «владельцем», группами разрешений,акции и т. д. Все это зависит от приложения.Позже, когда пользователь запрашивает определенный объект для загрузки, ваше приложение может сгенерировать предварительно подписанный URL-адрес, который позволяет пользователю загружать объект, даже если это частный объект.

Всегда разрешайте приложению определять разрешения для доступаобъект. Не определяйте пользователей приложения как пользователей IAM.

Если существует модель прямого разрешения (например, все файлы одного пользователя находятся в одном пути / папке в сегменте S3), выможет генерировать временные учетные данные, используя Сервис токенов безопасности AWS , который предоставляет разрешения List и Get для данного пути.Это может быть полезно для мобильных приложений, которые затем могут напрямую вызывать API Amazon S3 для извлечения объектов.Однако он не подходит для веб-приложений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...