Начало работы с Amazon Cognito

Документация и ресурсы для начала работы

Пул пользователей Amazon Cognito – единый каталог всех пользователей

Пул пользователей Amazon Cognito позволяет быстро создать собственный каталог для регистрации и аутентификации пользователей, а также для хранения пользовательских профилей. В пулах пользователей предоставляется интерфейс пользователя, который можно настроить в соответствии с приложением. Кроме того, пулы пользователей обеспечивают простую интеграцию с такими поставщиками удостоверений социальных сетей, как Facebook, Google и Amazon, а также с поставщиками корпоративных удостоверений на основе SAML, например с Microsoft Active Directory.

Пул идентификационных данных Amazon Cognito – управление доступом к ресурсам

Amazon Cognito позволяет управлять доступом к серверным ресурсам AWS и к API, чтобы соответствующим образом ограничивать доступ для пользователей приложения. Можно назначать различные роли и права для пользователей и создавать временные данные для доступа к сервисам AWS, таким как Amazon S3, Amazon DynamoDB, API шлюз Amazon и AWS Lambda.

Видеоматериалы онлайн

How to create an Amazon Cognito user pool (7:37)
How to use Amazon Cognito user pool advanced security features (12:00)
How to create an Amazon Cognito identity pool (7:25)

Ответы на часто задаваемые вопросы

  • Вопрос: Что такое 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. Возможность использования пулов пользователей Cognito в настоящее время поддерживается в AWS Mobile SDK для iOS и Android, а также в JavaScript AWS SDK для Cognito. Посетите нашу страницу ресурсов для загрузки пакетов SDK.

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

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

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

    Вопрос. Что такое пул пользователей Amazon Cognito?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Amazon Cognito позволяет переносить пользователей в режиме реального времени (в процессе входа в приложение) с помощью встроенного триггера AWS Lambda. Такой встроенный триггер позволяет осуществить перенос без принудительной смены паролей пользователей.

    Другой способ позволяет массово перенести пользователей с помощью загрузки CSV‑файла, содержащего профили всех пользователей. Файл можно загрузить через консоль Amazon Cognito, API или интерфейс командной строки AWS. Во время первого входа в систему пользователи должны подтвердить свой аккаунт путем ввода кода, отправленного на адрес электронной почты или телефон, а также задать новый пароль.

    Подробную информацию см. на странице Перенос пользователей в пул пользователей.

  • Вопрос. Можно ли использовать 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, хранятся в виде пар «ключ‑значение». Например, ключу Music Volume может соответствовать значение 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.

  • Вопрос. Сколько стоят пулы пользователей Amazon Cognito?

    Цены на пул пользователей Amazon Cognito см. на странице цен на Amazon Cognito.

    Вопрос. Сколько стоит использование Amazon Cognito Sync?

    Цены на Amazon Cognito Sync см. на странице цен на Amazon Cognito.

    Вопрос. Что такое операция синхронизации?

    Операцией синхронизации считается вызов метода 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 месяцев использования. Ваш пул пользователей для Cognito Identity бесплатен для первых 50 000 MAU, а при превышении этого значения применяются тарифы, зависящие от количества. Использование федерации удостоверений для аутентификации пользователей и генерация уникальных идентификаторов в Cognito Identity всегда остаются бесплатными.

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

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

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