Начните работу с Amazon Cognito

Вопрос: Что такое Amazon Cognito?
Amazon Cognito позволяет легко добавить регистрацию и аутентификацию пользователей в мобильные и интернет-приложения. Amazon Cognito дает также возможность аутентификации пользователей через внешних поставщиков удостоверений и предоставляет временные данные для доступа к серверным ресурсам приложения на платформе AWS или к любому сервису через Amazon API Gateway. Amazon Cognito работает с внешними поставщиками удостоверений, которые поддерживают стандарты SAML или OpenID Connect, с социальными платформами (такими как Facebook, Twitter, Amazon), и позволяет интегрировать собственный поставщик удостоверений.

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

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

Вопрос: Для кого предназначен сервис Amazon Cognito?
Amazon Cognito предназначен для разработчиков, желающих добавить в свои мобильные или интернет-приложения функционал управления пользователями и синхронизации данных. Разработчики могут использовать Cognito Identity, чтобы добавить в приложения функционал регистрации и авторизации пользователей и обеспечить безопасный доступ пользователей к ресурсам приложений. Cognito также позволяет разработчикам синхронизировать данные для разных приложений на разных устройствах и платформах.

Вопрос: Как начать работу с Amazon Cognito?
Работу с Amazon Cognito можно легко начать через Консоль управления AWS. Если у вас нет аккаунта Amazon Web Services, вы можете создать его при входе в консоль. После создания пула пользователей для управления пользователями или пула идентификаций для федерации удостоверений или операций синхронизации вы можете загрузить и интегрировать с приложением AWS Mobile SDK. Вместо использования SDK можно напрямую вызывать серверные API Cognito. Дополнительную информацию см. в руководстве разработчика.

Вопрос: Предоставляет ли Amazon Cognito разработчику доступ к серверным API?
Да. Cognito предоставляет разработчику доступ к серверным API. Вы можете создать собственный настраиваемый интерфейс для взаимодействия с Cognito, вызывая эти API напрямую. Описание серверных API приведено в Руководстве разработчика.

Вопрос: Какие платформы поддерживает Amazon Cognito?
Поддержка Cognito включена в дополнительные пакеты AWS Mobile SDK, которые доступны для платформ iOS, Android, Unity и Kindle Fire. Поддержка Cognito также включена в пакет AWS SDK для JavaScript. Возможность использования Your User Pool в Cognito в настоящее время поддерживаются в AWS Mobile SDK для iOS и Android и в JavaScript AWS SDK для Cognito. Посетите нашу страницу ресурсов для загрузки пакетов SDK.

Вопрос: Обязательно ли использовать AWS Mobile SDK?
Нет. Cognito предоставляет свои API управления и работы с данными как веб-сервисы. Вы можете реализовать собственную клиентскую библиотеку, вызывая серверные API напрямую.

 

Вопрос: Можно ли использовать собственный поставщик удостоверений для поддержки регистрации и авторизации пользователей?

Да, вы можете легко и безопасно добавить функциональные возможности регистрации и авторизации пользователей в свои приложения, используя Cognito Identity. Ваши пользователи могут регистрироваться и авторизоваться с помощью адреса электронной почты, номера телефона или имени пользователя. Можно также реализовать расширенные функции безопасности, такие как проверка адресов электронной почты и телефонных номеров или многофакторная аутентификация. Кроме того, Cognito Identity позволяет настраивать рабочие процессы, например путем добавления в модуль регистрации пользователей с помощью AWS Lambda специфичной для приложения логики обнаружения мошенничества и проверки подлинности пользователей. Подробную информацию см. в документации.

Вопрос: Что такое User Pool?

User Pool – это ваш каталог (пул) пользователей, который вы можете настраивать для мобильных и интернет-приложений. User Pool обеспечивает безопасное хранение атрибутов профилей ваших пользователей. Вы можете создавать User Pool и управлять им с помощью Консоли AWS, интерфейса командной строки AWS или SDK AWS.

Вопрос: Какие данные профиля пользователя поддерживаются Cognito Identity?

Разработчики могут использовать атрибуты профилей пользователей, отвечающие стандарту OpenID Connect (такие как имя пользователя, номер телефона, адрес, часовой пояс и т. д.) или добавлять собственные, специфичные для приложения атрибуты пользователей.

Вопрос: Можно ли разрешить пользователям приложения регистрироваться и входить по адресу электронной почты или номеру телефона?

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

Вопрос: Могу ли я настраивать политики паролей?

Да, при создании или настройке своего User Pool вы можете настраивать политики паролей, такие как надежность пароля и требования к типам используемых символов.

Вопрос: Могу ли я производить проверку адресов и номеров телефонов пользователей моих приложений?

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

Вопрос: Поддерживает ли Cognito Identity многофакторную аутентификацию на основе SMS (MFA)?

Да, вы можете разрешить конечным пользователям вашего приложения авторизоваться при помощи многофакторной аутентификации на основе SMS. Если многофакторная аутентификация на основе SMS разрешена, у ваших пользователей будет затребован пароль (первый фактор: что им известно), и код безопасности, который они получат в виде SMS на мобильный телефон (второй фактор: чем они владеют).

Вопрос: Можно ли настраивать рабочие потоки при регистрации и авторизации пользователей?

Да, вы можете настраивать регистрацию и авторизацию пользователя путем добавления с помощью AWS Lambda специфичной для приложения логики к рабочим потокам регистрации и авторизации пользователей. Например, можно создать функцию AWS Lambda для обнаружения мошенничества или для выполнения дополнительных проверок пользовательских данных. Поставляемые разработчиком функции Lambda можно включать перед регистрацией, после подтверждения, перед аутентификацией, во время аутентификации для настройки на конкретные задачи и после аутентификации. Можно также применять функции Lambda для настройки сообщений, которые используются при проверке электронной почты или телефонного номера и при многофакторной аутентификации.

Вопрос: Можно ли запоминать устройства, связанные с пользователями приложения, в пуле пользователей Cognito?

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

Вопрос: Как можно перенести существующих пользователей в пул пользователей Amazon Cognito?

Для переноса существующих пользователей в пул пользователей Amazon Cognito можно использовать наш инструмент импорта. Значения атрибутов пользователей импортируются из файла .csv, который можно загрузить с помощью консоли сервиса, наших API или интерфейса командной строки. При первом входе импортированным пользователям предстоит подтвердить свой аккаунт и создать новый пароль с использованием кода, который будет отправлен по адресу электронной почты или на телефон. Дополнительная плата за использование инструмента импорта не взимается. Дополнительные сведения см. в документации к инструменту импорта.

Инструмент импорта не выполняет перенос паролей. Если требуется сохранить текущие пароли пользователей, можно воспользоваться альтернативным подходом, при котором перенос пользователей будет осуществляться по одному по мере того, как они будут входить в приложение в течение переходного периода. При таком подходе приложение сначала попытается авторизовать пользователя с помощью учетных данных из пула пользователей Cognito. Если этот пользователь не существует в пуле пользователей, приложение авторизует пользователя с помощью существующей системы идентификации и временно сохранит использованное имя пользователя и пароль. Когда пользователь успешно войдет в систему с помощью существующей системы идентификации, приложение использует то же имя пользователя и пароль для создания пользователя в пуле пользователей Cognito. Такой подход требует поддержания существующей системы идентификации в течение переходного периода, но по завершении переходного периода можно будет воспользоваться нашим инструментом импорта, чтобы импортировать оставшихся пользователей (без паролей). 

Вопрос: Можно ли использовать Cognito Identity с федерациями удостоверений и для обеспечения безопасного доступа к ресурсам AWS?
Да, Cognito Identity дает возможность аутентификации пользователей через внешних поставщиков удостоверений и предоставляет временные данные для доступа к серверным ресурсам приложения на платформе AWS или к любому сервису через Amazon API Gateway. Amazon Cognito работает с внешними поставщиками удостоверений, которые поддерживают стандарты SAML или OpenID Connect, с социальными платформами (такими как Facebook, Twitter, Amazon), и позволяет интегрировать собственный поставщик удостоверений.

Вопрос: Каких публичных поставщиков удостоверений можно использовать с Amazon Cognito Identity?
Вы можете работать с Amazon, Facebook, Twitter, Digits, Google и любыми другими поставщиками удостоверений, совместимыми с OpenID Connect.

Вопрос: Что такое пул идентификации?
Пулы идентификации – это контейнеры, которые используются Cognito Identity для упорядочения федерации удостоверений пользователей вашего приложения. Пул идентификации связывает федерацию удостоверений от поставщиков удостоверений через социальные сети с уникальными идентификаторами пользователей. Пулы идентификации не хранят пользовательских профилей. Пул идентификации можно связать с одним или несколькими приложениями. При использовании двух разных пулов идентификации для двух приложений у одного и того же конечного пользователя будет отдельный уникальный идентификатор в каждом из пулов.

Вопрос: Как происходит процесс авторизации с помощью публичных поставщиков удостоверений?
Ваше мобильное приложение выполняет аутентификацию с помощью поставщика удостоверений (IdP), используя SDK поставщика. После аутентификации конечного пользователя на стороне IdP токен OAuth или OpenID Connect или утверждение SAML, возвращаемые от IdP, передаются приложением в Cognito Identity, который возвращает новый ID Cognito для этого пользователя и набор временных данных для доступа в AWS с ограниченными привилегиями.

Вопрос: Можно ли использовать собственный процесс регистрации и аутентификации пользователей?
Cognito Identity можно интегрировать с существующей системой аутентификации. С помощью простого вызова API вы можете получать ID Cognito для конечных пользователей на основе ваших собственных уникальных идентификаторов пользователей. Получив ID Cognito и токен OpenID, предоставляемый Cognito Identity, вы можете использовать клиентский SDK Cognito Identity для доступа к ресурсам AWS и синхронизации пользовательских данных. Cognito Identity – это полностью управляемый поставщик удостоверений, облегчающий реализацию регистрации и авторизации пользователей ваших мобильных и интернет-приложений.

Вопрос: Каким образом Cognito Identity помогает безопасно управлять разрешениями и доступом к сервисам AWS?
Cognito Identity присваивает пользователям набор временных данных для ограниченного доступа к ресурсам AWS, так что для этого не требуется использовать данные для доступа к аккаунту AWS. Разрешения каждого пользователя контролируются через созданные для них роли AWS IAM. Можно определить правила выбора ролей IAM для каждого пользователя, или, если в пуле пользователей Cognito используются группы, можно назначать роли IAM на базе групп. Cognito Identity также позволяет определить отдельную роль IAM с ограниченными разрешениями для гостевых пользователей, не прошедших аутентификацию. Кроме того, можно использовать уникальный идентификатор, который генерируется сервисом Cognito для пользователей, с целью контроля доступа к определенным ресурсам. К примеру, можно создать политику для корзины S3, разрешающую каждому пользователю доступ только к его собственной папке внутри корзины.

Вопрос: Хранит ли Amazon Cognito Identity данные для доступа пользователей в том случае, если при идентификации пользователей используются публичные поставщики удостоверений?

Нет, при аутентификации пользователей ваши приложения взаимодействуют непосредственно с вашей собственной системой идентификации или с поддерживаемым публичным поставщиком удостоверений (Amazon, Facebook, Twitter, Digits, Google или любым другим поставщиком, работающим по стандарту Open ID Connect). Cognito Identity не получает и не хранит данные для доступа. Cognito Identity использует токен от поставщика удостоверений, чтобы получить уникальный идентификатор пользователя, а затем хеширует его с помощью необратимой хеш-функции, чтобы в будущем опознать этого же пользователя без необходимости хранения самого идентификатора.

Вопрос: Получает ли (сохраняет ли) Cognito Identity конфиденциальную информацию о пользователях от поставщиков удостоверений?
Нет. Cognito Identity не получает конфиденциальной информации (такой как адрес электронной почты, список друзей и т. д.) от поставщиков удостоверений.

Вопрос: Требуется ли использовать собственные серверные системы аутентификации при использовании Cognito Identity?
Нет. Cognito Identity поддерживает авторизацию с помощью учетных записей Amazon, Facebook, Twitter, Digits и Google, а также обеспечивает поддержку пользователей без аутентификации. При работе с Cognito Identity вы можете использовать аутентификацию с помощью федерации удостоверений, хранилище синхронизации данных профиля и распределение токенов доступа AWS, и при этом не придется писать никакого серверного кода.

Вопрос: Можно ли обойтись без авторизации пользователей?
Cognito Identity поддерживает создание и выдачу токенов как для аутентифицированных, так и для неаутентифицированных пользователей. Это позволяет обойтись без дополнительного экрана входа в вашем приложении, но при этом использовать временные данные доступа с ограниченными привилегиями для доступа к ресурсам AWS.

Вопрос: Кто такие неаутентифицированные пользователи?
Неаутентифицированными называются пользователи, не выполнившие аутентификацию через какой-либо поставщик удостоверений и использующие гостевой доступ к приложению. Для таких пользователей можно определить отдельную роль IAM, предоставив им ограниченные разрешения доступа к серверным ресурсам.

Вопрос: Поддерживает ли Cognito Identity отдельные удостоверения для разных пользователей одного и того же устройства?
Да. Cognito Identity поддерживает отдельные удостоверения на одном устройстве, например на семейном iPad. Каждое удостоверение обрабатывается отдельно. При этом вы полностью контролируете, каким образом осуществляется вход пользователей в приложение и выход из него и как хранятся локальные и удаленные данные приложения.

Вопрос: Как можно сохранить данные, связанные с Cognito Identity?
Вы можете программно создать пакет данных, связанный с Cognito Identity, и запустить их сохранение в виде пар «ключ-значение». Данные хранятся как локально на устройстве, так и в хранилище Cognito Sync. Cognito может синхронизировать эти данные на всех устройствах конечного пользователя.

Вопрос: Можно ли по количеству удостоверений в консоли Cognito Identity узнать, сколько пользователей работает с приложением?
Количество удостоверений в консоли Cognito Identity показывает, сколько удостоверений было создано с помощью интерфейсов API Cognito Identity. При работе с аутентифицированными пользователями (выполнившими авторизацию через поставщика удостоверений, например Facebook или другого поставщика, совместимого с OpenID Connect) каждый вызов API GetId Cognito Identity может создать только одно удостоверение для каждого пользователя. Однако для пользователей, не прошедших аутентификацию, каждый вызов API GetId со стороны клиента будет создавать новое удостоверение. Следовательно, если ваше приложение многократно вызывает API GetId для одного пользователя, не прошедшего аутентификацию, один пользователь в результате имеет несколько удостоверений. Поэтому при разрешении доступа без аутентификации важно кэшировать ответы, полученные от GetId, и не вызывать этот API несколько раз для одного и того же пользователя.

Пакет Mobile SDK содержит алгоритм для автоматического кэширования удостоверений Cognito, так что вам не придется об этом беспокоиться. Если вы ищете комплексное решение для анализа работы приложения с возможностью отслеживания уникальных пользователей, обратите внимание на Amazon Mobile Analytics.

Вопрос: Что такое хранилище Amazon Cognito Sync?
Хранилище синхронизации Amazon Cognito Sync – это хранилище пар «ключ-значение», связанных с удостоверением Amazon Cognito Identity. Ограничений по количеству удостоверений, которые можно создать в пулах идентификации и хранилище синхронизации, не имеется. Для каждого удостоверения Amazon Cognito в хранилище синхронизации есть собственное хранилище пользовательской информации.

Вопрос: Данные сохраняются напрямую в хранилище Amazon Cognito Sync?
Нет. Дополнительный пакет AWS Mobile SDK сохраняет информацию пользователя в базе данных SQLite непосредственно на устройстве, благодаря чему эти данные всегда доступны для вашего приложения. Отправка данных в хранилище Amazon Cognito Sync осуществляется вызовом метода synchronize(). Если включена push-синхронизация, все остальные устройства, связанные с удостоверением данного пользователя, оповещаются об изменении данных в хранилище синхронизации посредством Amazon SNS.

Вопрос: Как хранятся данные в хранилище Amazon Cognito Sync?
Данные, связанные с удостоверением Amazon Cognito, хранятся в виде пар «ключ-значение». Например, ключу MusicVolume может соответствовать значение «11». Пары «ключ-значение» разбиваются на группы и категории с использованием наборов данных. Набор данных – это логический раздел совокупности пар «ключ-значение», который является минимальным объектом, используемым Amazon Cognito для выполнения операций синхронизации.

Вопрос: Каков максимальный объем хранилища пользовательской информации в хранилище Amazon Cognito Sync?
Объем хранилища информации одного пользователя не может превышать 20 МБ. Каждый набор данных в хранилище пользовательской информации может содержать до 1 МБ данных. В наборе данных может быть до 1024 ключей.

Вопрос: Какие типы данных могут храниться в наборах данных?
Как ключи, так и значения в наборах данных являются буквенно-цифровыми строками. Единственным ограничением на длину строк является общий объем значений в наборе данных, который не может превышать 1 МБ. Двоичные данные можно хранить в качестве строк значений с кодировкой base64 при условии, что их объем не превышает 1 МБ.

Вопрос: Почему объем набора данных не может превышать 1 МБ?
Такое ограничение, накладываемое на объем набора данных, повышает вероятность того, что задание синхронизации будет завершено успешно даже при ограниченной пропускной способности и не потребует множества попыток, которые расходуют заряд аккумулятора и увеличивают затраты на передачу данных.

Вопрос: Используются ли пользовательские удостоверения и хранилища данных совместно несколькими разработчиками?
Нет, удостоверение и хранилище данных каждого пользователя привязаны к определенному аккаунту AWS. Если на некотором устройстве, использующем сервис Amazon Cognito, есть несколько приложений разных разработчиков, каждое приложение будет использовать хранилище данных, созданное соответствующим разработчиком.

Вопрос: Как анализировать данные в хранилище Cognito Sync, и делать запросы к ним?
С помощью функции Cognito Streams можно передавать данные из хранилища синхронизации в поток Kinesis вашего аккаунта AWS. После этого можно получать данные из потока и сохранять их так, как удобно для последующего анализа, например в базе данных Amazon Redshift, своем инстансе RDS или даже файле S3. Мы опубликовали пример приложения-получателя Kinesis, чтобы продемонстрировать сохранение данных обновлений в Amazon Redshift.

Вопрос: Почему следует использовать поток Kinesis, а не экспорт из базы данных?
При передаче данных в поток Kinesis вы сможете получать полную историю изменений наборов данных в режиме реального времени. Это значит, что вы получите все изменения, вносимые конечным пользователем в набор данных, что обеспечит гибкость при сохранении данных с помощью избранного вами средства.

Вопрос: Что если у меня уже есть данные, сохраненные в Cognito?
При включении функции передачи в поток Kinesis вы сможете начать массовую публикацию. Этот процесс асинхронно отправляет все данные, уже сохраненные в вашем хранилище Cognito Sync, в выбранный поток Kinesis.

Вопрос: Сколько стоит использование этой функции?
Cognito отправляет данные в принадлежащий вам поток Kinesis. Включение этой функции не влияет на стоимость операции синхронизации Cognito. С вас будет взиматься плата по стандартным тарифам Kinesis за использование сегментов.

Вопрос: Можно ли выполнять проверку данных перед их сохранением?
Функция Amazon Cognito Events позволяет запускать функции AWS Lambda в ответ на важные события в Cognito. При синхронизации любого набора данных происходит событие Sync Trigger. Разработчик может написать функцию AWS Lambda для перехвата события синхронизации. Эта функция может оценивать изменения соответствующего набора данных, выполнять действия с данными перед их сохранением в облаке и синхронизировать их с другими устройствами данного пользователя. Функция AWS Lambda может также обеспечить невыполнение операции синхронизации, и данные не будут синхронизированы с другими устройствами пользователя.

Вопрос: Как именно Amazon Cognito осуществляет синхронизацию данных?
Вы можете программно запускать синхронизацию наборов данных между клиентскими устройствами и хранилищем Amazon Cognito Sync с помощью метода synchronize() пакета AWS Mobile SDK. Метод synchronize() считывает последнюю версию данных из хранилища Amazon Cognito Sync и сравнивает ее с локальной, кэшированной копией. После сравнения метод synchronize() в случае необходимости записывает последние обновления в локальное хранилище данных и в хранилище Amazon Cognito Sync. По умолчанию Amazon Cognito оставляет последнюю записанную версию данных. Вы можете изменить такой подход и разрешать конфликты данных программно. Кроме того, push-синхронизация позволяет Amazon Cognito отправлять скрытые push-уведомления на все устройства, связанные с данным удостоверением, оповещая их о доступности новых данных.

Вопрос: Что такое скрытые push-уведомления?
Amazon Cognito с помощью сервиса Simple Notification Service (SNS) может отправлять скрытые push-уведомления на устройства. Скрытое push-уведомление – это push-сообщение, получаемое вашим приложением на устройстве пользователя и при этом невидимое для пользователя.

Вопрос: Как использовать push-синхронизацию?
Чтобы включить push-синхронизацию, нужно назначить соответствующее платформенное приложение на странице сервиса Amazon SNS в Консоли управления AWS. Затем со страницы пула идентификации на странице Amazon Cognito в Консоли управления AWS вы сможете привязать платформенное приложение SNS к своему пулу идентификации Cognito. Amazon Cognito автоматически оповещает устройства об изменениях с помощью соответствующего платформенного приложения SNS.

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

Вопрос: Сколько стоит использование Cognito Identity?
Используя сервис Amazon Cognito, вы платите только за то, что реально используете. Минимальные платежи и авансовые обязательства отсутствуют.

Если вы используете Cognito Identity для создания User Pool, вы платите только за количество активных пользователей в месяц (MAU). MAU – это пользователи, которые в течение календарного месяца выполнили хотя бы одну операцию идентификации: регистрацию, авторизацию, обновление токена или изменение пароля. Последующие сессии активных пользователей и неактивные в этом календарном месяце пользователи не оплачиваются. Дополнительная плата взимается за необязательную передачу SMS-сообщений, как описано ниже.

При работе с возможностью Your User Pool предусмотрен уровень бесплатного пользования: 50 000 активных пользователей в месяц (MAU). Уровень бесплатного пользования Cognito Identity не прекращает свое действие автоматически по истечении срока действия уровня бесплатного пользования AWS, равного 12 месяцам, и остается доступным как для существующих, так и для новых клиентов AWS бессрочно.

Федерации удостоверений и безопасное управление доступом к ресурсам AWS при использовании Cognito Identity всегда бесплатны.

Вопрос: Сколько стоит использование хранилища Cognito Sync?
Размер платы за синхронизацию зависит от общего объема данных, размещенных в хранилище Amazon Cognito Sync, и количества выполненных операций синхронизации. При выполнении операции синхронизации локальные данные, хранящиеся на устройстве, сравниваются с данными в хранилище Amazon Cognito Sync в облаке, а затем выполняется синхронизация этих данных.

В рамках уровня бесплатного пользования AWS клиенты AWS получают 10 ГБ облачного хранилища синхронизации и 1 000 000 операций синхронизации в месяц в течение первых 12 месяцев. Вне уровня бесплатного пользования стоимость сервиса Amazon Cognito составляет 0,15 USD за каждые 10 000 операций синхронизации и 0,15 USD за 1 ГБ хранилища синхронизации в месяц.

Вопрос: Что такое операция синхронизации?
Операцией синхронизации считается вызов метода synchronize(), сделанный с помощью AWS Mobile SDK. При непосредственном вызове серверных API операция синхронизации инициируется при выдаче нового токена сеанса синхронизации и завершается при успешном выполнении записи или тайм-ауте токена сеанса. И при использовании метода synchronize() SDK, и при непосредственном вызове серверных API операции синхронизации оплачиваются по одному и тому же тарифу.

Вопрос: Кто считается активными пользователями в месяц (MAU)?
Пользователь считается активным и входит в число MAU, если в расчетном месяце имеется хотя бы одна операция, связанная с этим пользователем (например, авторизация, обновление токена, регистрация или изменение пароля). За последующие операции такого пользователя в этом расчетном месяце или за неактивных пользователей плата не взимается. Обычно общее количество пользователей, а также количество операций, значительно больше, чем количество пользователей MAU.

Вопрос: Какова стоимость использования SMS-сообщений с Cognito?
Использование SMS-сообщений для верификации номеров телефонов и отправки кодов в случае, если пароль забыт или пользователь его меняет, а также при многофакторной аутентификации, оплачивается отдельно. Дополнительные сведения см. на странице Цены на рассылку SMS по всему миру.

Вопрос: Входит ли сервис Amazon Cognito в уровень бесплатного пользования AWS?
Да. В рамках уровня бесплатного использования AWS сервис Cognito ежемесячно предоставляет 10 ГБ хранилища синхронизации и 1 000 000 операций синхронизации в период первых 12 месяцев использования. Your User Pool для Cognito Identity бесплатен для первых 50 000 MAU, а при превышении этого значения применяются тарифы, зависящие от количества. Использование федерации удостоверений для аутентификации пользователей и генерация уникальных идентификаторов в Cognito Identity всегда остаются бесплатными.

Вопрос: Каждая операция записи или чтения приложения считается операцией синхронизации?
Нет. Вы самостоятельно решаете, когда вызывать метод synchronize(). Каждая операция записи или чтения с устройства выполняется с использованием локального хранилища SQlite. Благодаря этому вы полностью контролируете свои расходы.

Вопрос: Сколько стоит использование push-синхронизации?
Для отправки скрытых push-уведомлений Cognito использует сервис Amazon SNS. Дополнительная плата за push-синхронизацию с помощью Cognito не взимается, но оповещения, отправляемые на устройства, оплачиваются по обычным тарифам Amazon SNS.

Вопрос: Сколько стоит использование Lambda с событиями Amazon Cognito?
Дополнительная плата за запуск функций Lambda с помощью Cognito Events не взимается, но при выполнении функций Lambda действуют обычные тарифы сервиса AWS Lambda и других сервисов AWS. Более подробную информацию см. на странице Цены на AWS Lambda.