Хобрук: Ваш путь к мастерству в программировании

Имеет ли смысл эта стратегия корзины AWS S3?

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

Моему приложению требуются следующие функции:

  1. Каждый пользователь принадлежит рабочей области
  2. Пользователи могут иметь личные элементы, к которым имеют доступ только они
  3. Пользователи могут делиться элементами со всеми в своей рабочей области.
  4. Пользователи могут делиться элементами с другими рабочими пространствами
  5. Пользователи могут публиковать общедоступные элементы, которые могут видеть все в Интернете.

Вот моя попытка перевести это на S3:

????my_app
 ┣ ????workspace_a
 ┣ ????workspace_b
 ┣ ????public
 ┣ ????user_a
 ┣ ????user_b
 ┣ ????...all other users and workspaces (could be thousands)

Там могут быть десятки тысяч пользователей и рабочих мест. Моя первоначальная мысль заключалась в том, что это выглядело как излишество/злоупотребление корзинами AWS, но я не вижу никаких цен, связанных с количеством корзин на страница цен S3.

Является ли это масштабируемым способом использования сегментов S3? Если нет, то как бы вы справились с этим?

Спасибо за помощь.

ИЗМЕНИТЬ

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

Я думаю, что имеет смысл использовать IAM (AWS Identity and Access Management) для управления моими пользователями и группами, а затем таким образом контролировать доступ к определенным ресурсам.

Я покопаюсь в этом больше и обновлю, если выясню это.


  • Вы предлагаете создать тысячи корзин S3? Вероятно, это анти-шаблон, и в вашем аккаунте есть мягкое ограничение в 100 ведер, которое можно увеличить. 14.03.2021
  • @ Морис, ну, это, конечно, приятно знать! Спасибо. 14.03.2021

Ответы:


1

Если вам действительно нужен уровень детализации, который вы рекламировали для 10 000+ пользователей и рабочих областей, то, по моему мнению, вы почти наверняка не сможете решить эту проблему с помощью пользователей IAM и политик IAM. Вы столкнетесь с лимитами пользователей IAM (5000 пользователей) и ограничения размера для политик S3/IAM.

Общее решение для предоставления учетных данных AWS тысячам отдельных пользователей состоит в том, чтобы сгруппировать пользователей в группы IAM, а затем предоставить федерацию удостоверений (SSO) для этих пользователей, чтобы они могли выполнять роли IAM и получать учетные данные STS. Но вы все равно столкнетесь с ограничениями политики (или массовым дублированием файлов в S3), я думаю, если только вы не сможете упростить требования.

Вы можете рассмотреть универсальный механизм авторизации на основе политик, например Open Policy Agent.

14.03.2021
  • это очень полезно. Спасибо! Я использую федерацию удостоверений, так что это имеет смысл. Думаю, мне еще многое предстоит узнать об этой экосистеме. Не могли бы вы подробнее объяснить, как я все еще сталкивался с ограничениями политик и дублированием файлов? Какие аспекты моих требований можно было бы упростить, чтобы предотвратить это? Спасибо за время и терпение ???????? 15.03.2021

  • 2

    Я бы даже сказал, что вам НЕ СЛЕДУЕТ решать эту проблему с помощью пользователей IAM и политик IAM. Если у вас тысячи пользователей, рассмотрите возможность использования поставщика удостоверений, рассчитанного на количество пользователей такого масштаба, например внешнего поставщика удостоверений (Okta, Ping и т. д.) или Единый вход AWS. Когда у вас тысячи пользователей, управлять ими в IAM непросто. И если ваше решение предназначено для приложения, ориентированного на клиента, вам следует рассмотреть возможность клиента. IAM-решение (Auth0, Cognito и т. д.).

    21.04.2021
    Новые материалы

    Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
    каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

    Как настроить Selenium в проекте Angular
    Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

    Аргументы прогрессивного улучшения почти всегда упускают суть
    В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

    Введение в Джанго Фреймворк
    Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..

    Настольный ПК как «одно кольцо, чтобы править всеми» домашних компьютеров
    Вид после 9 месяцев использования С настольных компьютеров все началось, но в какой-то момент они стали «серверами», и мы все перешли на ноутбуки. В прошлом году я столкнулся с идеей настольных..

    Расширенные методы безопасности для VueJS: реализация аутентификации без пароля
    Руководство, которое поможет вам создавать безопасные приложения в долгосрочной перспективе Безопасность приложений часто упускается из виду в процессе разработки, потому что основная..

    стройный-i18следующий
    Представляем стройную оболочку для i18next. Эта библиотека, основанная на i18next, заключает экземпляр i18next в хранилище svelte и отслеживает события i18next, такие как languageChanged,..