Esportazione dei log dai pool di utenti di Amazon Cognito - Amazon Cognito

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Esportazione dei log dai pool di utenti di Amazon Cognito

Puoi configurare il tuo pool di utenti per inviare registri dettagliati di alcune attività aggiuntive a un altro Servizio AWS, ad esempio un gruppo di CloudWatch log. Questi registri hanno una granularità più precisa di quelli presenti e possono essere utili per risolvere i problemi del pool di utenti e analizzare le attività di accesso degli utenti con funzionalità di sicurezza avanzate. AWS CloudTrail Quando si desidera trasmettere in streaming i log SMS e gli errori di notifica via e-mail, il pool di utenti invia i log a livello di un gruppo di log. ERROR CloudWatch Quando desideri trasmettere in streaming i log delle attività di accesso degli utenti, il tuo pool di utenti invia i log a INFO livello di un gruppo di log, uno stream Amazon Data Firehose o un bucket Amazon S3. Puoi combinare entrambe le opzioni in un pool di utenti.

Cose da sapere sull'esportazione dei log

Impatto sui costi

Amazon Data Firehose, Amazon S3 CloudWatch e Logs comportano costi per l'ingestione e il recupero dei dati. La configurazione AWS di registrazione potrebbe influire sulla fattura. Per ulteriori informazioni, consulta gli argomenti seguenti:

Le esportazioni dei registri delle attività degli utenti contengono valutazioni di sicurezza e sono una funzione delle funzionalità di sicurezza avanzate del pool di utenti. Amazon Cognito genera questi log solo quando sono attive funzionalità di sicurezza avanzate. Queste funzionalità aumentano il costo per utente attivo mensile (MAU) nel tuo pool di utenti. Per ulteriori informazioni, consultare Prezzi di Amazon Cognito.

Consegna con il massimo impegno

La consegna dei log da Amazon Cognito si basa sul miglior tentativo. Il volume di log fornito dal pool di utenti e le quote di servizio per CloudWatch Logs, Amazon S3 e Firehose possono influire sulla distribuzione dei log.

I log esterni esistenti non sono interessati

Queste opzioni di registrazione non sostituiscono o modificano le seguenti funzioni di registro dei pool di utenti.

  1. CloudTrail registri delle attività di routine degli utenti come la registrazione e l'accesso.

  2. Analisi dell'attività degli utenti su larga scala con metriche. CloudWatch

Separatamente, puoi anche trovare i log da Visualizzazione dei risultati di importazione del pool di utenti nella CloudWatch console e Personalizzazione di flussi di lavoro di bacini d'utenza con trigger Lambda in CloudWatch Logs. Amazon Cognito e Lambda archiviano questi log in gruppi di log diversi da quelli specificati per i log delle attività degli utenti.

Si applica solo ai pool di utenti

Non esistono funzionalità di esportazione dei log per i pool di identità.

Richiede le autorizzazioni dell'utente e un ruolo collegato al servizio

Il AWS responsabile che configura l'esportazione dei log deve disporre delle autorizzazioni per modificare le risorse di destinazione, come descritto negli argomenti seguenti. Amazon Cognito crea un ruolo collegato al servizio per tuo conto e si assume il ruolo di fornire i log alla risorsa di destinazione.

Per ulteriori informazioni sul modello di autorizzazione per l'invio di log da Amazon Cognito, consulta Enable logging from Servizi AWS nella CloudWatch Amazon Logs User Guide.

Il livello di registro è esclusivo del tipo di registro

I registri di recapito dei messaggi sono del userNotification tipo e del livello di errore. ERROR I registri delle attività degli utenti con protezione avanzata sono del tipo e del livello di errore. userAuthEvents INFO È possibile combinare due membri diLogConfigurations, uno per userNotification to CloudWatch Logs e uno userAuthEvents per Firehose, Amazon S3 o Logs. CloudWatch

Non puoi inviare registri delle attività degli utenti a più destinazioni. Non puoi inviare i registri delle notifiche degli utenti a destinazioni diverse dai registri. CloudWatch

Diverse opzioni di configurazione

Puoi configurare i log delle notifiche degli utenti solo con i pool di utenti API di Amazon Cognito o con un. AWS SDK Puoi configurare i registri delle attività degli utenti con la sicurezza avanzata API o nella console di Amazon Cognito. Per impostarli entrambi, usa API come illustrato nella richiesta di esempio all'indirizzo. SetLogDeliveryConfiguration

È richiesta una configurazione aggiuntiva con politiche basate su risorse di grandi dimensioni

Per inviare registri a gruppi di log con una policy delle risorse di dimensione superiore a 5120 caratteri, configura un gruppo di log con un percorso che inizia con /aws/vendedlogs. Per ulteriori informazioni, vedere Abilitazione della registrazione da determinati servizi. AWS

Esportazione degli errori di recapito di e-mail e SMS messaggi

In caso di errori di recapito di e-mail e SMS messaggi, puoi inviare registri di notifica utente a livello di errore dal tuo pool di utenti. Quando attivi questa funzionalità, puoi scegliere il gruppo di log a cui Amazon Cognito deve inviare i log. La registrazione delle notifiche degli utenti è utile quando desideri conoscere lo stato delle e-mail e dei SMS messaggi inviati dal tuo pool di utenti con Amazon SNS e AmazonSES. Questa opzione di esportazione dei log, a differenza dell'esportazione delle attività degli utenti, non richiede funzionalità di sicurezza avanzate.

Puoi configurare log di notifica dettagliati con i API pool di utenti di Amazon Cognito in SetLogDeliveryConfigurationAPIuna richiesta. Puoi visualizzare la configurazione di registrazione di un pool di utenti in una richiesta. GetLogDeliveryConfigurationAPI Di seguito è riportato un esempio di corpo della richiesta.

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

È necessario autorizzare queste richieste con AWS credenziali che dispongono delle seguenti autorizzazioni.

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

Di seguito è illustrato un evento di esempio da un pool di utenti. Questo schema di log è soggetto a modifiche. Alcuni campi potrebbero essere registrati con valori null.

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

Esportazione dei registri delle attività degli utenti con protezione avanzata

I pool di utenti con funzionalità di sicurezza avanzate registrano gli eventi delle attività degli utenti: i dettagli e la valutazione della sicurezza delle operazioni di accesso, disconnessione e altre operazioni di autenticazione degli utenti con il pool di utenti. Potresti voler esaminare i registri delle attività degli utenti nel tuo sistema di gestione dei registri o creare un archivio. Puoi esportare questi dati in un gruppo di log Amazon CloudWatch Logs, uno stream Amazon Data Firehose o un bucket Amazon Simple Storage Service (Amazon S3). Da lì, puoi importare questi dati in altri sistemi che analizzano, normalizzano o elaborano in altro modo i dati in modo da adattarli ai tuoi processi operativi. Per esportare dati di questo tipo, è necessario che nel pool di utenti siano attive funzionalità di sicurezza avanzate.

Con le informazioni contenute in questi registri delle attività degli utenti, è possibile visualizzare un profilo delle attività di accesso e gestione dell'account degli utenti. Per impostazione predefinita, Amazon Cognito acquisisce questi eventi su uno storage basato nel tuo pool di utenti. L'esempio seguente è un esempio di evento per un utente che ha effettuato l'accesso ed è stato valutato come privo di fattori di rischio. È possibile recuperare queste informazioni con l'AdminListUserAuthEventsAPIoperazione. Di seguito è riportato un esempio di 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" }

Puoi attivare l'esportazione dei log per l'attività degli utenti nella console Amazon Cognito o con l'SetLogDeliveryConfigurationAPIoperazione.

AWS Management Console
  1. Se non ne hai già uno che desideri utilizzare, crea un bucket S3, un flusso Firehose o un gruppo di log. CloudWatch

  2. Accedi alla console Amazon Cognito.

  3. Scegli User Pools (Pool di utenti).

  4. Scegli un bacino d'utenza esistente dall'elenco o creane uno nuovo.

  5. Scegli la scheda Sicurezza avanzata. Individua Esporta i registri delle attività degli utenti e scegli Modifica

  6. In Stato di registrazione, seleziona la casella di controllo accanto a Attiva l'esportazione del registro delle attività degli utenti.

  7. In Logging destination, scegli il tipo di log con Servizio AWS cui vuoi gestire i log: gruppo di CloudWatch log, flusso Amazon Data Firehose o bucket S3.

  8. La tua selezione riempirà il selettore di risorse con il tipo di risorsa corrispondente. Seleziona un gruppo di log, uno stream o un bucket dall'elenco. Puoi anche selezionare il pulsante Crea AWS Management Console per accedere al servizio selezionato e creare una nuova risorsa.

  9. Seleziona Salva modifiche.

API

Scegli un tipo di destinazione per i registri delle attività degli utenti.

Di seguito è riportato un esempio di corpo della SetLogDeliveryConfiguration richiesta che imposta un flusso Firehose come destinazione 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" }

Di seguito è riportato un esempio di corpo di SetLogDeliveryConfiguration richiesta che imposta un bucket Amazon S3 come destinazione del log.

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

Di seguito è riportato un esempio di corpo della SetLogDeliveryConfiguration richiesta che imposta un gruppo di CloudWatch log come destinazione del log.

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

L'utente che configura la consegna dei log deve essere un amministratore del pool di utenti e disporre delle seguenti autorizzazioni aggiuntive:

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

Di seguito è illustrato un evento di esempio da un pool di utenti. Questo schema di log è soggetto a modifiche. Alcuni campi potrebbero essere registrati con valori null.

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