Как предоставить доступ пользователям Android-приложений для объектов AWS S3? - PullRequest
0 голосов
/ 21 января 2019

У меня есть корзина в Amazon S3, и у меня есть лямбда-функции, которые генерируют файлы JSON для этой корзины. Я использую файлы S3 в своем мобильном приложении. До недавнего времени я предоставлял публичный доступ к этим файлам S3 для простоты. Но теперь я хочу, чтобы эти объекты S3 были доступны с простой аутентификацией. Я изучил все учебники по AWS, но не смог найти простой способ реализовать это. Я не хочу использовать сервис Cognito, так как мое приложение не требует аутентификации, а мои файлы S3 не связаны с пользователем, они используются для приложения. Я хочу, чтобы эти объекты S3 были доступны по http-запросу по URL-адресу, который включает простой ключ, например:

https://s3.eu-central-1.amazonaws.com/<bucket name>/<object name>?<key>

где ключ может быть комбинацией региона, aws-ключа доступа, секретного ключа доступа или других значений пользователя, которого я определяю (я использую Retrofit для извлечения данных json из корзины S3) Я посмотрел на предварительно назначенный параметр URL но примера для android-sdk там не существует, и большинство методов, которые могут использоваться для этой цели, устарели. Разве нет простого способа для этого? Или я должен разместить мои файлы json в другом сервисе / месте?

1 Ответ

0 голосов
/ 21 января 2019

Если вы говорите «нет» Cognito, то вы просто усложняете себе жизнь.Это как раз тот случай, когда вы хотите использовать Cognito.Тот факт, что вы не требуете от своих пользователей аутентификации и что контент S3 не является специфичным для пользователя, не означает, что Cognito не подходит для этого сценария.

Все, что вам нужно сделать, - это создать идентификацию Cognito.объединить и выбрать поддержку неподтвержденных лиц.Создайте политику IAM, которая позволяет выполнять чтение из этого конкретного сегмента S3, и позволить неаутентифицированным пользователям принимать на себя эту роль IAM, подключая ее к этим неаутентифицированным объектам.

Аутентификация затем происходит автоматически во время инициализации SDK в вашем приложении.Это все, что вам нужно сделать, чтобы разрешить доступ к этой корзине S3 только из вашего приложения.

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

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