Amazon Cognito и AWS Mobile SDK разработаны специально для случая использования загрузки содержимого, хранящегося в S3, из мобильного приложения. Вы можете использовать Cognito для предоставления временных учетных данных AWS с ограниченными правами каждому пользователю вашего приложения. Вы можете разрешить своим пользователям начать использовать ваше приложение в качестве гостей, не прошедших аутентификацию, и / или аутентифицироваться с помощью социальных сетей или вашей собственной службы регистрации / входа.
Чтобы настроить Cognito, используйте консоль Cognito для создания пула идентификаторов, который представляет собой хранилище данных идентификации пользователей, относящихся к вашей учетной записи AWS. Роли IAM определяют разрешения для ваших пользователей на доступ к ресурсам AWS, таким как S3. Пользователи вашего приложения примут на себя роли, которые вы создаете. Вы можете указать разные роли для аутентифицированных и не аутентифицированных пользователей. Чтобы узнать больше о ролях IAM в Cognito, см. Роли IAM.
Когда вы посещаете консоль Cognito, мастер поможет вам создать пул идентификаторов и необходимые роли IAM. Интеграция между Cognito (который выдает учетные данные AWS пользователю мобильного приложения) и другими сервисами AWS осуществляется при инициализации SDK. Пример кода для инициализации SDK с помощью Cognito на iOS, Android, Unity и JavaScript находится в тема получения учетных данных Руководства разработчика Amazon Cognito].
Обновления в октябре 2020 г .: AWS переместила свой мобильный SDK на AWS Amplify. Amplify по-прежнему использует Cognito для аутентификации (входа в систему) и авторизации (учетные данные / разрешения), поэтому приведенное выше остается точным. Вы можете получить конкретные инструкции по использованию Cognito с Amplify для настройки аутентификации здесь. После настройки аутентификации в Amplify конкретным примером использования S3 будет здесь.
Обратите внимание, что в настоящее время документация Cognito сосредоточена на пулах пользователей, которые позволяют вам реализовать собственный полноценный каталог для хранения и входа в систему пользователей (для стоимость). Однако вам не обязательно использовать каталог пользователей Cognito для хранения ваших пользователей. Cognito Identity Pools (которые по-прежнему бесплатны AFAICT) позволяют вам получать учетные данные AWS для пользователей, которые не вошли в ваше приложение (так называемые неаутентифицированные идентификаторы) и / или позволяют пользователям входить в систему с другим пользователем каталоги (например, учетные записи социальных сетей или пользовательский каталог, которым вы владеете и которым управляете).
Если вам нужна максимальная гибкость, вы также можете использовать AWS STS для получения учетных данных для доступ к ресурсам AWS, включая S3. Однако гибкость STS требует большего понимания IAM / AWS и, возможно, более сложной настройки.
Прокомментируйте, пожалуйста, если я могу что-нибудь сделать, чтобы прояснить это!
person
Scott Willeke
schedule
13.05.2015