View a markdown version of this page

Exportation de journaux depuis des groupes d'utilisateurs Amazon Cognito - Amazon Cognito

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Exportation de journaux depuis des groupes d'utilisateurs Amazon Cognito

Vous pouvez configurer votre groupe d'utilisateurs pour envoyer des journaux détaillés de certaines activités supplémentaires à un autre utilisateur Service AWS, comme un groupe de CloudWatch journaux. Ces journaux sont d'une granularité plus fine que ceux disponibles dans AWS CloudTrail, et peuvent être utiles pour dépanner votre groupe d'utilisateurs et analyser l'activité de connexion des utilisateurs avec une protection contre les menaces. Sécurité avancée avec protection contre les menaces Lorsque vous souhaitez diffuser des journaux contenant des erreurs de notification par SMS et par e-mail, votre groupe d'utilisateurs envoie des journaux de ERROR niveau à un groupe de CloudWatch journaux. Lorsque vous souhaitez diffuser les journaux des activités de connexion des utilisateurs, votre groupe d'utilisateurs envoie des journaux de INFO niveau à un groupe de journaux, à un flux Amazon Data Firehose ou à un compartiment Amazon S3. Vous pouvez combiner les deux options dans un groupe d'utilisateurs.

Ce qu'il faut savoir sur l'exportation des journaux

Impact sur les coûts

Amazon Data Firehose, Amazon S3 et CloudWatch Logs entraînent des coûts liés à l'ingestion et à la récupération des données. Votre configuration de journalisation peut avoir une incidence sur votre AWS facture. Pour plus d’informations, consultez les ressources suivantes :

User-activity les exportations de journaux contiennent des évaluations de sécurité et sont une fonction de protection contre les menaces du pool d'utilisateurs. Amazon Cognito génère ces journaux uniquement lorsque la protection contre les menaces est activée Audit-only ou en Full-function mode et que votre groupe d'utilisateurs bénéficie du plan de fonctionnalités Plus.

Les journaux d'activité des utilisateurs sont INFO de niveau

Les journaux d'activité des utilisateurs exportés ne concernent que le niveau INFO d'erreur et fournissent des informations pour l'analyse statistique et de sécurité de l'activité d'authentification. Les messages aux niveaux ERROR d'erreur WARNING et, par exemple les erreurs de limitation, ne sont pas inclus dans les journaux exportés.

Best-effort livraison

L’envoi des journaux depuis Amazon Cognito est la meilleure solution. Le volume de journaux que votre groupe d'utilisateurs fournit et vos quotas de service pour CloudWatch Logs, Amazon S3 et Firehose peuvent affecter la diffusion des journaux.

Les journaux externes existants ne sont pas affectés

Ces options de journalisation ne remplacent ni ne modifient les fonctions de journalisation suivantes des groupes d'utilisateurs.

  1. CloudTrail journaux des activités de routine des utilisateurs, telles que l'inscription et la connexion.

  2. Analyse de l'activité des utilisateurs à grande échelle à l'aide de CloudWatch métriques.

Séparément, vous pouvez également trouver les journaux depuis Affichage des résultats de l'importation du groupe d'utilisateurs dans la CloudWatch console et Personnalisation des flux de travail de groupe d'utilisateurs avec des déclencheurs Lambda dans CloudWatch les journaux. Amazon Cognito et Lambda stockent ces journaux dans des groupes de journaux différents de ceux que vous spécifiez pour les journaux d'activité des utilisateurs.

S'applique uniquement aux groupes d'utilisateurs

Aucune fonctionnalité d'exportation de journaux n'existe pour les pools d'identités.

Nécessite des autorisations utilisateur et un rôle lié au service

Le AWS principal qui configure l'exportation des journaux doit être autorisé à modifier les ressources cibles, comme décrit dans les rubriques qui suivent. Amazon Cognito crée un rôle lié à un service en votre nom et assume le rôle de transmettre les journaux à la ressource cible.

Pour plus d'informations sur le modèle d'autorisation pour l'envoi de journaux depuis Amazon Cognito, consultez la section Activer la journalisation depuis Services AWS le guide de l'utilisateur Amazon CloudWatch Logs.

Le niveau de journalisation est exclusif au type de journal

Message-delivery les journaux sont du userNotification type et du niveau d'ERRORerreur. Les journaux d'activité des utilisateurs de sécurité avancée sont du userAuthEvents type et du niveau d'INFOerreur. Vous pouvez combiner deux membres deLogConfigurations, l'un userNotification pour les deux CloudWatch journaux et l'autre userAuthEvents pour Firehose, Amazon S3 ou CloudWatch Logs.

Vous ne pouvez pas envoyer les journaux d'activité des utilisateurs vers plusieurs destinations. Vous ne pouvez pas envoyer les journaux de notifications des utilisateurs vers une destination autre que CloudWatch Logs.

Différentes options de configuration

Vous ne pouvez configurer les journaux de notifications des utilisateurs qu'à l'aide de l'API des groupes d'utilisateurs Amazon Cognito ou d'un AWS SDK. Vous pouvez configurer des journaux d'activité utilisateur de sécurité avancés à l'aide de l'API ou de la console Amazon Cognito. Pour définir les deux, utilisez l'API comme illustré dans l'exemple de requête à l'adresse SetLogDeliveryConfiguration.

Configuration supplémentaire requise avec des politiques basées sur des ressources importantes

Pour envoyer des journaux à des groupes de journaux dont la taille de la politique de ressources est supérieure à 5 120 caractères, configurez un groupe de journaux avec un chemin commençant par /aws/vendedlogs. Pour plus d'informations, consultez la section Activation de la journalisation à partir de certains AWS services.

Création automatique d'un dossier dans Amazon S3

Lorsque vous configurez l'exportation du journal de protection contre les menaces vers un compartiment Amazon S3, Amazon Cognito peut créer un AWSLogs dossier dans votre compartiment. Ce dossier n'est pas créé dans tous les cas et la configuration peut réussir sans le créer.

Exportation des erreurs de livraison de messages électroniques et de SMS

Pour les erreurs de remise des e-mails et des SMS, vous pouvez envoyer des journaux de notifications utilisateur de niveau erreur à partir de votre groupe d'utilisateurs. Lorsque vous activez cette fonctionnalité, vous pouvez choisir le groupe de journaux auquel vous souhaitez qu’Amazon Cognito envoie les journaux. L'enregistrement des notifications utilisateur est utile lorsque vous souhaitez connaître l'état des e-mails et des SMS envoyés par votre groupe d'utilisateurs via Amazon SNS et Amazon SES. Contrairement à l'exportation des activités des utilisateurs, cette option d'exportation du journal ne nécessite pas le plan de fonctionnalités Plus.

Vous pouvez configurer des journaux de notifications détaillés avec l'API des groupes d'utilisateurs Amazon Cognito dans une demande d'SetLogDeliveryConfigurationAPI. Vous pouvez consulter la configuration de journalisation d'un groupe d'utilisateurs dans une demande d'GetLogDeliveryConfigurationAPI. Voici un exemple de corps de requête.

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

Vous devez autoriser ces demandes à l'aide AWS d'informations d'identification dotées des autorisations suivantes.

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

Voici un exemple d’événement dans un groupe d’utilisateurs. Ce schéma de journal est soumis à modification. Certains champs peuvent être consignés avec des valeurs nulles.

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

Exportation des journaux d’activité des utilisateurs pour la protection contre les menaces

Les groupes d'utilisateurs dotés du plan de fonctionnalités Plus et de la protection contre les menaces enregistrent les événements d'activité des utilisateurs : détails et évaluation de la sécurité des connexions, des déconnexions et des autres opérations d'authentification des utilisateurs avec votre groupe d'utilisateurs. Vous souhaiterez peut-être consulter les journaux d'activité des utilisateurs dans votre propre système de gestion des journaux ou créer une archive. Vous pouvez exporter ces données vers un groupe de CloudWatch journaux Amazon Logs, un flux Amazon Data Firehose ou un compartiment Amazon Simple Storage Service (Amazon S3). À partir de là, vous pouvez ingérer ces données dans d'autres systèmes qui analysent, normalisent ou traitent les données de manière à les intégrer à vos processus opérationnels. Pour exporter des données de ce type, votre groupe d'utilisateurs doit bénéficier du plan de fonctionnalités Plus et la protection contre les menaces doit être active dans votre groupe d'utilisateurs.

Grâce aux informations contenues dans ces journaux d'activité des utilisateurs, vous pouvez consulter un profil des activités de connexion et de gestion de compte des utilisateurs. Par défaut, Amazon Cognito capture ces événements dans un espace de stockage basé sur votre groupe d'utilisateurs. L'exemple suivant est un exemple d'événement pour un utilisateur qui s'est connecté et qui a été évalué comme ne présentant aucun facteur de risque. Vous pouvez récupérer ces informations à l'aide de l'opération AdminListUserAuthEvents API. Voici un exemple de résultat :

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

Vous pouvez activer l'exportation des journaux relatifs à l'activité des utilisateurs dans la console Amazon Cognito ou à l'aide de l'SetLogDeliveryConfigurationAPI.

Console de gestion AWS
  1. Si vous n'en avez pas encore un que vous souhaitez utiliser, créez un bucket S3, un flux https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html Firehose ou un groupe de CloudWatch journaux.

  2. Connectez-vous à la console Amazon Cognito.

  3. Choisissez Groupes d’utilisateurs.

  4. Choisissez un groupe d’utilisateurs existant dans la liste ou créez-en un.

  5. Choisissez l'onglet Sécurité avancée. Localisez Exporter les journaux d'activité des utilisateurs et choisissez Modifier

  6. Sous État de journalisation, cochez la case à côté de Activer l'exportation du journal d'activité des utilisateurs.

  7. Sous Destination de journalisation, choisissez Service AWS celui que vous souhaitez gérer pour vos CloudWatch journaux : groupe de journaux , flux Amazon Data Firehose ou compartiment S3.

  8. Votre sélection remplira le sélecteur de ressources avec le type de ressource correspondant. Sélectionnez un groupe de journaux, un flux ou un bucket dans la liste. Vous pouvez également sélectionner le bouton Créer Console de gestion AWS pour accéder au service sélectionné et créer une nouvelle ressource.

  9. Cliquez sur Enregistrer les modifications.

API

Choisissez un type de destination pour les journaux d'activité de vos utilisateurs.

Voici un exemple de corps de SetLogDeliveryConfiguration requête qui définit un flux Firehose comme destination du journal.

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

Voici un exemple de corps de SetLogDeliveryConfiguration requête qui définit un compartiment Amazon S3 comme destination du journal.

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

Voici un exemple de corps de SetLogDeliveryConfiguration requête qui définit un groupe de CloudWatch journaux comme destination du journal.

{ "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'utilisateur qui configure la remise des journaux doit être un administrateur du groupe d'utilisateurs et disposer des autorisations supplémentaires suivantes :

Amazon S3
JSON
JSON
{ "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
JSON
JSON
{ "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
JSON
JSON
{ "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": "*" } ] }

Voici un exemple d’événement dans un groupe d’utilisateurs. Ce schéma de journal est soumis à modification. Certains champs peuvent être consignés avec des valeurs nulles.

{ "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": "", "hasContextData": "true" }, "logSourceId": { "userPoolId": "us-west-2_EXAMPLE" } }