AWS Control Tower-Logs erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie AWS Control Tower-Protokolle in Google Security Operations aufnehmen. AWS Control Tower ermöglicht die Governance, Compliance und Sicherheitsüberwachung für mehrere AWS-Konten. Mit dieser Integration können Sie Protokolle aus AWS Control Tower analysieren, um mehr Transparenz und Sicherheit zu erhalten.

Vorbereitung

  • Sie benötigen eine Google SecOps-Instanz.
  • Sie benötigen erhöhte Zugriffsrechte für AWS.

Amazon S3-Bucket konfigurieren

  1. Erstellen Sie einen Amazon S3-Bucket. Folgen Sie dazu dieser Anleitung: Bucket erstellen.
  2. Speichern Sie den Namen und die Region des Buckets für später.
  3. Erstellen Sie einen Nutzer gemäß der Anleitung IAM-Nutzer erstellen.
  4. Wählen Sie den erstellten Nutzer aus.
  5. Wählen Sie den Tab Sicherheitsanmeldedaten aus.
  6. Klicken Sie im Bereich Zugriffsschlüssel auf Zugriffsschlüssel erstellen.
  7. Wählen Sie als Anwendungsfall Drittanbieterdienst aus.
  8. Klicken Sie auf Weiter.
  9. Optional: Fügen Sie ein Beschreibungs-Tag hinzu.
  10. Klicken Sie auf Zugriffsschlüssel erstellen.
  11. Klicken Sie auf CSV-Datei herunterladen, um den Zugriffsschlüssel und den Secret Access Key zur späteren Verwendung zu speichern.
  12. Klicken Sie auf Fertig.
  13. Wählen Sie den Tab Berechtigungen aus.
  14. Klicken Sie im Bereich Berechtigungsrichtlinien auf Berechtigungen hinzufügen.
  15. Wählen Sie Berechtigungen hinzufügen aus.
  16. Wählen Sie Richtlinien direkt anhängen aus.
  17. Suchen Sie nach den Richtlinien AmazonS3FullAccess und CloudWatchLogsFullAccess und wählen Sie sie aus.
  18. Klicken Sie auf Weiter.
  19. Klicken Sie auf Berechtigungen hinzufügen.

CloudTrail in AWS Control Tower konfigurieren

  1. Melden Sie sich bei der AWS Management Console an.
  2. Rufen Sie AWS Control Tower auf.
  3. Geben Sie in die Suchleiste CloudTrail ein und wählen Sie die Option in der Dienstliste aus.
  4. Klicken Sie auf Pfad erstellen, um einen neuen Pfad zu erstellen.

  5. Legen Sie die Trail-Einstellungen fest:

    • Pfadname: Geben Sie einen aussagekräftigen Namen für den Pfad an, z. B. ControlTowerTrail.
    • Trail auf alle Regionen anwenden: Wählen Sie Ja für Trail auf alle Regionen anwenden aus.
    • Verwaltungsereignisse: Die Ereignisse vom Typ Lesen/Schreiben müssen auf Alle eingestellt sein.
    • Optional: Datenereignisse: Aktivieren Sie S3-Datenereignisse und Lambda-Datenereignisse, um detaillierte Datenaktivitäten zu erfassen.
    • Optional: Validierung der Logdatei: Aktivieren Sie diese Option, damit Logdateien nach dem Speichern nicht manipuliert werden.
  6. Wählen Sie in der Auswahl Ereignis aus, ob Verwaltungsereignisse und Datenereignisse protokolliert werden sollen.

CloudTrail für das Senden von Protokollen an einen S3-Bucket konfigurieren

  1. Rufen Sie die AWS IAM-Konsole auf.
  2. Klicken Sie auf Rollen.
  3. Suchen Sie nach der Rolle, die von CloudTrail verwendet wird AWSServiceRoleForCloudTrail. Die Rolle wird automatisch beim Einrichten von CloudTrail erstellt.
  4. Klicken Sie auf dem Tab Berechtigungen für die Rolle auf Richtlinien anhängen.
  5. Suchen Sie nach CloudTrailS3DeliveryPolicy.
  6. Klicken Sie das Kästchen neben der CloudTrailS3DeliveryPolicy-Richtlinie an.
  7. Klicken Sie auf Richtlinie anfügen.
  8. Rufen Sie die CloudTrail Console von AWS auf.
  9. Wählen Sie im Bereich Speicherort S3 als Ziel für Protokolldateien aus.
  10. Wählen Sie den zuvor erstellten S3-Bucket aus.
  11. Klicken Sie auf Zulassen, wenn Sie aufgefordert werden, CloudTrail die Berechtigung zum Schreiben von Protokollen in den ausgewählten Bucket zu erteilen.
  12. Prüfen Sie Ihre Einstellungen und klicken Sie auf Erstellen oder auf Änderungen speichern, wenn Sie einen vorhandenen Trail bearbeiten.

Feed in Google SecOps für die Aufnahme von AWS Control Tower-Logs konfigurieren

  1. Gehen Sie zu SIEM-Einstellungen > Feeds.
  2. Klicken Sie auf Neu hinzufügen.
  3. Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B. AWS Control Tower-Protokolle.
  4. Wählen Sie als Quelltyp Amazon S3 aus.
  5. Wählen Sie AWS Control Tower als Logtyp aus.
  6. Klicken Sie auf Weiter.
  7. Geben Sie Werte für die folgenden Eingabeparameter an:

    • Region: die Region, in der sich der Amazon S3-Bucket befindet.
    • S3-URI: der Bucket-URI.
      • s3://your-log-bucket-name/
        • Ersetzen Sie your-log-bucket-name durch den tatsächlichen Namen des Buckets.
    • URI ist ein: Wählen Sie Verzeichnis oder Verzeichnis mit Unterverzeichnissen aus.
    • Optionen zum Löschen der Quelle: Wählen Sie die gewünschte Löschoption aus.

    • Access Key ID: Der Nutzerzugriffsschlüssel mit Zugriff auf den S3-Bucket.

    • Geheimer Zugriffsschlüssel: Der geheime Schlüssel des Nutzers mit Zugriff auf den S3-Bucket.

    • Asset-Namespace: der Asset-Namespace.

    • Aufnahmelabels: Das Label, das auf die Ereignisse aus diesem Feed angewendet werden soll.

  8. Klicken Sie auf Weiter.

  9. Prüfen Sie die neue Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
awsAccountId target.user.group_identifiers Die mit dem Ereignis verknüpfte AWS-Konto-ID.
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 Die Startzeit des Zeitraums für den Recap. 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 der Sicherheitsergebnisse 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 SHA-256-Hash der Protokolldatei.
logFiles.s3Bucket about.resource.name Der Name des S3-Buckets, in dem die Protokolldatei gespeichert ist.
logFiles.s3Object about.file.full_path Der Pfad zum Logdateiobjekt 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 der Anfrage zugeordnet ist (falls vorhanden).
Records.errorMessage security_result.description Die Fehlermeldung, die mit der Anfrage verknüpft ist, falls vorhanden.
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 der Sicherheitsergebnisse 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, der mit der Anfrage verknüpft ist, sofern vorhanden.
Records.requestParameters.userName src.user.user_display_name Der Name des Nutzers, der mit der Anfrage verknüpft ist, sofern vorhanden.
Records.responseElements.ConsoleLogin security_action Das Ergebnis des Anmeldeversuchs in der Konsole.
Records.responseElements.ConsoleLogin security_result.summary Das Ergebnis des Anmeldeversuchs in der Konsole, das zum Generieren der Zusammenfassung der Sicherheitsergebnisse verwendet wird.
Records.sourceIPAddress principal.hostname Die IP-Adresse des Hauptkontos. Wird als Hostname verwendet, wenn keine gültige IP-Adresse angegeben wurde.
Records.sourceIPAddress principal.ip Die IP-Adresse des Hauptkontos.
Records.tlsDetails.cipherSuite network.tls.cipher Die Chiffrensammlung, die für die TLS-Verbindung verwendet wird.
Records.tlsDetails.tlsVersion network.tls.version Die TLS-Version, die für die Verbindung verwendet wird.
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 Die ARN des Nutzers.
Records.userIdentity.arn target.user.userid Die ARN des Nutzers. Wird als User-ID verwendet, wenn „userName“ nicht verfügbar ist.
Records.userIdentity.principalId principal.user.product_object_id Die Haupt-ID des Nutzers.
Records.userIdentity.sessionContext.attributes.mfaAuthenticated principal.user.attribute.labels.value Gibt an, ob für die Anfrage die Bestätigung in zwei Schritten verwendet wurde.
Records.userIdentity.sessionContext.sessionIssuer.userName principal.user.userid Der Nutzername des Nutzers, der die Sitzung gestartet hat.
Records.userIdentity.type principal.resource.type Die Art 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 Je nach Ereignisname auf „STATUS_UPDATE“, „USER_RESOURCE_ACCESS“, „USER_LOGIN“ oder „GENERIC_EVENT“ festlegen.
- 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 „INFORMATIONELL“ fest.

Änderungen

2024-03-17

  • Verbesserung:
  • „req.userIdentity.arn“ und „req.userIdentity.userName“ wurden „target.user.userid“ zugeordnet.

2023-01-04

  • Verbesserung:
  • Initialisierte Variablen, um die Replikation von Daten in der For-Schleife zu vermeiden.

2022-12-15

  • Verbesserung:
  • „metadata.vendor_name“ wurde auf „AWS“ zugeordnet.
  • „metadata.product_name“ wurde auf „AWS Control Tower“ zugeordnet.
  • „metadata.event_type“ wurde in „USER_LOGIN“ umgewandelt, wenn „eventName“ „ConsoleLogin“ ist.
  • „security_result.severity“ wurde in „INFORMATIONAL“ umgewandelt, wenn „eventName“ „ConsoleLogin“ ist.

2022-11-17

  • Verbesserung:
  • „req.userIdentity.userName“ und „req.userIdentity.sessionContext.sessionIssuer.userName“ wurden in „target.user.id“ überführt.
  • „ConsoleLogin:Success“ wurde „security_result.action“ zugeordnet.
  • Zugeordnete Portinformationen von „sourceIPAddress“ zu „principal.port“.

2022-10-31

  • Neu erstellter Parser.

Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten