View a markdown version of this page

Exportieren von Protokollen aus Amazon Cognito-Benutzerpools - Amazon Cognito

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Exportieren von Protokollen aus Amazon Cognito-Benutzerpools

Sie können Ihren Benutzerpool so konfigurieren, dass detaillierte Protokolle zusätzlicher Aktivitäten an einen anderen gesendet werden AWS-Service, z. B. an eine CloudWatch Protokollgruppe. Diese Protokolle haben eine feinere Granularität als die in und können bei der Problembehandlung in AWS CloudTrail Ihrem Benutzerpool und bei der Analyse der Benutzeranmeldeaktivitäten mit Bedrohungsschutz hilfreich sein. Erweiterte Sicherheit mit Bedrohungsschutz Wenn Sie Protokolle von SMS- und E-Mail-Benachrichtigungsfehlern streamen möchten, sendet Ihr Benutzerpool Protokolle ERROR auf -Ebene an eine Protokollgruppe. CloudWatch Wenn Sie Protokolle der Benutzeranmeldeaktivitäten streamen möchten, sendet Ihr Benutzerpool Protokolle INFO auf -Ebene an eine Protokollgruppe, einen Amazon Data Firehose-Stream oder einen Amazon S3-Bucket. Sie können beide Optionen in einem Benutzerpool kombinieren.

Wissenswertes über den Protokollexport

Auswirkungen auf die Kosten

Bei Amazon Data Firehose, Amazon S3 und CloudWatch Logs fallen Kosten für das Erfassen und Abrufen von Daten an. Ihre Protokollierungskonfiguration könnte sich auf Ihre Rechnung auswirken. AWS Weitere Informationen finden Sie hier:

User-activity Protokollexporte enthalten Sicherheitsbewertungen und sind eine Funktion des Schutzes vor Erweiterte Sicherheit mit Bedrohungsschutz Bedrohungen durch Benutzerpools. Amazon Cognito generiert diese Protokolle nur, wenn der Bedrohungsschutz im Full-function Modus Audit-only oder aktiviert ist und Ihr Benutzerpool den Plus-Funktionsplan nutzt.

Die Protokolle der Benutzeraktivitäten sind ebenbürtig INFO

Exportierte Benutzeraktivitätsprotokolle beziehen sich nur auf die INFO Fehlerebene und bieten Informationen für statistische und Sicherheitsanalysen der Authentifizierungsaktivitäten. Meldungen der Stufen WARNING und ERROR Fehler, z. B. Drosselungsfehler, sind in den exportierten Protokollen nicht enthalten.

Best-effort Lieferung

Die Bereitstellung von Protokollen von Amazon Cognito ist das optimale Szenario. Das Volumen der Protokolle, die Ihr Benutzerpool bereitstellt, und Ihre Servicekontingente für CloudWatch Logs, Amazon S3 und Firehose können sich auf die Bereitstellung von Protokollen auswirken.

Bestehende externe Protokolle sind nicht betroffen

Diese Protokollierungsoptionen ersetzen oder ändern die folgenden Protokollfunktionen von Benutzerpools nicht.

  1. CloudTrail Protokolle routinemäßiger Benutzeraktivitäten wie Registrierung und Anmeldung.

  2. Analyse der Benutzeraktivitäten im großen Maßstab mit CloudWatch Metriken.

Separat finden Sie auch Protokolle von Anzeige der Importergebnisse des Benutzerpools in der CloudWatch Konsole und Anpassen von Benutzerpool-Workflows mit Lambda-Auslösern in CloudWatch Logs. Amazon Cognito und Lambda speichern diese Protokolle in anderen Protokollgruppen als denen, die Sie für Benutzeraktivitätsprotokolle angeben.

Gilt nur für Benutzerpools

Für Identitätspools gibt es keine Protokollexportfunktionen.

Erfordert Benutzerberechtigungen und eine dienstgebundene Rolle

Der AWS Prinzipal, der den Protokollexport einrichtet, muss über Berechtigungen zum Ändern der Zielressourcen verfügen, wie in den folgenden Themen beschrieben. Amazon Cognito erstellt in Ihrem Namen eine serviceverknüpfte Rolle und übernimmt die Aufgabe, Protokolle an die Zielressource zu übermitteln.

Weitere Informationen zum Autorisierungsmodell für das Senden von Protokollen von Amazon Cognito finden Sie AWS-Services im Amazon CloudWatch Logs-Benutzerhandbuch unter Protokollierung aktivieren.

Die Protokollebene ist ausschließlich für den Protokolltyp gültig

Message-delivery Die Protokolle sind vom userNotification Typ und vom ERROR Fehlerlevel. Die Benutzeraktivitätsprotokolle für erweiterte Sicherheit sind vom userAuthEvents Typ und der INFO Fehlerstufe. Sie können zwei Elemente kombinierenLogConfigurations, eines für userNotification CloudWatch Logs und eines für userAuthEvents Firehose, Amazon S3 oder CloudWatch Logs.

Sie können Benutzeraktivitätsprotokolle nicht an mehrere Ziele senden. Sie können keine Benutzerbenachrichtigungsprotokolle an ein anderes Ziel als CloudWatch Logs senden.

Verschiedene Konfigurationsoptionen

Sie können Benutzerbenachrichtigungsprotokolle nur mit der Amazon Cognito-Benutzerpool-API oder einem AWS SDK konfigurieren. Sie können erweiterte Sicherheitsprotokolle für Benutzeraktivitäten mit der API oder in der Amazon Cognito-Konsole konfigurieren. Um beide festzulegen, verwenden Sie die API, wie in der Beispielanfrage unter gezeigt. SetLogDeliveryConfiguration

Bei umfangreichen ressourcenbasierten Richtlinien ist eine zusätzliche Konfiguration erforderlich

Um Protokolle an Protokollgruppen mit einer Ressourcenrichtlinie mit einer Größe von mehr als 5 120 Zeichen zu senden, konfigurieren Sie eine Protokollgruppe mit einem Pfad, der mit /aws/vendedlogs beginnt. Weitere Informationen finden Sie unter Aktivieren der Protokollierung für bestimmte Dienste. AWS

Automatische Erstellung eines Ordners in Amazon S3

Wenn Sie den Export von Bedrohungsschutzprotokollen in einen Amazon S3-Bucket konfigurieren, erstellt Amazon Cognito möglicherweise einen AWSLogs Ordner in Ihrem Bucket. Dieser Ordner wird nicht in allen Fällen erstellt, und die Konfiguration kann erfolgreich sein, ohne ihn zu erstellen.

Fehler beim Exportieren von E-Mail- und SMS-Nachrichten

Bei Fehlern bei der E-Mail- und SMS-Nachrichtenübermittlung können Sie Benutzerbenachrichtigungsprotokolle auf Fehlerebene aus Ihrem Benutzerpool bereitstellen. Wenn Sie diese Funktion aktivieren, können Sie die Protokollgruppe auswählen, an die Amazon Cognito Protokolle senden soll. Die Protokollierung von Benutzerbenachrichtigungen ist hilfreich, wenn Sie den Status von E-Mail- und SMS-Nachrichten ermitteln möchten, die Ihr Benutzerpool mit Amazon SNS und Amazon SES übermittelt hat. Für diese Option zum Exportieren von Protokollen ist im Gegensatz zum Export von Benutzeraktivitäten der Plus-Funktionsplan nicht erforderlich.

Sie können detaillierte Benachrichtigungsprotokolle mit der Amazon Cognito-Benutzerpools-API in einer SetLogDeliveryConfiguration API-Anforderung konfigurieren. Sie können die Protokollierungskonfiguration eines Benutzerpools in einer GetLogDeliveryConfiguration API-Anforderung einsehen. Im Folgenden finden Sie ein Beispiel für einen Anforderungstext.

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

Sie müssen diese Anfragen mit AWS Anmeldeinformationen autorisieren, die über die folgenden Berechtigungen verfügen.

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

Es folgt ein Beispielereignis in einem Benutzerpool. Dieses Protokollschema kann sich ändern. Einige Felder werden möglicherweise mit Nullwerten protokolliert.

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

Exportieren von Benutzeraktivitätsprotokollen zum Schutz gegen Bedrohungen

Benutzerpools mit dem Plus-Funktionsplan und dem Bedrohungsschutz protokollieren Benutzeraktivitätsereignisse: Details und Sicherheitsbewertung der Benutzeranmeldung, -abmeldung und anderer Authentifizierungsvorgänge mit Ihrem Benutzerpool. Möglicherweise möchten Sie die Benutzeraktivitätsprotokolle in Ihrem eigenen Protokollverwaltungssystem überprüfen oder ein Archiv erstellen. Sie können diese Daten in eine Amazon CloudWatch Logs-Protokollgruppe, einen Amazon Data Firehose-Stream oder einen Amazon Simple Storage Service (Amazon S3) -Bucket exportieren. Von dort aus können Sie diese Daten in andere Systeme aufnehmen, die Daten so analysieren, normalisieren oder anderweitig verarbeiten, dass sie zu Ihren betrieblichen Abläufen passen. Um Daten dieses Typs exportieren zu können, muss Ihr Benutzerpool den Plus-Funktionsplan nutzen und der Bedrohungsschutz muss in Ihrem Benutzerpool aktiv sein.

Anhand der Informationen in diesen Benutzeraktivitätsprotokollen können Sie ein Profil der Benutzeranmelde- und Kontoverwaltungsaktivitäten anzeigen. Standardmäßig erfasst Amazon Cognito diese Ereignisse in einem Speicher, der in Ihrem Benutzerpool basiert. Das folgende Beispiel ist ein Beispielereignis für einen Benutzer, der sich angemeldet hat und bei dem festgestellt wurde, dass er keine Risikofaktoren hat. Sie können diese Informationen mit der AdminListUserAuthEvents API-Operation abrufen. Das Folgende ist eine Beispielausgabe:

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

Sie können den Protokollexport für Benutzeraktivitäten in der Amazon Cognito-Konsole oder mit der SetLogDeliveryConfiguration API-Operation aktivieren.

AWS-Managementkonsole
  1. Wenn Sie noch keinen haben, den Sie verwenden möchten, erstellen Sie einen S3-Bucket, einen Firehose-Stream oder eine CloudWatch Log-Gruppe.

  2. Melden Sie sich bei der Amazon Cognito-Konsole an.

  3. Wählen Sie User Pools (Benutzerpools) aus.

  4. Wählen Sie einen vorhandenen Benutzerpool aus der Liste aus oder erstellen Sie einen neuen Benutzerpool.

  5. Wählen Sie den Tab Erweiterte Sicherheit. Suchen Sie nach Benutzeraktivitätsprotokollen exportieren und wählen Sie Bearbeiten

  6. Markieren Sie unter Protokollierungsstatus das Kontrollkästchen neben Export von Benutzeraktivitätsprotokollen aktivieren.

  7. Wählen Sie unter Protokollierungsziel AWS-Service das aus, für das Sie Ihre Protokolle verarbeiten möchten: CloudWatch Protokollgruppe, Amazon Data Firehose-Stream oder S3-Bucket.

  8. Ihre Auswahl füllt die Ressourcenauswahl mit dem entsprechenden Ressourcentyp auf. Wählen Sie eine Log-Gruppe, einen Stream oder einen Bucket aus der Liste aus. Sie können auch auf die Schaltfläche Erstellen klicken, um AWS-Managementkonsole zum ausgewählten Dienst zu navigieren und eine neue Ressource zu erstellen.

  9. Wählen Sie Änderungen speichern aus.

API

Wählen Sie einen Zieltyp für Ihre Benutzeraktivitätsprotokolle.

Im Folgenden finden Sie ein Beispiel für einen SetLogDeliveryConfiguration Anforderungstext, der einen Firehose-Stream als Protokollziel festlegt.

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

Im Folgenden finden Sie ein Beispiel für einen SetLogDeliveryConfiguration Anforderungstext, der einen Amazon S3-Bucket als Protokollziel festlegt.

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

Im Folgenden finden Sie ein Beispiel für einen SetLogDeliveryConfiguration Anforderungstext, der eine CloudWatch Protokollgruppe als Protokollziel festlegt.

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

Der Benutzer, der die Protokollzustellung konfiguriert, muss ein Benutzerpooladministrator sein und über die folgenden zusätzlichen Berechtigungen verfügen:

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

Es folgt ein Beispielereignis in einem Benutzerpool. Dieses Protokollschema kann sich ändern. Einige Felder werden möglicherweise mit Nullwerten protokolliert.

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