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.
Sammeln von Daten aus benutzerdefinierten Quellen in Security Lake
Amazon Security Lake kann Protokolle und Ereignisse aus benutzerdefinierten Quellen von Drittanbietern sammeln. Eine benutzerdefinierte Security Lake-Quelle ist ein Drittanbieter-Service, der Sicherheitsprotokolle und Ereignisse an Amazon Security Lake sendet. Vor dem Senden der Daten muss die benutzerdefinierte Quelle die Protokolle und Ereignisse in das Open Cybersecurity Schema Framework (OCSF) konvertieren und die Quellanforderungen für Security Lake erfüllen, einschließlich Partitionierung, Parquet-Dateiformat sowie Anforderungen an Objektgröße und -rate.
Für jede benutzerdefinierte Quelle verarbeitet Security Lake Folgendes:
-
Stellt ein eindeutiges Präfix für die Quelle in Ihrem Amazon S3 S3-Bucket bereit.
-
Erstellt eine Rolle in AWS Identity and Access Management (IAM), die es einer benutzerdefinierten Quelle ermöglicht, Daten in den Data Lake zu schreiben. Die Berechtigungsgrenze für diese Rolle wird durch eine AWS verwaltete Richtlinie mit dem Namen festgelegt AmazonSecurityLakePermissionsBoundary.
-
Erstellt eine AWS Lake Formation Tabelle zur Organisation von Objekten, die die Quelle in Security Lake schreibt.
-
Richtet einen AWS Glue Crawler ein, um Ihre Quelldaten zu partitionieren. Der Crawler füllt die AWS Glue Data Catalog mit der Tabelle. Außerdem erkennt er automatisch neue Quelldaten und extrahiert Schemadefinitionen.
Anmerkung
Sie können einem Konto bis zu 50 benutzerdefinierte Protokollquellen hinzufügen.
Um Security Lake eine benutzerdefinierte Quelle hinzuzufügen, muss sie die folgenden Anforderungen erfüllen. Wenn diese Anforderungen nicht erfüllt werden, kann dies Auswirkungen auf die Leistung haben und sich auf Anwendungsfälle für Analysen wie Abfragen auswirken.
-
Ziel — Die benutzerdefinierte Quelle muss in der Lage sein, Daten als Gruppe von S3-Objekten unter dem der Quelle zugewiesenen Präfix in Security Lake zu schreiben. Bei Quellen, die mehrere Datenkategorien enthalten, sollten Sie jede eindeutige Open Cybersecurity Schema Framework (OCSF) -Ereignisklasse
als separate Quelle bereitstellen. Security Lake erstellt eine IAM Rolle, die es der benutzerdefinierten Quelle ermöglicht, an den angegebenen Speicherort in Ihrem S3-Bucket zu schreiben. Format — Jedes S3-Objekt, das aus der benutzerdefinierten Quelle gesammelt wurde, sollte als Apache Parquet-Datei formatiert werden.
Schema — Dieselbe OCSF Ereignisklasse sollte für jeden Datensatz innerhalb eines Objekts im Parquet-Format gelten. Security Lake unterstützt die Versionen 1.x und 2.x von Parquet. Die Größe der Datenseite sollte auf 1 MB (unkomprimiert) begrenzt sein. Die Zeilengruppengröße sollte nicht größer als 256 MB (komprimiert) sein. Für die Komprimierung innerhalb des Parquet-Objekts wird Standard bevorzugt.
Partitionierung — Objekte müssen nach Region, Konto, AWS partitioniert werden. eventDay Objekten sollte ein Präfix vorangestellt werden.
source location
/region=region
/accountId=accountID
/eventDay=yyyyMMdd
/Objektgröße und Geschwindigkeit — An Security Lake gesendete Dateien sollten in Schritten zwischen 5 Minuten und einem Ereignistag gesendet werden. Kunden senden Dateien möglicherweise öfter als 5 Minuten, wenn Dateien größer als 256 MB sind. Die Objekt- und Größenanforderung besteht darin, Security Lake für die Abfrageleistung zu optimieren. Die Nichteinhaltung der benutzerdefinierten Quellanforderungen kann sich auf die Leistung von Security Lake auswirken.
Sortierung — In jedem Objekt im Parquet-Format sollten die Datensätze nach Zeit sortiert werden, um die Kosten für das Abfragen von Daten zu reduzieren.
Anmerkung
Verwenden Sie das OCSFValidierungstoolOCSF Schema
Partitionierungsanforderungen für die Aufnahme benutzerdefinierter Quellen in Security Lake
Um eine effiziente Datenverarbeitung und Abfrage zu ermöglichen, müssen wir beim Hinzufügen einer benutzerdefinierten Quelle zu Security Lake die Anforderungen an Partitionierung sowie Objekt und Größe erfüllen:
- Partitionierung
-
Objekte sollten nach Quellort,, AWS-Region und Datum partitioniert werden. AWS-Konto
-
Der Datenpfad der Partition ist wie folgt formatiert
/ext/
.custom-source-name
/region=region
/accountId=accountID
/eventDay=YYYYMMDD
Eine Beispielpartition mit einem Beispiel-Bucket-Namen ist
aws-security-data-lake-
.us-west-2-lake-uid
/ext/custom-source-name
/region=us-west-2
/accountId=123456789012
/eventDay=20230428
/
In der folgenden Liste werden die in der S3-Pfadpartition verwendeten Parameter beschrieben:
-
Der Name des Amazon S3 S3-Buckets, in dem Security Lake Ihre benutzerdefinierten Quelldaten speichert.
-
source-location
— Präfix für die benutzerdefinierte Quelle in Ihrem S3-Bucket. Security Lake speichert alle S3-Objekte für eine bestimmte Quelle unter diesem Präfix, und das Präfix ist für die angegebene Quelle eindeutig. -
region
— AWS-Region in die die Daten hochgeladen werden. Sie müssen es beispielsweise verwenden,US East (N. Virginia)
um Daten in Ihren Security Lake-Bucket in der Region USA Ost (Nord-Virginia) hochzuladen. -
accountId
— AWS-Konto ID, auf die sich die Datensätze in der Quellpartition beziehen. Für Datensätze, die sich auf Konten außerhalb von beziehen AWS, empfehlen wir die Verwendung einer Zeichenfolge wieexternal
oder.external_externalAccountId
Wenn Sie diese Benennungskonvektion anwenden, können Sie Unklarheiten bei der Benennung externer Konten vermeiden, IDs sodass sie nicht mit Konten IDs oder externen AWS Konten kollidieren, die von anderen IDs Identitätsmanagementsystemen verwaltet werden. -
eventDay
— UTC Zeitstempel des Datensatzes, gekürzt auf eine Stunde, formatiert als achtstellige Zeichenfolge ().YYYYMMDD
Wenn Datensätze im Event-Zeitstempel eine andere Zeitzone angeben, müssen Sie den Zeitstempel für diesen Partitionsschlüssel in eine andere Zeitzone umwandeln. UTC
-
Voraussetzungen für das Hinzufügen einer benutzerdefinierten Quelle in Security Lake
Beim Hinzufügen einer benutzerdefinierten Quelle erstellt Security Lake eine IAM Rolle, die es der Quelle ermöglicht, Daten an den richtigen Ort im Data Lake zu schreiben. Der Name der Rolle folgt dem region
FormatAmazonSecurityLake-Provider-{name of the custom source}-{region}
, AWS-Region in dem Sie die benutzerdefinierte Quelle hinzufügen. Security Lake fügt der Rolle eine Richtlinie hinzu, die den Zugriff auf den Data Lake ermöglicht. Wenn Sie den Data Lake mit einem vom Kunden verwalteten AWS KMS Schlüssel verschlüsselt haben, fügt Security Lake der Rolle auch eine Richtlinie kms:Decrypt
und kms:GenerateDataKey
Berechtigungen hinzu. Die Berechtigungsgrenze für diese Rolle wird durch eine AWS verwaltete Richtlinie mit dem Namen AmazonSecurityLakePermissionsBoundaryfestgelegt.
Themen
Überprüfen der Berechtigungen
Stellen Sie vor dem Hinzufügen einer benutzerdefinierten Quelle sicher, dass Sie über die erforderlichen Berechtigungen verfügen, um die folgenden Aktionen auszuführen.
Um Ihre Berechtigungen zu überprüfen, überprüfen Sie IAM bitte die IAM Richtlinien, die mit Ihrer IAM Identität verknüpft sind. Vergleichen Sie dann die Informationen in diesen Richtlinien mit der folgenden Liste von Aktionen, die Sie ausführen dürfen müssen, um eine benutzerdefinierte Quelle hinzuzufügen.
-
glue:CreateCrawler
-
glue:CreateDatabase
-
glue:CreateTable
-
glue:StopCrawlerSchedule
-
iam:GetRole
-
iam:PutRolePolicy
-
iam:DeleteRolePolicy
-
iam:PassRole
-
lakeformation:RegisterResource
-
lakeformation:GrantPermissions
-
s3:ListBucket
-
s3:PutObject
Diese Aktionen ermöglichen es Ihnen, Protokolle und Ereignisse aus einer benutzerdefinierten Quelle zu sammeln, sie an die richtige AWS Glue Datenbank und Tabelle zu senden und sie in Amazon S3 zu speichern.
Wenn Sie einen AWS KMS Schlüssel für die serverseitige Verschlüsselung Ihres Data Lakes verwenden, benötigen Sie auch die Erlaubnis für kms:CreateGrant
kms:DescribeKey
, undkms:GenerateDataKey
.
Wichtig
Wenn Sie die Security Lake-Konsole verwenden möchten, um eine benutzerdefinierte Quelle hinzuzufügen, können Sie den nächsten Schritt überspringen und mit fortfahrenHinzufügen einer benutzerdefinierten Quelle in Security Lake. Die Security Lake-Konsole bietet einen optimierten Prozess für den Einstieg und erstellt alle erforderlichen IAM Rollen oder verwendet bestehende Rollen in Ihrem Namen.
Wenn Sie Security Lake verwenden API oder eine benutzerdefinierte Quelle hinzufügen AWS CLI möchten, fahren Sie mit dem nächsten Schritt fort, um eine IAM Rolle zu erstellen, die Schreibzugriff auf den Security Lake-Bucket-Speicherort ermöglicht.
Erstellen Sie IAM eine Rolle, um Schreibzugriff auf den Security Lake-Bucket-Speicherort zu gewähren (APIund AWS CLI nur Schritt)
Wenn Sie Security Lake verwenden API oder eine benutzerdefinierte Quelle hinzufügen AWS CLI möchten, fügen Sie diese IAM Rolle hinzu, um die AWS Glue Erlaubnis zu erteilen, Ihre benutzerdefinierten Quelldaten zu crawlen und Partitionen in den Daten zu identifizieren. Diese Partitionen sind erforderlich, um Ihre Daten zu organisieren und Tabellen im Datenkatalog zu erstellen und zu aktualisieren.
Nachdem Sie diese IAM Rolle erstellt haben, benötigen Sie den Amazon-Ressourcennamen (ARN) der Rolle, um eine benutzerdefinierte Quelle hinzuzufügen.
Sie müssen die arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole
AWS
verwaltete Richtlinie anhängen.
Um die erforderlichen Berechtigungen zu gewähren, müssen Sie außerdem die folgende Inline-Richtlinie erstellen und in Ihre Rolle einbetten, um das Lesen von Datendateien aus der benutzerdefinierten Quelle und das Erstellen/Aktualisieren der Tabellen im AWS Glue Datenkatalog AWS-Glue-Crawler zu ermöglichen.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3WriteRead", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::{{bucketName}}/*" ] } ] }
Fügen Sie die folgende Vertrauensrichtlinie hinzu, um zuzulassen und AWS-Konto anhand derer es die Rolle auf der Grundlage der externen ID übernehmen kann:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "glue.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Wenn der S3-Bucket in der Region, in der Sie die benutzerdefinierte Quelle hinzufügen, mit einer vom Kunden verwalteten Quelle verschlüsselt ist AWS KMS key, müssen Sie der Rolle und Ihrer KMS wichtigsten Richtlinie auch die folgende Richtlinie hinzufügen:
{ "Effect": "Allow", "Action": [ "kms:GenerateDataKey" "kms:Decrypt" ], "Condition": { "StringLike": { "kms:EncryptionContext:aws:s3:arn": [ "arn:aws:s3:::{{
name of S3 bucket created by Security Lake
}" ] } }, "Resource": [ "{{ARN of customer managed key}}" ] }