Exportação de registros de grupos de usuários do Amazon Cognito - Amazon Cognito

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Exportação de registros de grupos de usuários do Amazon Cognito

Você pode configurar seu grupo de usuários para enviar registros detalhados de alguma atividade adicional para outra pessoa AWS service (Serviço da AWS), como um grupo de CloudWatch registros. Esses registros têm uma granularidade mais fina do que os de dentro AWS CloudTrail e podem ser úteis para solucionar problemas do seu grupo de usuários e analisar a atividade de login do usuário com recursos avançados de segurança. Quando você quiser transmitir registros SMS e erros de notificação por e-mail, seu grupo de usuários envia registros em ERROR nível de CloudWatch registro para um grupo de registros. Quando você quiser transmitir registros da atividade de login do usuário, seu grupo de usuários envia registros em INFO nível de log para um grupo de logs, um stream do Amazon Data Firehose ou um bucket do Amazon S3. Você pode combinar as duas opções em um grupo de usuários.

Coisas que você deve saber sobre a exportação de registros

Impacto nos custos

O Amazon Data Firehose, o Amazon S3 e o Logs incorrem em custos de ingestão CloudWatch e recuperação de dados. Sua configuração de registro pode afetar sua AWS fatura. Para obter mais informações, consulte as informações a seguir.

As exportações de registros de atividades do usuário contêm avaliações de segurança e são uma função dos recursos avançados de segurança do grupo de usuários. O Amazon Cognito só gera esses registros quando recursos avançados de segurança estão ativos. Esses recursos aumentam o custo por usuário ativo mensal (MAU) em seu grupo de usuários. Para mais informações, consulte Preços do Amazon Cognito.

Entrega com o melhor esforço

A entrega de logs do Amazon Cognito é o melhor esforço. O volume de registros que seu grupo de usuários fornece e suas cotas de serviço para CloudWatch Logs, Amazon S3 e Firehose podem afetar a entrega de registros.

Os registros externos existentes não são afetados

Essas opções de registro não substituem nem alteram as seguintes funções de registro dos grupos de usuários.

  1. CloudTrail registros de atividades rotineiras do usuário, como inscrição e login.

  2. Análise da atividade do usuário em grande escala com CloudWatch métricas.

Separadamente, você também pode encontrar registros de trabalhos de importação de usuários e gatilhos Lambda em Logs. CloudWatch O Amazon Cognito e o Lambda armazenam esses logs em grupos de logs diferentes daqueles que você especifica para logs de atividades detalhados.

Aplica-se somente aos grupos de usuários

Não existem recursos de exportação de registros para grupos de identidades.

Requer permissões de usuário e função vinculada ao serviço

O AWS diretor que configura a exportação de registros deve ter permissões para modificar os recursos de destino, conforme descrito nos tópicos a seguir. O Amazon Cognito cria uma função vinculada ao serviço em seu nome e assume a função de entregar registros ao recurso de destino.

Para obter mais informações sobre o modelo de autorização para envio de registros do Amazon Cognito, consulte Habilitar o registro Serviços da AWS no Guia do usuário do Amazon CloudWatch Logs.

O nível de registro é exclusivo para o tipo de registro

Os registros de entrega de mensagens são do userNotification tipo e do nível de erro. ERROR Os registros avançados de atividades do usuário de segurança são do userAuthEvents tipo e do nível de INFO erro. Você pode combinar dois membros doLogConfigurations, um userNotification para CloudWatch Logs e outro userAuthEvents para Firehose, Amazon S3 ou Logs. CloudWatch

Você não pode enviar registros de atividades do usuário para vários destinos. Você não pode enviar registros de notificação do usuário para nenhum destino que não seja o CloudWatch Logs.

Diferentes opções de configuração

Você só pode configurar registros de notificação de usuários com os API grupos de usuários do Amazon Cognito ou um. AWS SDK Você pode configurar registros avançados de atividades de usuários de segurança com o console do Amazon Cognito API ou no console do Amazon Cognito. Para definir ambos, use o API conforme demonstrado na solicitação de exemplo em SetLogDeliveryConfiguration.

É necessária uma configuração adicional com grandes políticas baseadas em recursos

Para enviar logs a grupos de logs com uma política de recursos de tamanho maior que 5120 caracteres, configure um grupo de logs com um caminho que comece com /aws/vendedlogs. Para obter mais informações, consulte Habilitar o registro de determinados AWS serviços.

Exportação de erros de entrega de e-mails e SMS mensagens

Para erros de entrega de e-mails e SMS mensagens, você pode entregar registros de notificação de usuário em nível de erro do seu grupo de usuários. Ao ativar esse atributo, é possível escolher o grupo de logs para o qual você deseja que o Amazon Cognito envie logs. O registro de notificações do usuário é útil quando você deseja descobrir o status dos e-mails e SMS mensagens que seu grupo de usuários entregou com a Amazon SNS e a AmazonSES. Essa opção de exportação de registros, diferentemente da exportação de atividades do usuário, não requer recursos avançados de segurança.

Você pode configurar registros de notificação detalhados com os grupos de usuários do Amazon Cognito API em uma SetLogDeliveryConfigurationAPIsolicitação. Você pode visualizar a configuração de registro de um grupo de usuários em uma GetLogDeliveryConfigurationAPIsolicitação. Veja a seguir um exemplo de corpo de solicitação.

{ "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" }

Você deve autorizar essas solicitações com AWS credenciais que tenham as seguintes permissões.

{ "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" } ] }

Veja a seguir um exemplo de evento de um grupo de usuários. Esse esquema de logs está sujeito a alterações. Alguns campos podem ser registrados em log com valores nulos.

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

Exportação de registros de atividades de usuários de segurança avançada

Grupos de usuários com recursos de segurança avançados registram eventos de atividade do usuário: os detalhes e a avaliação de segurança do login e saída do usuário e de outras operações de autenticação com seu grupo de usuários. Talvez você queira revisar os registros de atividades do usuário em seu próprio sistema de gerenciamento de registros ou criar um arquivo. Você pode exportar esses dados para um grupo de CloudWatch logs do Amazon Logs, um stream do Amazon Data Firehose ou um bucket do Amazon Simple Storage Service (Amazon S3). A partir daí, você pode ingerir esses dados em outros sistemas que analisam, normalizam ou processam dados de forma a ajustá-los aos seus processos operacionais. Para exportar dados desse tipo, recursos avançados de segurança devem estar ativos em seu grupo de usuários.

Com as informações nesses registros de atividades do usuário, você pode visualizar um perfil das atividades de login e gerenciamento de contas do usuário. Por padrão, o Amazon Cognito captura esses eventos para um armazenamento baseado em seu grupo de usuários. O exemplo a seguir é um exemplo de evento para um usuário que fez login e foi avaliado como não tendo fatores de risco. Você pode recuperar essas informações com a AdminListUserAuthEvents API operação. Veja a seguir um exemplo de saída:

{ "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" }

Você pode ativar a exportação de log para a atividade do usuário no console do Amazon Cognito ou com a SetLogDeliveryConfigurationAPIoperação.

AWS Management Console
  1. Se você ainda não tem um que queira usar, crie um bucket do S3, um stream do Firehose CloudWatch ou um grupo de registros.

  2. Faça login no console do Amazon Cognito.

  3. Escolha User Pools (Grupos de usuários).

  4. Escolha um grupo de usuários existente na lista ou crie um grupo de usuários.

  5. Escolha a guia Segurança avançada. Localize Exportar registros de atividades do usuário e escolha Editar

  6. Em Status do registro, marque a caixa de seleção ao lado de Ativar exportação do registro de atividades do usuário.

  7. Em Logging destination, escolha o AWS service (Serviço da AWS) que você deseja manipular com seus registros: grupo de CloudWatch registros, stream do Amazon Data Firehose ou bucket do S3.

  8. Sua seleção preencherá o seletor de recursos com o tipo de recurso correspondente. Selecione um grupo de registros, stream ou bucket na lista. Você também pode selecionar o botão Criar para navegar até o serviço selecionado e criar um novo recurso. AWS Management Console

  9. Selecione Save Changes (Salvar alterações).

API

Escolha um tipo de destino para seus registros de atividades do usuário.

Veja a seguir um exemplo de corpo de SetLogDeliveryConfiguration solicitação que define um stream do Firehose como o destino do 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" }

Veja a seguir um exemplo de corpo de SetLogDeliveryConfiguration solicitação que define um bucket do Amazon S3 como o destino do log.

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

Veja a seguir um exemplo de corpo de SetLogDeliveryConfiguration solicitação que define um grupo de CloudWatch registros como o destino do 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" }

O usuário que configura a entrega de registros deve ser administrador do grupo de usuários e ter as seguintes permissões adicionais:

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": "*" } ] }

Veja a seguir um exemplo de evento de um grupo de usuários. Esse esquema de logs está sujeito a alterações. Alguns campos podem ser registrados em log com 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" } }