AWS Control Tower-Logs erfassen
Parserversion: 1.0
In diesem Dokument wird beschrieben, wie Sie AWS Control Tower-Logs in Google Security Operations aufnehmen. AWS Control Tower ermöglicht Governance, Compliance und Sicherheitsmonitoring für mehrere AWS-Konten. Mit dieser Integration können Sie Logs von AWS Control Tower analysieren, um die Transparenz und den Sicherheitsstatus zu verbessern.
Hinweis
Folgende Voraussetzungen müssen erfüllt sein:
- Google SecOps-Instanz
- Privilegierter Zugriff auf AWS
Amazon S3-Bucket konfigurieren
- Erstellen Sie einen Amazon S3-Bucket. Folgen Sie dazu der Anleitung in diesem Nutzerhandbuch: Bucket erstellen.
- Speichern Sie den Namen und die Region des Buckets für die spätere Verwendung.
- Erstellen Sie einen Nutzer gemäß dieser Anleitung: IAM-Nutzer erstellen.
- Wählen Sie den erstellten Nutzer aus.
- Wählen Sie den Tab Sicherheitsanmeldedaten aus.
- Klicken Sie im Bereich Zugriffsschlüssel auf Zugriffsschlüssel erstellen.
- Wählen Sie als Anwendungsfall Drittanbieterdienst aus.
- Klicken Sie auf Weiter.
- Optional: Fügen Sie ein Beschreibungstag hinzu.
- Klicken Sie auf Zugriffsschlüssel erstellen.
- Klicken Sie auf CSV-Datei herunterladen, um den Access Key (Zugriffsschlüssel) und den Secret Access Key (geheimer Zugriffsschlüssel) für die spätere Verwendung zu speichern.
- Klicken Sie auf Fertig.
- Wählen Sie den Tab Berechtigungen aus.
- Klicken Sie im Bereich Berechtigungsrichtlinien auf Berechtigungen hinzufügen.
- Wählen Sie Berechtigungen hinzufügen aus.
- Wählen Sie Richtlinien direkt anhängen aus.
- Suchen Sie nach den Richtlinien AmazonS3FullAccess und CloudWatchLogsFullAccess und wählen Sie sie aus.
- Klicken Sie auf Weiter.
- Klicken Sie auf Berechtigungen hinzufügen.
CloudTrail in AWS Control Tower konfigurieren
- Melden Sie sich bei der AWS Management Console an.
- Rufen Sie AWS Control Tower auf.
- Geben Sie in der Suchleiste CloudTrail ein und wählen Sie es aus der Dienstliste aus.
Klicken Sie auf Trail erstellen, um einen neuen Trail zu erstellen.
Geben Sie die Trail-Einstellungen an:
- Name des Trails: Geben Sie einen aussagekräftigen Namen für den Trail an, z. B. ControlTowerTrail.
- Testzeitraum auf alle Regionen anwenden: Wählen Sie für Testzeitraum auf alle Regionen anwenden die Option Ja aus.
- Verwaltungsereignisse: Achten Sie darauf, dass Lese-/Schreibereignisse auf Alle festgelegt sind.
- Optional: Datenereignisse: Aktivieren Sie S3-Datenereignisse und Lambda-Datenereignisse, um detaillierte Datenaktivitäten zu erfassen.
- Optional: Validierung von Logdateien: Aktivieren Sie diese Option, um sicherzustellen, dass Logdateien nach dem Speichern nicht manipuliert werden.
Wählen Sie in der Auswahl Ereignis die Option Verwaltungsereignisse und Datenereignisse aus.
CloudTrail konfigurieren
- Rufen Sie die AWS IAM-Konsole auf.
- Klicken Sie auf Rollen.
- Suchen Sie nach der Rolle, die CloudTrail verwendet
AWSServiceRoleForCloudTrail(die Rolle wird automatisch erstellt, wenn Sie CloudTrail einrichten). - Klicken Sie auf dem Tab „Berechtigungen“ für die Rolle auf Richtlinien anhängen.
- Suchen Sie nach
CloudTrailS3DeliveryPolicy. - Klicken Sie das Kästchen neben der Richtlinie
CloudTrailS3DeliveryPolicyan. - Klicken Sie auf Richtlinie anhängen.
- Rufen Sie die AWS CloudTrail-Konsole auf.
- Wählen Sie im Abschnitt Speicherort die Option S3 als Ziel für Logdateien aus.
- Wählen Sie den zuvor erstellten S3-Bucket aus.
- Klicken Sie auf Zulassen, wenn Sie aufgefordert werden, CloudTrail die Berechtigung zum Schreiben von Logs in den ausgewählten Bucket zu erteilen.
- Prüfen Sie die Einstellungen und klicken Sie auf Erstellen (oder auf Änderungen speichern, wenn Sie einen vorhandenen Trail bearbeiten).
Feeds einrichten
Es gibt zwei verschiedene Einstiegspunkte zum Einrichten von Feeds in der Google SecOps-Plattform:
- SIEM-Einstellungen > Feeds > Neuen Feed hinzufügen
- Content Hub > Content-Pakete > Jetzt starten
AWS Control Tower-Feed einrichten
- Klicken Sie auf das Paket Amazon Cloud Platform.
- Suchen Sie nach dem Logtyp AWS Control Tower.
Geben Sie die Werte in den folgenden Feldern an.
- Quelltyp: Amazon SQS V2
- Warteschlangenname: Der Name der SQS-Warteschlange, aus der gelesen werden soll.
- S3-URI: Der Bucket-URI.
s3://your-log-bucket-name/- Ersetzen Sie
your-log-bucket-namedurch den tatsächlichen Namen Ihres S3-Buckets.
- Ersetzen Sie
Optionen zum Löschen der Quelle: Wählen Sie die Löschoption entsprechend Ihren Aufnahmeeinstellungen aus.
Maximales Dateialter: Dateien einschließen, die in den letzten Tagen geändert wurden. Der Standardwert ist 180 Tage.
SQS Queue Access Key ID (SQS-Warteschlange-Zugriffsschlüssel-ID): Ein Konto-Zugriffsschlüssel, der ein alphanumerischer String mit 20 Zeichen ist.
SQS Queue Secret Access Key (Geheimer Zugriffsschlüssel für die SQS-Warteschlange): Ein Konto-Zugriffsschlüssel, der ein alphanumerischer String mit 40 Zeichen ist.
Erweiterte Optionen
- Feedname: Ein vorausgefüllter Wert, der den Feed identifiziert.
- Asset-Namespace: Der mit dem Feed verknüpfte Namespace.
- Aufnahmelabels: Labels, die auf alle Ereignisse aus diesem Feed angewendet werden.
Klicken Sie auf Feed erstellen.
Weitere Informationen zum Konfigurieren mehrerer Feeds für verschiedene Logtypen in dieser Produktfamilie finden Sie unter Feeds nach Produkt konfigurieren.
UDM-Zuordnungstabelle
| Logfeld | UDM-Zuordnung | Logik |
|---|---|---|
| awsAccountId | target.user.group_identifiers | Die AWS-Konto-ID, die dem Ereignis zugeordnet ist. |
| digestPublicKeyFingerprint | target.file.sha1 | Der Fingerabdruck des öffentlichen Schlüssels, der zum Signieren des Digests verwendet wurde. |
| digestPublicKeyFingerprint | target.resource.attribute.labels.value | Der Fingerabdruck des öffentlichen Schlüssels, der zum Signieren des Digests verwendet wurde. |
| digestS3Bucket | target.resource.name | Der Name des S3-Buckets, in dem der Digest gespeichert ist. |
| digestS3Object | target.file.full_path | Der Pfad zum Digest-Objekt im S3-Bucket. |
| digestSignatureAlgorithm | network.tls.cipher | Der Algorithmus, der zum Signieren des Digests verwendet wird. |
| digestSignatureAlgorithm | target.resource.attribute.labels.value | Der Algorithmus, der zum Signieren des Digests verwendet wird. |
| digestStartTime | metadata.event_timestamp | Der Beginn des Digest-Zeitraums. Wird als Ereigniszeit verwendet, wenn „eventTime“ nicht verfügbar ist. |
| eventCategory | security_result.category_details | Die Kategorie des Ereignisses. |
| eventID | metadata.product_log_id | Die eindeutige ID des Ereignisses. |
| eventName | metadata.product_event_type | Der Name des Ereignisses. |
| eventName | security_result.summary | Der Name des Ereignisses, der zum Generieren der Zusammenfassung des Sicherheitsergebnisses verwendet wird. |
| eventSource | target.application | Die Quelle des Ereignisses. |
| eventTime | metadata.event_timestamp | Zeit, zu der das Ereignis aufgetreten ist. |
| eventType | additional.fields.value.string_value | Der Typ des Ereignisses. |
| logFiles.hashValue | about.file.sha256 | Der SHA-256-Hash der Logdatei. |
| logFiles.s3Bucket | about.resource.name | Der Name des S3-Buckets, in dem die Logdatei gespeichert ist. |
| logFiles.s3Object | about.file.full_path | Der Pfad zum Logdatei-Objekt im S3-Bucket. |
| previousDigestHashValue | target.file.sha256 | Der SHA-256-Hash des vorherigen Digests. |
| recipientAccountId | target.resource.attribute.labels.value | Die AWS-Konto-ID des Empfängers des Ereignisses. |
| Records.awsRegion | principal.location.name | Die AWS-Region, in der das Ereignis aufgetreten ist. |
| Records.errorCode | security_result.rule_id | Der Fehlercode, der mit der Anfrage verknüpft ist, falls vorhanden. |
| Records.errorMessage | security_result.description | Die Fehlermeldung, falls vorhanden, die mit der Anfrage verknüpft ist. |
| Records.eventCategory | security_result.category_details | Die Kategorie des Ereignisses. |
| Records.eventID | metadata.product_log_id | Die eindeutige ID des Ereignisses. |
| Records.eventName | metadata.product_event_type | Der Name des Ereignisses. |
| Records.eventName | security_result.summary | Der Name des Ereignisses, der zum Generieren der Zusammenfassung des Sicherheitsergebnisses verwendet wird. |
| Records.eventSource | target.application | Die Quelle des Ereignisses. |
| Records.eventTime | metadata.event_timestamp | Zeit, zu der das Ereignis aufgetreten ist. |
| Records.eventType | additional.fields.value.string_value | Der Typ des Ereignisses. |
| Records.requestID | target.resource.attribute.labels.value | Die ID der Anfrage. |
| Records.requestParameters.groupName | target.group.group_display_name | Der Name der Gruppe, die mit der Anfrage verknüpft ist, falls vorhanden. |
| Records.requestParameters.userName | src.user.userid | Der Name des Nutzers, falls vorhanden, der mit der Anfrage verknüpft ist. |
| Records.requestParameters.userName | src.user.user_display_name | Der Name des Nutzers, der mit der Anfrage verknüpft ist, falls vorhanden. |
| Records.responseElements.ConsoleLogin | security_action | Das Ergebnis des Konsolenanmeldeversuchs. |
| Records.responseElements.ConsoleLogin | security_result.summary | Das Ergebnis des Konsolenanmeldeversuchs, das zum Generieren der Zusammenfassung der Sicherheitsergebnisse verwendet wird. |
| Records.sourceIPAddress | principal.hostname | Die IP-Adresse des Hauptkontos. Wird als Hostname verwendet, wenn es sich nicht um eine gültige IP-Adresse handelt. |
| Records.sourceIPAddress | principal.ip | Die IP-Adresse des Hauptkontos. |
| Records.tlsDetails.cipherSuite | network.tls.cipher | Die für die TLS-Verbindung verwendete Cipher Suite. |
| Records.tlsDetails.tlsVersion | network.tls.version | Die für die Verbindung verwendete TLS-Version. |
| Records.userAgent | network.http.user_agent | Der User-Agent der Anfrage. |
| Records.userIdentity.accessKeyId | additional.fields.value.string_value | Die für die Anfrage verwendete Zugriffsschlüssel-ID. |
| Records.userIdentity.accountId | principal.user.group_identifiers | Die AWS-Konto-ID des Nutzers. |
| Records.userIdentity.arn | principal.user.attribute.labels.value | Der ARN des Nutzers. |
| Records.userIdentity.arn | target.user.userid | Der ARN des Nutzers. Wird als Nutzer-ID verwendet, wenn „userName“ nicht verfügbar ist. |
| Records.userIdentity.principalId | principal.user.product_object_id | Die Prinzipal-ID des Nutzers. |
| Records.userIdentity.sessionContext.attributes.mfaAuthenticated | principal.user.attribute.labels.value | Ob für die Anfrage die MFA verwendet wurde. |
| Records.userIdentity.sessionContext.sessionIssuer.userName | principal.user.userid | Der Benutzername des Nutzers, der die Sitzung ausgegeben hat. |
| Records.userIdentity.type | principal.resource.type | Der Typ der Identität, die für die Anfrage verwendet wird. |
| Records.userIdentity.userName | target.user.userid | Der Nutzername des Nutzers. |
| - | extensions.auth.mechanism | Legen Sie diesen Wert auf „REMOTE“ fest. |
| - | metadata.event_type | Legen Sie je nach eventName „STATUS_UPDATE“, „USER_RESOURCE_ACCESS“, „USER_LOGIN“ oder „GENERIC_EVENT“ fest. |
| - | metadata.log_type | Legen Sie diesen Wert auf „AWS_CONTROL_TOWER“ fest. |
| - | metadata.product_name | Legen Sie diesen Wert auf „AWS Control Tower“ fest. |
| - | metadata.vendor_name | Legen Sie diesen Wert auf „AWS“ fest. |
| - | principal.asset.attribute.cloud.environment | Legen Sie diesen Wert auf „AMAZON_WEB_SERVICES“ fest. |
| - | security_result.action | Legen Sie je nach errorCode „ALLOW“ oder „BLOCK“ fest. |
| - | security_result.severity | Legen Sie diesen Wert auf „INFORMATIONAL“ fest. |
Änderungsprotokoll
Änderungsprotokoll für diesen Parser ansehen
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten