Exportación de registros de grupos de usuarios de Amazon Cognito - Amazon Cognito

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Exportación de registros de grupos de usuarios de Amazon Cognito

Puede configurar su grupo de usuarios para enviar registros detallados de alguna actividad adicional a otro Servicio de AWS, como un grupo de CloudWatch registros. Estos registros son de una granularidad más precisa que los de los registros y pueden resultar útiles para solucionar problemas del grupo de usuarios y analizar la actividad de inicio de sesión de los usuarios con funciones de seguridad avanzadas. AWS CloudTrail Cuando desee transmitir registros de errores en las notificaciones por SMS y correo electrónico, su grupo de usuarios envía los registros de ERROR nivel a un grupo de registros. CloudWatch Cuando desee transmitir registros de la actividad de inicio de sesión de los usuarios, el grupo de usuarios envía los registros de nivel INFO a un grupo de registro, a un flujo de Amazon Data Firehose o a un bucket de Amazon S3. Puede combinar ambas opciones en un grupo de usuarios.

Cosas que debe saber sobre la exportación de archivos de registro

Impacto del costo

Amazon Data Firehose, Amazon S3 y CloudWatch Logs conllevan costes por la ingesta y recuperación de datos. La configuración de registro puede afectar a su factura. AWS Para obtener más información, consulte los siguientes temas:

Las exportaciones de los registros de actividad de los usuarios contienen evaluaciones de seguridad y son una función de las características de seguridad avanzada del grupo de usuarios. Amazon Cognito solo genera estos registros cuando las características de seguridad avanzada están activas. Estas características aumentan el costo por usuario activo mensual (MAU) del grupo de usuarios. Para obtener más información, consulte Precios de Amazon Cognito.

Los registros de actividad de los usuarios están nivelados INFO

Los registros de actividad de los usuarios exportados solo tienen el nivel de INFO error y proporcionan información para el análisis estadístico y de seguridad de la actividad de autenticación. Los mensajes con WARNING los niveles de ERROR error, como los errores de regulación, no se incluyen en los registros exportados.

Entrega óptima

La entrega de registros desde Amazon Cognito es el mejor esfuerzo. El volumen de registros que entrega su grupo de usuarios y sus cuotas de servicio para CloudWatch Logs, Amazon S3 y Firehose pueden afectar a la entrega de registros.

Los registros externos existentes no se ven afectados

Estas opciones de registro no reemplazan ni cambian las siguientes funciones de registro de los grupos de usuarios.

  1. CloudTrail registros de la actividad rutinaria de los usuarios, como el registro y el inicio de sesión.

  2. Análisis de la actividad de los usuarios a escala con CloudWatch métricas.

Por separado, también puedes buscar los registros de Ver los resultados de importación del grupo de usuarios en la CloudWatch consola y dentro de Personalización de flujos de trabajo de grupos de usuarios con desencadenadores de Lambda los CloudWatch registros. Amazon Cognito y Lambda almacenan estos registros en grupos de registros diferentes de los que especifica para obtener registros de actividad de usuarios.

Solo se aplica a los grupos de usuarios

No existen capacidades de exportación de registros para los grupos de identidades.

Se requieren permisos de usuario y un rol vinculado a servicios

El AWS director que configura la exportación de registros debe tener permisos para modificar los recursos de destino, como se describe en los temas siguientes. Amazon Cognito crea un rol vinculado a servicios en su lugar y asume el rol de entregar los registros al recurso de destino.

Para obtener más información sobre el modelo de autorización para enviar registros desde Amazon Cognito, consulte Habilitar el registro desde Servicios de AWS en la Guía del usuario de Amazon CloudWatch Logs.

El nivel de registro es exclusivo del tipo de registro

Los registros de entrega de mensajes son del tipo userNotification y del nivel de error ERROR. Los registros de actividad de los usuarios de seguridad avanzada son del tipo userAuthEvents y del nivel de error INFO. Puede combinar dos miembros deLogConfigurations, uno para userNotification To CloudWatch Logs y otro userAuthEvents para Firehose, Amazon S3 o CloudWatch Logs.

No puede enviar los registros de actividad de los usuarios a varios destinos. No puedes enviar los registros de notificaciones a los usuarios a ningún otro destino que CloudWatch no sea Logs.

Opciones de configuración diferentes

Solo puede configurar registros de notificación de usuario con la API de grupos de usuarios de Amazon Cognito o un AWS SDK. Puede configurar registros de actividad de usuario de seguridad avanzada con la API o en la consola de Amazon Cognito. Para configurar ambos, usa la API como se muestra en la solicitud de ejemplo en SetLogDeliveryConfiguration.

Se requiere configuración adicional con políticas de recursos de gran tamaño

Para enviar registros a grupos de registros con una política de recursos de un tamaño superior a 5120 caracteres, configure un grupo de registros con una ruta que comience por /aws/vendedlogs. Para obtener más información, consulta Cómo habilitar el registro desde determinados AWS servicios.

Creación automática de una carpeta en Amazon S3

Al configurar la exportación del registro de protección contra amenazas a un bucket de Amazon S3, Amazon Cognito puede crear una AWSLogs carpeta en el bucket. Esa carpeta no se crea en todos los casos y la configuración se puede realizar correctamente sin crearla.

Errores de exportación de correos electrónicos y mensajes SMS

En el caso de que se produzcan errores de entrega de mensajes de correo electrónico y SMS, puede entregar registros de notificación de usuario de nivel Error del grupo de usuarios. Al activar esta característica, puede elegir el grupo de registros al que desea que Amazon Cognito envíe los registros. El registro de notificaciones de los usuarios es útil cuando desea conocer el estado de los mensajes de correo electrónico y SMS que el grupo de usuarios ha entregado con Amazon SNS y Amazon SES. Esta opción de exportación de registros, a diferencia de la exportación de la actividad del usuario, no requiere el plan de funciones Plus.

Puede configurar registros de notificaciones detallados con la API de grupos de usuarios de Amazon Cognito en una solicitud de SetLogDeliveryConfigurationAPI. Puede ver la configuración de registro de un grupo de usuarios en una solicitud de GetLogDeliveryConfigurationAPI. A continuación, se muestra un ejemplo de cuerpo de solicitud.

{ "LogConfigurations": [ { "CloudWatchLogsConfiguration": { "LogGroupArn": "arn:aws:logs:us-west-2:123456789012:log-group:example-user-pool-exported" }, "EventSource": "userNotification", "LogLevel": "ERROR" } ], "UserPoolId": "us-west-2_EXAMPLE" }

Debe autorizar estas solicitudes con AWS credenciales que tengan los siguientes permisos.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ManageUserPoolLogs", "Action": [ "cognito-idp:SetLogDeliveryConfiguration", "cognito-idp:GetLogDeliveryConfiguration" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid": "CognitoLog", "Action": [ "logs:CreateLogDelivery", "logs:GetLogDelivery", "logs:UpdateLogDelivery", "logs:DeleteLogDelivery", "logs:ListLogDeliveries" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid": "CognitoLoggingCWL", "Action": [ "logs:PutResourcePolicy", "logs:DescribeResourcePolicies", "logs:DescribeLogGroups" ], "Resource": [ "*" ], "Effect": "Allow" } ] }

A continuación, se muestra un evento de ejemplo de un grupo de usuarios. Este esquema de registro está sujeto a cambios. Es posible que algunos campos se registren con valores nulos.

{ "eventTimestamp": "1687297330677", "eventSource": "USER_NOTIFICATION", "logLevel": "ERROR", "message": { "details": "String" }, "logSourceId": { "userPoolId": "String" } }

Exportación de registros de actividad de los usuarios relacionados con la protección

Los grupos de usuarios con el plan de funciones Plus y la protección contra amenazas registran los eventos de actividad de los usuarios: los detalles y la evaluación de seguridad del inicio y cierre de sesión de los usuarios y otras operaciones de autenticación con su grupo de usuarios. Es posible que desee revisar los registros de actividad de los usuarios en su propio sistema de administración de registros o crear un archivo. Puede exportar estos datos a un grupo de CloudWatch registros de Amazon Logs, a una transmisión de Amazon Data Firehose o a un bucket de Amazon Simple Storage Service (Amazon S3). A partir de ahí, puede incorporar estos datos a otros sistemas que analicen, normalicen o procesen los datos de forma que se adapten a los procesos operativos. Para exportar datos de este tipo, su grupo de usuarios debe estar en el plan de características Plus y las funciones de seguridad avanzadas deben estar activas en su grupo de usuarios.

Con la información de estos registros de actividad de los usuarios, puede ver un perfil de las actividades de inicio de sesión y administración de cuentas de los usuarios. De forma predeterminada, Amazon Cognito captura estos eventos en el almacenamiento que se encuentra en su grupo de usuarios. El siguiente ejemplo muestra un evento de un usuario que ha iniciado sesión y se ha evaluado que no tenía factores de riesgo. Puede recuperar esta información con la operación de la API AdminListUserAuthEvents. El siguiente es un ejemplo de output:

{ "AuthEvents": [ { "EventId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "EventType": "SignIn", "CreationDate": "2024-06-27T10:49:59.139000-07:00", "EventResponse": "Pass", "EventRisk": { "RiskDecision": "NoRisk", "CompromisedCredentialsDetected": false }, "ChallengeResponses": [ { "ChallengeName": "Password", "ChallengeResponse": "Success" } ], "EventContextData": { "IpAddress": "192.0.2.1", "DeviceName": "Chrome 126, Windows 10", "Timezone": "-07:00", "City": "null", "Country": "United States" } } ], "NextToken": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222#2024-06-27T17:49:59.139Z" }

Puede activar la exportación de registros para la actividad de los usuarios en la consola de Amazon Cognito o mediante la operación de SetLogDeliveryConfigurationAPI.

AWS Management Console
  1. Si aún no tienes uno que quieras usar, crea un bucket de S3, una transmisión Firehose o un grupo de CloudWatchregistros.

  2. Inicie sesión en la consola de Amazon Cognito.

  3. Elija User Pools (Grupos de usuarios).

  4. Elija un grupo de usuarios existente en la lista o cree un grupo de usuarios.

  5. Seleccione la pestaña Seguridad avanzada. Busque Exportar registros de actividad de los usuarios y seleccione Editar.

  6. En Estado de registro, seleccione la casilla de verificación situada junto a Activar la exportación del registro de actividad del usuario.

  7. En Destino del registro, elige el Servicio de AWS que quieres que gestione tus registros: grupo de CloudWatch registros, transmisión de Amazon Data Firehose o bucket de S3.

  8. La opción que elija rellenará el selector de recursos con el tipo de recurso correspondiente. Seleccione un grupo de registro, un flujo o un bucket de la lista. También puede seleccionar el botón Crear para ir al AWS Management Console servicio seleccionado y crear un recurso nuevo.

  9. Seleccione Guardar cambios.

API

Elija un tipo de destino para los registros de actividad de los usuarios.

A continuación se muestra un ejemplo de cuerpo de solicitud SetLogDeliveryConfiguration que establece un flujo de Firehose como destino del registro.

{ "LogConfigurations": [ { "EventSource": "userAuthEvents", "FirehoseConfiguration": { "StreamArn": "arn:aws:firehose:us-west-2:123456789012:deliverystream/example-user-pool-activity-exported" }, "LogLevel": "INFO" } ], "UserPoolId": "us-west-2_EXAMPLE" }

A continuación se muestra un ejemplo de cuerpo de solicitud SetLogDeliveryConfiguration que establece un bucket de Amazon S3 como destino del registro.

{ "LogConfigurations": [ { "EventSource": "userAuthEvents", "S3Configuration": { "BucketArn": "arn:aws:s3:::amzn-s3-demo-logging-bucket" }, "LogLevel": "INFO" } ], "UserPoolId": "us-west-2_EXAMPLE" }

A continuación se muestra un ejemplo del cuerpo de una SetLogDeliveryConfiguration solicitud que establece un CloudWatch grupo de registros como destino del registro.

{ "LogConfigurations": [ { "EventSource": "userAuthEvents", "CloudWatchLogsConfiguration": { "LogGroupArn": "arn:aws:logs:us-west-2:123456789012:log-group:DOC-EXAMPLE-LOG-GROUP" }, "LogLevel": "INFO" } ], "UserPoolId": "us-west-2_EXAMPLE" }

El usuario que configura la entrega de registros debe ser administrador de un grupo de usuarios y tener los siguientes permisos adicionales:

Amazon S3
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ManageUserPoolLogs", "Action": [ "cognito-idp:SetLogDeliveryConfiguration", "cognito-idp:GetLogDeliveryConfiguration", ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid": "ManageLogsS3", "Effect": "Allow", "Action": [ "logs:CreateLogDelivery", "s3:PutBucketPolicy", "s3:GetBucketPolicy" ], "Resource": "*" } ] }
CloudWatch Logs
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ManageUserPoolLogs", "Action": [ "cognito-idp:SetLogDeliveryConfiguration", "cognito-idp:GetLogDeliveryConfiguration", ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid": "ManageLogsCWL", "Action": [ "logs:CreateLogDelivery", "logs:GetLogDelivery", "logs:UpdateLogDelivery", "logs:DeleteLogDelivery", "logs:ListLogDeliveries", "logs:PutResourcePolicy", "logs:DescribeResourcePolicies", "logs:DescribeLogGroups" ], "Resource": [ "*" ], "Effect": "Allow" } ] }
Amazon Data Firehose
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ManageUserPoolLogs", "Action": [ "cognito-idp:SetLogDeliveryConfiguration", "cognito-idp:GetLogDeliveryConfiguration", ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid": "ManageUserPoolLogsFirehose", "Effect": "Allow", "Action": [ "logs:CreateLogDelivery", "iam:CreateServiceLinkedRole", "firehose:TagDeliveryStream" ], "Resource": "*" } ] }

A continuación, se muestra un evento de ejemplo de un grupo de usuarios. Este esquema de registro está sujeto a cambios. Es posible que algunos campos se registren con valores nulos.

{ "eventTimestamp": "1687297330677", "eventSource": "USER_ACTIVITY", "logLevel": "INFO", "message": { "version": "1", "eventId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "eventType": "SignUp", "userSub": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "userName": "test-user", "userPoolId": "us-west-2_EXAMPLE", "clientId": "1example23456789", "creationDate": "Wed Jul 17 17:25:55 UTC 2024", "eventResponse": "InProgress", "riskLevel": "", "riskDecision": "PASS", "challenges": [], "deviceName": "Other, Other", "ipAddress": "192.0.2.1", "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE33333", "idpName": "", "compromisedCredentialDetected": "false", "city": "Seattle", "country": "United States", "eventFeedbackValue": "", "eventFeedbackDate": "", "eventFeedbackProvider": "" }, "logSourceId": { "userPoolId": "us-west-2_EXAMPLE" } }