Подходит ли один регион AWS Cognito, например, us-west-2, для обслуживания Канады, США и Пуэрто-Рико?

Я рассматриваю варианты службы управляемого входа, и AWS Cognito выглядит многообещающе.

Я заметил, что пулы пользователей и т. д. в настоящее время не реплицируются между регионами. Я хотел подтвердить, что 1 региона достаточно, например us-west-# (или us-east-#) будет достаточно для приложения, пользователи которого разбросаны по Канаде, США и Пуэрто-Рико.


person AJ Venturella    schedule 13.06.2017    source источник


Ответы (2)


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

Поэтому, если вам нужно выбрать один регион, выбирайте тот, к которому ближе большинство ваших клиентов.

AWS Cognito в настоящее время не реплицирует пулы пользователей между регионами. Поэтому, если вы хотите использовать AccessToken против этого пула пользователей, вам нужно перейти в регион, в котором находится пул пользователей.

Теперь любой другой сервис, который принимает accessTokens, будет принимать ваш токен внутри AWS, за пределами AWS в любом регионе.

person Vasileios Lekakis    schedule 13.06.2017
comment
да, это имеет смысл, но пользователи могут двигаться. Самолеты, автомобили, поезда и т. д. Таким образом, хотя сегодня они могут быть близки к одному ресурсу, завтра это может измениться. За кулисами мы могли бы использовать некоторую логику приложения, чтобы привязать этого пользователя к области Cognito, которая могла бы работать. Работает ли токен доступа, предоставленный Cognito, в разных регионах? Если он основан на IAM, который является глобальным, я предполагаю, что да, они работают в разных регионах, но я не видел конкретного подтверждения этому. - person AJ Venturella; 13.06.2017
comment
Я изменил свой ответ, чтобы ответить на ваш комментарий - person Vasileios Lekakis; 15.06.2017
comment
Благодарю за разъяснение! - person AJ Venturella; 15.06.2017

Я добавляю эту дополнительную деталь к вопросу в качестве ссылки на типы токенов, которые возвращает Cognito. Как я только что нашел это, погуглив некоторую информацию в ответе выше.

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

http://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with-identity-providers.html

Токен идентификатора

Токен идентификатора представлен в виде токена веб-ключа JSON (JWT). Маркер содержит утверждения о личности аутентифицированного пользователя. Например, он включает такие утверждения, как имя, фамилия_имя, номер_телефона и т. д. Дополнительные сведения о стандартных утверждениях см. в спецификации OpenID Connect. Клиентское приложение может использовать эту идентификационную информацию внутри приложения. Маркер идентификатора также можно использовать для аутентификации пользователей на ваших серверах ресурсов или серверных приложениях. Когда токен идентификатора используется вне приложения для ваших веб-API, вы должны проверить подпись токена идентификатора, прежде чем вы сможете доверять любым утверждениям внутри токена идентификатора.

Срок действия маркера идентификатора истекает через час после аутентификации пользователя. Вы не должны обрабатывать токен идентификатора в своем клиенте или веб-API после истечения срока его действия.

Токен доступа

Маркер доступа также представлен в виде маркера веб-ключа JSON (JWT). Он содержит утверждения об аутентифицированном пользователе, но, в отличие от маркера идентификатора, не включает всю информацию об удостоверении пользователя. Основная цель маркера доступа — авторизация операций в контексте пользователя в пуле пользователей. Например, вы можете использовать токен доступа к Amazon Cognito Identity для обновления или удаления атрибутов пользователя. Маркер доступа также можно использовать с любым из ваших веб-API для принятия решений по управлению доступом и авторизации операций в контексте пользователя. Как и в случае токена идентификатора, вы должны сначала проверить подпись токена доступа в своих веб-API, прежде чем вы сможете доверять любым утверждениям внутри токена доступа.

Срок действия токена доступа истекает через час после аутентификации пользователя. Он не должен обрабатываться после истечения срока его действия.

Обновить токен

Токен обновления можно использовать только для Amazon Cognito для получения нового токена доступа или идентификатора.

По умолчанию срок действия токена обновления истекает через 30 дней после аутентификации пользователя. Когда вы создаете приложение для своего пула пользователей, вы можете установить срок действия маркера обновления приложения (дни) на любое значение от 1 до 3650.

person AJ Venturella    schedule 14.06.2017
comment
Я хочу добавить, что я разговаривал с архитектором решений AWS, и они подтвердили, что 1 региона достаточно для США, Канады и Пуэрто-Рико. Кроме того, в зависимости от ваших требований к задержке, это может быть уместно в глобальном масштабе. Вы должны быть уверены, что задержка приемлема для вашего варианта использования, прежде чем вы это сделаете. Например, США-запад в Германию может быть 100-200 мс. Если это нормально, вы можете идти. Это относится к Cognito Sync и Login. - person AJ Venturella; 26.06.2017