Предоставление пользователям приложения доступа к Amazon S3, но ограничение 5000 пользователей - PullRequest
0 голосов
/ 03 мая 2020

Я пытаюсь добиться следующего:

  1. Создание пользователей динамически через API (количество пользователей может вырасти до 50-100 тыс. + Со временем)
  2. Предоставить этим пользователям доступ к конкретный c префикс AWS S3 корзины (политика IAM)

В настоящее время моя идея заключается в создании AWS пользователей IAM и создании учетных данных для этих пользователей (учетные данные не должны быть временными) , Это прекрасно работает, но проблема в том, что AWS ограничено 5000 пользователей IAM. Есть ли другой способ избежать этого ограничения. Один из способов, который я выяснил, - через пользователей Cognito -> https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_s3_cognito-bucket.html Однако я не думаю, что существует способ создания долгосрочных ключей доступа (таких как ключи доступа пользователей IAM) для этих пользователей Cognito. ?

Есть ли другой способ добиться этого?

Заранее спасибо!

1 Ответ

0 голосов
/ 04 мая 2020

Вы должны не использовать IAM для пользователей приложения. IAM предназначен для персонала вашей организации для управления вашей AWS инфраструктурой.

Ваше приложение должно использовать свой собственный метод аутентификации, отличный от IAM (как предлагается в приведенных выше комментариях). Примером использования AWS для этой задачи может быть использование Amazon Cognito.

После аутентификации пользователя у вас есть несколько вариантов:

Опция 1: Использование AWS учетные данные

Если вы хотите разрешить аутентифицированным пользователям получать доступ к AWS ресурсам (например, Amazon S3) через AWS вызовы API, то вы можете создавать временные учетные данные с ограниченными разрешениями (например, может получить доступ к любому объекту в пределах указанного пути данного сегмента). Эти учетные данные могут быть предоставлены пользователям. Этот метод обычно используется для мобильных приложений, которые способны совершать вызовы API непосредственно на AWS. Для этого требуется, чтобы у пользователей было программное обеспечение, которое может использовать AWS учетные данные.

Вариант 2: предварительно подписанные URL-адреса Amazon S3

Если вы запускаете веб-приложение и хотите, чтобы пользователи имели доступ к частным объектам в Amazon S3, вы можете создавать предварительно подписанные URL-адреса. Например, допустим, у вас есть веб-сайт для обмена фотографиями. Процесс будет выглядеть следующим образом:

  • Фотографии хранятся в частных корзинах S3.
  • Пользователи проверяют подлинность приложения.
  • Приложение может затем показать им свои личные фотографии: когда приложение генерирует какие-либо ссылки на этот частный контент или встраивает контент на страницу (например, с помощью тегов <img>), оно генерирует предварительно подписанный URL , который предоставляет время. ограниченный доступ к частному контенту.
  • Затем пользователь получает доступ к URL-адресу или его браузер запрашивает данные (например, изображения) с этого URL-адреса.
  • Amazon S3 проверяет подпись на URL и проверка срока действия. Если это правильно, то S3 возвращает закрытый объект.

Приложение использует набор учетных данных IAM для подписи предварительно подписанного URL-адреса. Это может быть сделано в несколько строк кода и не требует вызова API для AWS.

Преимущество этого метода заключается в том, что приложение отвечает за определение того, какие объекты пользователь может получить доступ. Например, скажем, пользователь хочет поделиться своими фотографиями с другим пользователем. Эта информация для совместного использования может храниться в базе данных, и приложение может обращаться к базе данных при обмене фотографиями. Если пользователь имеет право просматривать фотографии другого пользователя, приложение может создать предварительно подписанный URL-адрес, не заботясь о том, в каком каталоге хранятся фотографии. Это гораздо более гибкий подход , чем использование хранилища для предоставления доступа. Однако для этого требуется дополнительные логики c в приложении.

См .: Предварительно подписанные URL-адреса Amazon S3

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