Подтвердить что ты не робот

Загрузите приложение iOS в Amazon S3

начните с утверждения проблемы:

У моего приложения iOS есть форма входа. Когда пользователь входит в систему, выполняется вызов в мой API и доступ предоставляется или отклоняется. Если доступ был предоставлен, я хочу, чтобы пользователь мог загружать фотографии в свою учетную запись и/или управлять ими.

В качестве хранилища я выбрал Amazon S3, и я подумал, что было бы неплохо иметь один ковш под названием "myappphotos", например, который содержит много папок. Имена папок - это хеши электронной почты пользователя и секретный ключ. Таким образом, каждый пользователь имеет свою собственную уникальную папку в моем ковше Amazon S3.

Поскольку я только недавно начал работать с AWS, вот мой вопрос:

Каковы наилучшие методы настройки такой системы? Я хочу, чтобы пользователь мог загружать фотографии непосредственно на Amazon S3, но, конечно, я не могу жестко закодировать ключ доступа. Поэтому мне нужен мой API, чтобы как-то поговорить с Amazon и запросить маркер доступа для доступа - только для конкретной папки, принадлежащей пользователю, к которому я обращаюсь.

Может ли кто-нибудь помочь мне и/или привести меня к некоторым источникам, где была рассмотрена аналогичная проблема? Не думайте, что я первый, а документация amazon настолько обширна, что я действительно не знаю, с чего начать.

Спасибо большое!

4b9b3361

Ответ 1

Вы посмотрели Amazon AWS SDK для iOS?

Из документов:

Образцы AWSiOSDemoTVM и AWSiOSDemoTVMIdentity демонстрируют более безопасный механизм передачи учетных данных безопасности AWS на мобильный клиент. Эти образцы требуют серверного приложения, в этом случае (TVM), который предоставляется в виде отдельной загрузки. Примеры приложений регистрируются в TVM, либо анонимно, либо с помощью пользовательское имя пользователя и пароль. TVM использует систему защиты AWS Token Service получить временные учетные данные безопасности и передать их мобильное приложение.

TVM доступен в двух формах: один, поддерживающий анонимный регистрации, а другой - для имени пользователя и пароля. зарегистрировать устройство и получить токены безопасности. Чтобы загрузить и установить TVM для анонимной регистрации, перейдите к http://aws.amazon.com/code/8872061742402990. Чтобы загрузить и установить TVM для регистрации удостоверений, перейдите к http://aws.amazon.com/code/7351543942956566.

От Аутентификация пользователей мобильных приложений AWS с помощью Token Vending Machine:

В этой статье рассматривается архитектура, которая позволяет приложениям работает на мобильном устройстве для более безопасного взаимодействия с Amazon Web Такие услуги, как Amazon Simple Storage Service (S3), Amazon SimpleDB, Amazon Simple Notification Service (SNS) и простая очередность Amazon Сервис (SQS). В обсуждаемой архитектуре используется "Token Vending Machine" для распространения временных учетных данных безопасности на мобильный приложение.

Ваш токен может ограничить доступ к определенному ведру на S3, поэтому он представляется лучшим вариантом.

Ответ 3

Чтобы уточнить ответ Терри Уилкокса...

Вам необходимо создать временные учетные данные безопасности на вашем сервере, используя AWS STS.

STS - это служба маркеров безопасности "AWS". Он позволяет создавать программные ключи доступа и устанавливать определенные разрешения и даты истечения срока действия.

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

Если у вас нет бэкенда для вашего приложения, Amazon предоставляет Java-приложение TVM (Token Vending Machine), в котором вы можете легко развернуть свой собственный экземпляр на Elastic Beanstalk.

Соответствующие статьи AWS:
http://aws.amazon.com/articles/4611615499399490 http://docs.aws.amazon.com/STS/latest/UsingSTS/STSUseCases.html#MobileApplication