Как ограничить S3 Bucket для многих пользователей - PullRequest
0 голосов
/ 22 декабря 2018

Я пытаюсь реализовать решение для защиты S3 Bucket, совместно используемого многими пользователями с разными ролями и разными разрешениями.

Вот мой пример использования:

  • Управление пользователямис Cognito User Pool
  • 3 создаются группы: Admin, Professional, Customer
  • Клиенты имеют доступ только к папке своих проектов (то есть: project-123 / *)
  • Проект управляется Профессионалом
  • Профессионал может иметь несколько Проектов
  • Профессионалы имеют доступ к папке своих клиентов. Проекты
  • Администраторы имеют полный доступ к S3 Bucket
  • Нам нужно отследить идентификатор действия в корзине s3 для каждого объекта (получить, удалить, положить)

Я пытался:

  • s3SignedUrl: он подходит, потому что моя политика безопасности не принимает временное окно, и мы не можем отследить личность пользователя в действиях s3
  • роль по проекту: кажется, что он ограничен при использовании cognito feнедооцененные идентификаторы, поскольку он использует только одну роль, а Cognito по умолчанию ограничен 300 группами

Я не пробовал:

  • Authorization @ Edge : облачный фронт + лямбда @ край для аутентификации перед доступом к S3.Я не уверен, что он оптимизирован для использования cloudfront для помещения объектов в s3, и если этот метод предназначен только для получения объекта.

  • псевдодинамическая политика S3 Bucket, добавляя идентификационные данные каждого пользователядля каждой папки / проекта, но это кажется очень сложным, и ограничения очень низкие (20 КБ для политики).

...