Как обеспечить безопасность динамически создаваемых и именуемых «каталогов» для каждого пользователя в корзине Aws S3 - PullRequest
0 голосов
/ 02 мая 2019

Я ищу справку о том, как защитить динамически созданные и названные «каталоги» для каждого пользователя в корзине Aws S3. Я просмотрел много документации по AWS S3 и IAM, но не смог найти «лучший» способ реализовать то, что мне нужно, не слишком быстро достигая пределов aws ... Примечание: мне нужно использовать AWS S3 только для хранения файлов и есть данные о сущности, поступающие из моей базы данных (например, пользователи и книги, см. ниже).

Позвольте мне объяснить:

Что у меня есть:

  • Моя собственная база данных, в которой хранятся данные пользователей и книг, например v4 uuid для обеих сущностей, и некоторые другие данные, бесполезные для aws.
  • Динамически создаваемые пользователи-программисты AWS IAM с именами сгенерированных v4 uuids.
  • S3 Bucket, содержащий «каталоги» (я знаю, что в s3 нет «каталогов») с именем сгенерированного v4 uuids в каталоге «books». К сожалению, я не хочу создавать структуру в зависимости от пользователя uuid v4, потому что несколько пользователей могут работать с книгой.

Пример структуры ковша:

-My Bucket/
    - Books/
        - d32c04f7-bbd3-4331-b53d-2528d783c0ef/
            - anotherDirectory/
                - object.txt
                - etc...
        - d32c04f7-bbd3-4331-b53d-2528d783c0ef/
            - ...
        - e10513c2-2464-4d7b-a4b3-2177886325b7/
- etc.

Что я хочу:

Запретить доступ ко всем книгам по умолчанию и разрешить доступ пользователям по «книгам» (прикрепляя их к политикам iam или с помощью политики корзины, что будет наиболее актуально для моего случая), с ограничениями, которые могут быть разрешены нескольким пользователям чтение или запись файла в каталоге книги в зависимости от их «прав доступа».

Чем я закончил:

Я думал о добавлении тегов Aws для пользователей с ключами, в которых в качестве значения указано «Книги uuid» со статусом пользователей в этой книге. Пример (ключ / значение тега): d32c04f7-bbd3-4331-b53d-2528d783c0ef / author. Я не знаю, является ли это наиболее подходящим решением, но с этим мне не удается создать стратегию, которая проверяет ключи пользователей, совпадающие с ключами объекта s3 (book uuid), прежде чем пытаться получить доступ к объектам внутри него ...

Не могли бы вы помочь мне с этим или, может быть, дать мне более уместный подход к моему делу? Если вам требуется больше точности в этом случае, не стесняйтесь спрашивать.

Заранее спасибо:)

...