Introducción a Amazon Cognito

P: ¿Qué es Amazon Cognito?
Amazon Cognito le permite agregar de forma sencilla el registro y el inicio de sesión a sus aplicaciones web y móviles. Amazon Cognito también permite autenticar a los usuarios mediante un proveedor de identidad externo y ofrece unas credenciales de seguridad temporales para obtener acceso a los recursos backend de la aplicación en AWS o en cualquier servicio que se encuentre detrás de Amazon API Gateway. Amazon Cognito funciona con proveedores de identidad externos que admiten OpenID Connect o SAML y con proveedores de identidad social (como Facebook, Twitter, Amazon). También podemos integrar nuestro propio proveedor de identidad.

Además, Amazon Cognito permite sincronizar datos en distintos dispositivos de usuario para ofrecerles una experiencia uniforme cuando cambien de un dispositivo a otro o cuando actualicen a uno nuevo. La aplicación puede guardar datos localmente en los dispositivos de los usuarios, lo que permite que las aplicaciones funcionen cuando los dispositivos no tengan conexión y que luego se sincronicen los datos automáticamente cuando vuelvan a estar online.

Con Amazon Cognito, puede concentrarse en crear experiencias excelentes con las aplicaciones en lugar de preocuparse de crear, proteger y escalar una solución que se ocupe de la administración y autenticación de los usuarios y de la sincronización entre plataformas y dispositivos.

P: ¿Quién debe utilizar Amazon Cognito?
Amazon Cognito está diseñado para desarrolladores que desean añadir la administración de usuarios y la funcionalidad de sincronización a sus aplicaciones web y móviles. Los desarrolladores pueden utilizar Cognito Identity para añadir el registro y el inicio de sesión a sus aplicaciones y permitir que sus usuarios accedan de forma segura a sus recursos. Cognito también permite a los desarrolladores sincronizar datos entre dispositivos, plataformas y aplicaciones.

P: ¿Cómo puedo comenzar a utilizar Amazon Cognito?
Puede comenzar fácilmente visitando la consola de AWS. Si no dispone de una cuenta de Amazon Web Services, puede crearla al iniciar sesión en la consola. Una vez creado un conjunto de usuarios para operaciones de administración de usuarios o un conjunto de identidades para operaciones de sincronización o federación de identidades, puede descargar e integrar el SDK para móviles de AWS con su aplicación. También puede llamar directamente a las API de servidor de Cognito, en lugar de usar el SDK. Para obtener más información, consulte la guía para desarrolladores.

P: ¿Amazon Cognito expone API de servidor?
Sí. Cognito expone API de servidor. Puede crear su propia interfaz personalizada para Cognito llamando directamente a estas API. Las API de servidor se describen en la guía para desarrolladores.

P: ¿Qué plataformas soporta Amazon Cognito?
La compatibilidad con Cognito reside en el SDK para móviles de AWS opcional, que está disponible para iOS, Android, Unity y Kindle Fire. Cognito también está disponible en el AWS SDK para JavaScript. En la actualidad, Cognito Your User Pools es compatible con el SDK para móviles de AWS para iOS y Android y el SDK para de AWS para Cognito. Visite nuestra página de recursos para descargar el SDK.

P: ¿Tengo que usar obligatoriamente el SDK para móviles de AWS?
No. Cognito expone sus API de control y datos en forma de servicios web. Puede implementar su propia biblioteca de clientes llamando directamente a las API de servidor.

 

P: ¿Puedo hacer que mi propio proveedor de identidad realice el registro e inicio de sesión de los usuarios?

Sí. Puede añadir fácilmente la funcionalidad de registro e inicio de sesión a sus aplicaciones con Cognito Identity. Sus usuarios puede registrarse e iniciar sesión con el correo electrónico, número de teléfono o nombre de usuario. También puede implementar características de seguridad mejoradas, como la verificación del correo electrónico o del número de teléfono y la autenticación multifactor. Cognito Identity también le permite personalizar los flujos de trabajo, por ejemplo, añadiendo lógica específica a la aplicación al registro de usuario para detectar fraudes y validar a los usuarios mediante AWS Lambda. Para obtener más información, consulte nuestra documentación.

P: ¿Qué es un conjunto de usuarios?

Un conjunto de usuarios es un directorio de usuarios que puede configurar para sus aplicaciones web y móviles. El conjunto de usuarios almacena los atributos de perfil de sus usuarios de forma segura. Puede crear y administrar un conjunto de usuarios con la consola de AWS, la CLI de AWS o el SDK de AWS.

P: ¿Qué información del perfil admite Cognito Identity?

Los desarrolladores pueden utilizar los atributos de perfil del usuario estándar basados en OpenID Connect (como nombre de usuario, número de teléfono, dirección, huso horario, etc.) o personalizar las opciones para añadir atributos de usuario específicos.

P: ¿Puedo permitir que los usuarios de mi aplicación se registren o inicien sesión con una dirección de correo electrónico o número de teléfono?

Sí, puede utilizar la característica de alias para permitir que sus usuarios se registren o inicien sesión con una dirección de correo electrónico o un número de teléfono y una contraseña. Para obtener más información, consulte nuestra documentación.

P: ¿Puedo configurar políticas de contraseña?

Sí, cuando cree o configure el conjunto de usuarios puede configurar políticas de contraseña, como requisitos de seguridad de la contraseña y tipos de caracteres.

P: ¿Puedo verificar las direcciones de correo electrónico y el número de teléfono de los usuarios de mi aplicación?

Sí, con Cognito Identity puede exigir que se verifiquen las direcciones de correo electrónico y los números de teléfono de sus usuarios antes de proporcionarles acceso a su aplicación. Durante el registro, se enviará un código de verificación al número de teléfono o a la dirección de correo electrónico del usuario, quien deberá introducir el código de verificación para completar el registro y realizar la confirmación.

P: ¿Admite Cognito Identity la autenticación multifactor (MFA) por SMS?

Sí, puede permitir que los usuarios de su aplicación inicien sesión mediante la MFA por SMS. Con la MFA por SMS activada, se pedirá a los usuarios la contraseña (el primer factor: lo que saben) y un código de seguridad que solo pueden recibir mediante SMS en su teléfono (el segundo factor: lo que tienen).

P: ¿Es posible personalizar los flujos de trabajo del registro y el inicio de sesión de los usuarios?

Sí, puede personalizar el registro y el inicio de sesión añadiendo lógica específica a la aplicación a los flujos de trabajo de registro e inicio de sesión con AWS Lambda. Por ejemplo, puede crear funciones de AWS Lambda para identificar fraudes o realizar validaciones adicionales de los datos de los usuarios. Puede activar funciones de Lambda provistas por desarrolladores antes del registro, después de la confirmación, antes de la autenticación, durante la autenticación para personalizar los controles y después de la autenticación. También puede utilizar funciones de Lambda para personalizar mensajes enviados como parte de la verificación del correo electrónico o número de teléfono y de la autenticación multifactor.

P: ¿Es posible recordar los dispositivos asociados con los usuarios de mi aplicación en un conjunto de usuarios de Cognito?

Sí, puede optar por recordar los dispositivos utilizados para acceder a su aplicación y asociar estos dispositivos recordados con los usuarios de su aplicación en un conjunto de usuarios de Cognito. También puede optar por usar los dispositivos recordados para evitar los controles de factor de sus usuarios cuando haya configurado la autenticación multifactor.

P: ¿Cómo puedo migrar mis usuarios existentes a un grupo de usuarios de Amazon Cognito?

Puede utilizar nuestra herramienta de importación para migrar los usuarios existentes a un grupo de usuarios de Amazon Cognito. Los valores de atributos de usuarios se importan desde un archivo .csv, que se puede cargar mediante la consola, nuestras API o la CLI. Cuando los usuarios importados inician sesión por primera vez, confirman su cuenta y crean una nueva contraseña con un código enviado a su dirección de email o teléfono. El uso de la herramienta de importación no implica costos adicionales. Para obtener más información, consulte la documentación de la herramienta de importación.

La herramienta de importación no migra contraseñas. Si desea conservar las contraseñas actuales de sus usuarios, podría plantearse un enfoque alternativo para migrar los usuarios de uno en uno a medida que inicien sesión en su aplicación durante un periodo de transición. Con este enfoque, la aplicación primero intenta iniciar la sesión del usuario con su grupo de usuarios de Cognito. Si ese usuario no existe en el grupo de usuarios, la aplicación iniciará la sesión del usuario con el sistema de identificación existente y conservará provisionalmente el nombre de usuario y la contraseña utilizados para hacerlo. Una vez que un usuario inicie sesión correctamente con el sistema de identificación existente, la aplicación utilizará el mismo nombre de usuario y contraseña para crear el usuario en el grupo de usuarios de Cognito. Este enfoque requiere conservar el sistema de identificación existente durante el periodo de transición, pero una vez finalizado, puede utilizar nuestra herramienta de importación para importar los usuarios restantes (sin sus contraseñas). 

P: ¿Puedo usar Cognito Identity para federar identidades y proteger el acceso a los recursos de AWS?
Sí, Cognito Identity permite autenticar a los usuarios mediante un proveedor de identidad externo y ofrece unas credenciales de seguridad temporales para obtener acceso a los recursos backend de la aplicación en AWS o en cualquier servicio que se encuentre detrás de Amazon API Gateway. Amazon Cognito funciona con proveedores de identidad externos que admiten OpenID Connect o SAML y con proveedores de identidad social (como Facebook, Twitter, Amazon). También podemos integrar nuestro propio proveedor de identidad.

P: ¿Qué proveedores de identidad públicos se pueden utilizar con Amazon Cognito Identity?
Puede usar Amazon, Facebook, Twitter, Digits, Google y cualquier otro proveedor de identidad compatible con OpenID Connect.

P: ¿Qué es un conjunto de identidades?
Los conjuntos de identidades son los contenedores que utiliza Cognito Identity para guardar de manera ordenada las identidades federadas de sus aplicaciones. El conjunto de identidades asocia identidades federadas de proveedores de identidad social con un identificador específico de usuario único. Los conjuntos de identidades no almacenan los perfiles de usuario. Un mismo conjunto de identidades puede asociarse con una sola aplicación o con varias. Si utiliza dos conjuntos de identidades diferentes para dos aplicaciones, el mismo usuario final dispondrá de un identificador exclusivo distinto en cada uno de ellos.

P: ¿Cómo funciona el proceso de inicio de sesión con un proveedor de identidad público?
Su aplicación para móviles autentica al usuario con el proveedor de identidad (IdP) a través del SDK de este. Una vez que el usuario final está autenticado con el proveedor de identidad, la aplicación transfiere el token de OAuth u Open ID Connect o la aserción SAML obtenidos del proveedor de identidad a Cognito Identity, que proporciona un nuevo ID de Cognito para el usuario y un conjunto de credenciales de AWS temporales con privilegios limitados.

P: ¿Puedo registrar y autenticar a mis propios usuarios?
Cognito Identity se puede integrar con su sistema de autenticación existente. Con una sencilla llamada a API puede recuperar un ID de Cognito para los usuarios finales en función de su propio identificador único para sus usuarios. Una vez recuperado el ID de Cognito y el token de OpenID que proporciona Cognito Identity, puede usar el SDK de clientes de Cognito Identity para obtener acceso a los recursos de AWS y sincronizar los datos de los usuarios. Cognito Identity es un proveedor de identidad administrado que facilita la implementación del registro e inicio de sesión de los usuarios para sus aplicaciones web y móviles.

P: ¿Cómo permite Cognito Identity controlar los permisos y el acceso a los servicios de AWS de manera segura?
Cognito Identity asigna a los usuarios un conjunto de credenciales temporales y de privilegios limitados para obtener acceso a los recursos de AWS, de modo que no haya que utilizar las credenciales de la cuenta de AWS. Los permisos de cada usuario se controlan mediante las funciones de AWS IAM que cree. Puede definir reglas para elegir la función de IAM de cada usuario, o si utiliza grupos en un grupo de usuarios de Cognito, puede asignar funciones de IAM basadas en grupos. Cognito Identity también permite definir un rol de IAM distinto con permisos limitados para los usuarios invitados que no se autentican. Además, podemos usar el identificador único que genera Cognito para los usuarios con el fin de controlar el acceso a determinados recursos. Por ejemplo, podemos crear una política para un bucket de S3 que permita a cada usuario obtener acceso solamente a su propia carpeta dentro del bucket.

P: Cuando se utilizan proveedores de identidad públicos, ¿almacena Amazon Cognito Identity las credenciales de los usuarios?

No. Su aplicación se comunica directamente con el proveedor de identidad público compatible (Amazon, Facebook, Twitter, Digits, Google o un proveedor compatible con Open ID Connect) para autenticar a los usuarios. Cognito Identity no recibe ni almacena credenciales de usuario. Cognito Identity usa el token del proveedor de identidad para obtener un identificador único para el usuario y luego lo transmite mediante un hash unidireccional para que el mismo usuario se pueda volver a reconocer en el futuro sin tener que almacenar su identificador real.

P: ¿ Cognito Identity obtiene o almacena información confidencial sobre los usuarios procedente de los proveedores de identidad?
No. Cognito Identity no recibe ninguna información confidencial (por ejemplo, la dirección de email, la lista de amigos, etc.). de los proveedores de identidad.

P: ¿Necesito mis propios sistemas de autenticación e identidad de backend con Cognito Identity?
No. Cognito Identity soporta el inicio de sesión a través de Amazon, Facebook, Twitter, Digits y Google, así como el acceso de usuarios sin autenticar. Cognito Identity ofrece autenticación federada, almacenamiento de los datos de perfil en un almacén de sincronización y distribución de tokens de acceso de AWS sin necesidad de escribir ningún código de backend.

P: ¿Qué sucede si no quiero obligar a mis usuarios a iniciar sesión?
Cognito Identity soporta la creación y expedición de tokens para usuarios tanto autenticados como sin autenticar. Esto elimina los inconvenientes de una pantalla de inicio de sesión adicional en la aplicación sin renunciar a utilizar credenciales temporales con privilegios limitados para obtener acceso a los recursos de AWS.

P: ¿Qué son los usuarios sin autenticar?
Los usuarios no autenticados son los que no se autentican con ningún proveedor de identidad y que obtienen acceso a la aplicación como invitados. Podemos definir un rol de IAM aparte con permisos limitados para que estos usuarios obtengan acceso a los recursos backend.

P: ¿Soporta Cognito Identity la existencia de diferentes identidades para distintos usuarios en el mismo dispositivo?
Sí. Cognito Identity permite el uso de identidades diferentes en un mismo dispositivo, como un iPad de uso familiar. Cada identidad se administra por separado y usted puede controlar plenamente el modo en que la aplicación inicia y cierra las sesiones de los usuarios y el modo en que se almacenan los datos locales y remotos de la aplicación.

P: ¿Cómo puedo almacenar los datos asociados con una identidad de Cognito Identity?
Puede crear mediante programación un conjunto de datos asociado con una identidad de Cognito Identity y comenzar a guardar datos en forma de pares clave/valor. Los datos se almacenan tanto localmente en el dispositivo como en el almacén de sincronización de Cognito. Cognito puede sincronizar estos datos entre todos los dispositivos del usuario final.

P: ¿El número de identidades que hay en la consola de Cognito Identity indica la cantidad de usuarios que usan mi aplicación?
El número de identidades que hay en la consola de Cognito Identity muestra cuántas identidades se crearon a través de las API de Cognito Identity. En el caso de las identidades autenticadas (las que inician sesión con un proveedor de inicios de sesión, como Facebook o OpenID Connect), cada llamada que se haga a la API GetId de Cognito Identity solo creará una identidad para cada usuario. En cambio, cuando las identidades no estén autenticadas, cada vez que el cliente de una aplicación llame a la API GetId se generará una nueva identidad. Por lo tanto, si su aplicación llama a GetId con identidades no autenticadas varias veces en relación con un solo usuario, este aparecerá como si tuviera varias identidades. Esto significa que es importante almacenar en caché la respuesta de GetId al usar identidades no autenticadas y no llamar varias veces por usuario.

El SDK para móviles proporciona la lógica para almacenar en caché la identidad de Cognito Identity automáticamente de modo que usted no tenga que preocuparse de ello. Si busca una solución de análisis completa para su aplicación, incluida la capacidad de realizar el seguimiento de usuarios únicos, visite Amazon Mobile Analytics.

P: ¿Qué es el almacén de sincronización de Amazon Cognito?
El almacén de sincronización de Amazon Cognito es un almacén de pares clave/valor vinculado a una identidad de Amazon Cognito. No existe ningún límite respecto al número de identidades que se pueden crear en los conjuntos de identidades y en el almacén de sincronización. Cada identidad de Amazon Cognito incluida en el almacén de sincronización dispone de su propio almacén de información de usuario.

P: ¿Los datos se guardan directamente en el almacén de sincronización de Amazon Cognito?
No. El SDK para móviles de AWS opcional guarda los datos en una base de datos SQLite en el dispositivo local, de tal manera que la aplicación pueda obtener acceso a ellos en cualquier momento. Los datos se lanzan al almacén de sincronización de Amazon Cognito mediante la llamada al método de sincronización y, si la sincronización push está habilitada, el resto de dispositivos conectados a una identidad reciben la notificación del cambio de datos en el almacén de sincronización a través de Amazon SNS.

P: ¿Cómo se almacenan los datos en el almacén de sincronización de Amazon Cognito?
Los datos asociados con una identidad de Amazon Cognito se organizan en pares clave/valor. Una clave se compone de una etiqueta como, por ejemplo, “MusicVolume”, y un valor, p. ej., “11”. Los pares clave/valor se agrupan y clasifican utilizando conjuntos de datos. Los conjuntos de datos son particiones lógicas de los pares clave/valor y constituyen la entidad más granular utilizada por Amazon Cognito para realizar operaciones de sincronización.

P: ¿Cuál es el tamaño máximo de los almacenes de información de usuario incluidos en el almacén de sincronización de Amazon Cognito?
Cada almacén de información de usuario puede tener un tamaño máximo de 20 MB. Cada conjunto de datos incluido en un almacén de información de usuario puede contener hasta 1 MB de datos. En cada conjunto de datos puede haber hasta 1 024 claves.

P: ¿Qué tipos de datos pueden almacenarse en un conjunto de datos?
Tanto las claves como los valores almacenados en los conjuntos de datos son cadenas alfanuméricas. No existe ningún límite respecto a la longitud de estas cadenas aparte del límite de 1 MB para el total de los valores de un conjunto de datos. Los datos binarios pueden almacenarse en cadenas codificadas mediante base64 en forma de valores siempre y cuando no superen el límite de 1 MB.

P: ¿Por qué los conjuntos de datos solo pueden tener 1 MB de tamaño como máximo?
Al limitar el tamaño de los conjuntos de datos a 1 MB aumentan las posibilidades de que las tareas de sincronización se lleven a cabo correctamente, incluso aunque el ancho de banda sea limitado, sin tener que realizar varios intentos, lo que consume batería y datos.

P: ¿Se comparten entre desarrolladores las identidades de usuario y los almacenes de información de usuario?
No, las identidades y los almacenes de información de usuario están vinculados a una cuenta de AWS concreta. Si en un mismo dispositivo hay varias aplicaciones de diferentes editores que utilizan Amazon Cognito, cada una usará el almacén de información creado por el editor correspondiente.

P: ¿Cómo se pueden analizar y realizar consultas en los datos almacenados en el almacén de sincronización de Cognito?
Mediante Cognito Streams, puede enviar los datos del almacén de sincronización a una transmisión de Kinesis de su cuenta de AWS. A continuación, puede utilizar esta transmisión y almacenar los datos de manera que le resulte sencillo analizarlos, como en una base de datos de Amazon Redshift, una instancia RDS que posea o incluso un archivo de S3. Hemos publicado una aplicación de consumo de Kinesis de muestra que le enseña a almacenar los datos actualizados en Amazon Redshift.

P: ¿Por qué debo utilizar una transmisión de Kinesis en lugar de exportar a una base de datos?
Al realizar un streaming de los datos a Kinesis, puede obtener en tiempo real el historial completo de cambios en su conjunto de datos. Es decir, obtiene todos los cambios que cualquier usuario final haya realizado en el conjunto de datos y disfruta de la flexibilidad de almacenar estos datos en la herramienta que desee.

P: ¿Qué sucede si ya he almacenado datos en Cognito?
Cuando active la característica de transmisiones de Kinesis, podrá comenzar una publicación en masa. Este proceso envía de manera asíncrona todos los datos almacenados actualmente en el almacén de sincronización de Cognito a la transmisión de Kinesis que haya elegido.

P: ¿Cuánto cuesta esta característica?
Cognito envía los datos a una transmisión de Kinesis que ya posee. Al activar esta característica, el precio por sincronización de Cognito sigue siendo el mismo. Se le cobrarán las tarifas estándar de Kinesis por los fragmentos.

P: ¿Puedo validar los datos antes de que se guarden?
Amazon Cognito Events permite a los desarrolladores ejecutar una función de AWS Lambda como respuesta a eventos importantes en Cognito. El evento Sync Trigger se produce al sincronizar cualquier conjunto de datos. Los desarrolladores pueden escribir una función de AWS Lambda para interceptar el evento de sincronización. La función puede evaluar los cambios en el conjunto de datos subyacente y manipular los datos antes de que se almacenen en la nube y se vuelvan a sincronizar con los demás dispositivos del usuario. Sin embargo, la función de AWS Lambda también podría provocar el fallo de la operación de sincronización, de modo que los datos no se sincronicen con los demás dispositivos del usuario.

P: ¿Cómo se sincronizan los datos con Amazon Cognito?
Puede activar mediante programación la sincronización de los conjuntos de datos entre los dispositivos cliente y el almacén de sincronización de Amazon Cognito con el método de sincronización del SDK para móviles de AWS. El método de sincronización lee la versión más reciente de los datos disponible en el almacén de sincronización de Amazon Cognito y la compara con la copia guardada localmente en la memoria caché. Tras esta comparación, si procede, el método de sincronización escribe las actualizaciones recientes en el almacén de datos local y en el almacén de sincronización de Amazon Cognito. De forma predeterminada, Amazon Cognito conserva la versión más reciente de los datos. Puede cambiar la configuración para solucionar los conflictos de datos mediante programación. Además, la sincronización push le permite utilizar Amazon Cognito para enviar una notificación push silenciosa a todos los dispositivos asociados a una identidad para notificarles que hay nuevos datos disponibles.

P: ¿Qué es una notificación push silenciosa?
Amazon Cognito utiliza Amazon Simple Notification Service (SNS) para enviar notificaciones push silenciosas a dispositivos. Una notificación push silenciosa es un mensaje push que se recibe a través de su aplicación en un dispositivo de usuario que no será visualizado por el usuario.

P: ¿Cómo puedo utilizar una sincronización push?
Para habilitar la sincronización push necesita declarar una aplicación de plataforma usando la página Amazon SNS en la consola de administración de AWS. Entonces, desde la página de conjunto de identidades que se encuentra en la página Amazon Cognito de la consola de administración de AWS, puede vincular la aplicación de la plataforma SNS a su conjunto de identidades Cognito. Amazon Cognito utiliza automáticamente la aplicación de plataforma SNS para notificar los cambios a los dispositivos.

P: ¿Cómo se gestionan los conflictos durante el proceso de sincronización?
De forma predeterminada, Amazon Cognito conserva la versión más reciente de los datos. Puede cambiar la configuración y optar por responder a una devolución de llamada desde el SDK para móviles de AWS, que contendrá ambas versiones de los datos. De esta manera, la aplicación podrá decidir qué versión de los datos (la local o la guardada en el almacén de sincronización de Amazon Cognito) desea conservar en dicho almacén.

P: ¿Cuánto cuesta Cognito Identity?
Con Amazon Cognito paga únicamente por lo que usa. No se requieren pagos mínimos ni compromisos iniciales.

Si utiliza Cognito Identity para crear un conjunto de usuarios, pagará solamente en función de la cantidad de usuarios mensuales activos (MAU). Un usuario se considera MAU si en un mes se realizan operaciones de identidad relacionadas con dicho usuario, como el registro, el inicio de sesión, la actualización de tokens y el cambio de la contraseña. No se le cobra por sesiones posteriores ni por los usuarios inactivos existentes durante ese mes natural. Se aplican cargos adicionales por el uso opcional de la mensajería SMS, tal y como se describe a continuación.

La característica Your User Pool tiene una capa gratuita de 50 000 MAU por cada mes. La capa gratuita de Cognito Identity no vence al finalizar los 12 meses de uso de la capa gratuita de AWS, sino que está disponible para los clientes nuevos y existentes de AWS de forma indefinida

Las identidades federadas y el control del acceso seguro para los recursos de AWS son siempre gratuitos con Cognito Identity.

P: ¿Cuánto cuesta Cognito Sync?
El costo de la sincronización se basa en la cantidad total de datos almacenados en el almacén de sincronización de Amazon Cognito y en el número de operaciones de sincronización realizadas. Una operación de sincronización consiste en la comparación del almacén de datos local del dispositivo con el almacén de sincronización de Amazon Cognito en la nube y la sincronización de ambos.

Como parte de la capa gratuita de AWS, los clientes de AWS que cumplan los requisitos recibirán 10 GB de capacidad en almacén de sincronización en la nube y 1 000 000 de operaciones de sincronización al mes durante los primeros 12 meses. Al margen de la capa gratuita, los costos de Amazon Cognito son 0,15 USD por 10 000 operaciones de sincronización y 0,15 USD por GB de capacidad del almacén de sincronización y mes.

P: ¿Qué es una operación de sincronización?
Cada llamada al método de sincronización mediante el SDK para móviles de AWS se considera una operación de sincronización. Si llama directamente a las API de servidor, la operación de sincronización comienza cuando se emite un token de nueva sesión de sincronización y finaliza cuando se realiza correctamente una tarea de escritura o el token de la sesión vence. Tanto si utiliza el método de sincronización del SDK como si llama directamente a las API de servidor, las operaciones de sincronización se cobrarán al mismo precio.

P: ¿Qué son los usuarios mensuales activos (MAU)?
Un usuario se considera activo y, por lo tanto, MAU si en un mes de facturación se realizan operaciones relacionadas con dicho usuario, como el registro, el inicio de sesión, la actualización de tokens y el cambio de la contraseña. Por lo tanto, no se le cobra por sesiones posteriores ni por los usuarios inactivos existentes durante ese mes natural. Por lo general, el número total de usuarios y el número de operaciones serán mucho mayores que el número total de MAU.

P: ¿Cuánto cuesta utilizar mensajes SMS con Cognito?
El uso de la mensajería SMS para verificar números de teléfono, enviar códigos con contraseñas olvidadas o para restablecerlas, o para la autenticación multifactor se cobra por separado. Consulte la página Precios de SMS en todo el mundo para obtener más información.

P: ¿Amazon Cognito forma parte de la capa gratuita de AWS?
Sí. Como parte de la capa gratuita de AWS, Cognito ofrece 10 GB de capacidad de almacenamiento de sincronización y 1 000 000 de operaciones de sincronización al mes durante los primeros 12 meses de uso como máximo. Your User Pool de Cognito Identity es gratis para los primeros 50 000 MAU y, a partir de entonces, ofrecemos capas por volumen. El uso de la característica de identidades federadas para autenticar usuarios y generar identificadores únicos siempre es gratis con Cognito Identity.

P: ¿Toda tarea de escritura o lectura por parte de la aplicación se considera una operación de sincronización?
No. Usted decide cuándo llamar al método de sincronización. Todas las tareas de escritura o lectura por parte del dispositivo se realizan en el almacén SQLite local. De esta forma, puede ejercer un control total sobre los costos.

P: ¿Cuánto cuesta la sincronización push?
Cognito utiliza Amazon SNS para enviar notificaciones push silenciosas. No se aplica ningún cargo adicional por el uso de Cognito para la sincronización push, pero se aplicarán las tarifas normales de Amazon SNS para las notificaciones enviadas a dispositivos.

P: ¿Cuánto cuesta el uso de Lambda con Amazon Cognito Events?
No se aplica ningún cargo adicional por el uso de Cognito Events para activar funciones de Lambda; sin embargo, se aplicarán las tarifas normales de uso de AWS Lambda y otros servicios de AWS cuando ejecute las funciones de Lambda. Consulte la página de precios de AWS Lambda para obtener más detalles.