#ios #amazon-web-services #amazon-s3
#iOS #amazon-веб-сервисы #amazon-s3
Вопрос:
Я следовал инструкциям в этом посте http://mobile.awsblog.com/post/Tx371Y7CA0QJ95X/Simplifying-Token-Vending-Machine-Deployment-with-AWS-CloudFormation
И я вижу, что это работает, и я понимаю общую концепцию того, что такое TVM и зачем это нужно, однако мне все еще трудно понять, как это работает на практике. Я где-то прочитал сообщение о том, что автомат по продаже анонимных токенов предназначен только для чтения, и если я действительно хочу предоставить доступ на запись, мне нужно использовать identity TVM.
В демонстрационном приложении это заставляет меня зарегистрировать свою учетную запись на сервере cloudformation, который я настроил, но я не понимаю, как это работает, скажем, с моим собственным веб-приложением. У меня есть мобильное приложение, которое подключается к приложению rails, где мне нужно, чтобы пользователи загружали изображения своих профилей, а также размещали фотоконтент. У меня уже запущено приложение, за исключением части интеграции с TVM (в основном мои учетные данные aws встроены в приложение, которое Amazon не рекомендует)
Итак, мой вопрос в том, как мне интегрировать существующее приложение для iOS на базе REST с торговым автоматом identity token для загрузки фотографий в S3? Как я могу интегрировать его, не заставляя пользователей отдельно создавать «учетную запись» для торгового автомата identity token после регистрации в моем приложении?
Ответ №1:
Недавно мы запустили Amazon Cognito, который устраняет необходимость в TVM во многих случаях, особенно в случае с «анонимным TVM». С помощью неаутентифицированного доступа Cognito вы можете предоставить пользователям вашего приложения ограниченные права доступа к различным ресурсам AWS. Cognito использует существующие функциональные возможности ролей IAM и STS для предоставления этих учетных данных.
Если вы хотите сохранить интеграцию с существующим решением для внутренней аутентификации, вам необходимо сгенерировать и поддерживать список идентификационных идентификаторов для вашего приложения. Вы можете прочитать больше об API, используемых в нашей документации по API.
Ответ №2:
Ваше приложение может выступать в роли TVM, сопоставляя ваши идентификаторы пользователей с ролями IAM с необходимыми им разрешениями. Затем можно использовать вызовы AssumeRole в STS для создания временных учетных данных для этих пользователей. Затем ваше приложение создает объект S3Client с этими учетными данными и использует его для загрузки фотографии.
См. Разделы «Объединение удостоверений» и «Объединение веб-удостоверений» документации ролей IAM
Игровая площадка AWS Web Identity Federation Playground — хороший пример приложения, чтобы увидеть его в работе.
CoudFormation автоматизирует создание, обновление и удаление ресурсов AWS, включая экземпляры EC2 и роли IAM, но не будет напрямую связана с аутентификацией пользователя.