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 Si desea transmitir los registros SMS y los errores en las notificaciones por correo electrónico, su grupo de usuarios envía los registros de ERROR nivel a un grupo de registros. CloudWatch Cuando desee transmitir los registros de la actividad de inicio de sesión de los usuarios, su grupo de usuarios envía los registros INFO de nivel a un grupo de registros, a una transmisión de Amazon Data Firehose o a un bucket de Amazon S3. Puede combinar ambas opciones en un grupo de usuarios.

Lo que debe saber sobre la exportación de registros

Impacto en los costos

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 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 funciones de seguridad avanzadas del grupo de usuarios. Amazon Cognito solo genera estos registros cuando las funciones de seguridad avanzadas están activas. Estas funciones aumentan el costo por usuario activo mensual (MAU) de su grupo de usuarios. Para obtener más información, consulte Precios de Amazon Cognito.

Entrega con el mejor esfuerzo

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 sustituyen 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 puede encontrar los registros de los trabajos de importación de usuarios y los activadores de Lambda en CloudWatch los registros. Amazon Cognito y Lambda almacenan estos registros en grupos de registros diferentes de los que especifica para obtener registros de actividad detallados.

Se aplica solo a los grupos de usuarios

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

Requiere permisos de usuario y un rol vinculado al servicio

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 una función vinculada a un servicio en su nombre y asume la función 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 userNotification tipo y del nivel de ERROR error. Los registros de actividad de los usuarios de seguridad avanzada son del userAuthEvents tipo 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 puedes enviar los registros de actividad de los usuarios a varios destinos. No puedes enviar los registros de notificaciones de los usuarios a ningún otro destino que CloudWatch no sea Logs.

Diferentes opciones de configuración

Solo puede configurar los registros de notificaciones a los usuarios con los API grupos de usuarios de Amazon Cognito o con un. AWS SDK Puede configurar los registros de actividad de los usuarios de seguridad avanzada con API o en la consola de Amazon Cognito. Para configurar ambos, utilice los valores que API se muestran en la solicitud de ejemplo en. SetLogDeliveryConfiguration

Las políticas basadas en recursos de gran tamaño requieren una configuración adicional

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, consulte Habilitar el registro desde determinados AWS servicios.

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

En el caso de los errores en la entrega de correos electrónicos y SMS mensajes, puede enviar los registros de notificaciones de usuario a nivel de error de su 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 usuario es útil cuando quieres saber el estado de los correos electrónicos y SMS los mensajes que tu grupo de usuarios ha entregado con Amazon SNS y AmazonSES. Esta opción de exportación de registros, a diferencia de la exportación de la actividad de los usuarios, no requiere funciones de seguridad avanzadas.

Puede configurar registros de notificaciones detallados con los grupos de usuarios de Amazon Cognito API en una SetLogDeliveryConfigurationAPIsolicitud. Puede ver la configuración de registro de un grupo de usuarios en una GetLogDeliveryConfigurationAPIsolicitud. A continuación se muestra un ejemplo del cuerpo de la 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 los registros de actividad de los usuarios de seguridad avanzada

Los grupos de usuarios con funciones de seguridad avanzadas 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 sus procesos operativos. Para exportar datos de este tipo, 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 es un ejemplo de un evento para un usuario que inició sesión y se evaluó que no tenía factores de riesgo. Puede recuperar esta información con la AdminListUserAuthEvents API operación. El siguiente es un ejemplo de salida:

{ "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 de la actividad de los usuarios en la consola de Amazon Cognito o mediante la SetLogDeliveryConfigurationAPIoperación.

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 CloudWatch registros.

  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. Selecciona la pestaña Seguridad avanzada. Busca Exportar registros de actividad de los usuarios y selecciona Editar

  6. En Estado de registro, selecciona 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. Su selección rellenará el selector de recursos con el tipo de recurso correspondiente. Seleccione un grupo de registros, un flujo o un depósito de la lista. También puede seleccionar el botón Crear AWS Management Console para ir al 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 del cuerpo de una SetLogDeliveryConfiguration solicitud que establece una transmisión 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 del cuerpo de una SetLogDeliveryConfiguration solicitud que establece un bucket de Amazon S3 como destino del registro.

{ "LogConfigurations": [ { "EventSource": "userAuthEvents", "S3Configuration": { "BucketArn": "arn:aws:s3:::DOC-EXAMPLE-LOGGING-BUCKET" }, "LogLevel": "INFO" } ], "UserPoolId": "us-west-2_EXAMPLE" }

El siguiente es un ejemplo del cuerpo de la SetLogDeliveryConfiguration solicitud que establece un grupo de CloudWatch 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" } }