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
Amazon Security Lake kann Protokolle und Ereignisse aus benutzerdefinierten Quellen von Drittanbietern sammeln. 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 AmazonSecurityLakePermissionsBoundaryfestgelegt.
-
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.
Um Security Lake eine benutzerdefinierte Quelle hinzuzufügen, muss sie die folgenden Anforderungen erfüllen:
-
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. Anmerkung
Verwenden Sie das OCSF-Validierungstool
, um zu überprüfen, ob die benutzerdefinierte Quelle kompatibel ist mit. OCSF Schema 1.1
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 Parquet-formatierten Objekts gelten.
Bewährte Methoden für die Aufnahme benutzerdefinierter Quellen
Um eine effiziente Datenverarbeitung und Abfrage zu ermöglichen, empfehlen wir, beim Hinzufügen einer benutzerdefinierten Quelle zu Security Lake die folgenden bewährten Methoden zu befolgen:
- Partitionierung
-
Objekte sollten nach Quellort,, AWS-Region und Datum partitioniert werden. AWS-Konto Der Datenpfad der Partition ist formatiert als.
bucket-name
/source-location
/region=region
/accountId=accountID
/eventDay=YYYYMMDD
Eine Beispielpartition ist
aws-security-data-lake-
.us-west-2-lake-uid
/source-location
/region=us-west-2
/accountId=123456789012
/eventDay=20230428
/-
bucket-name
— 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 geschrieben werden. -
accountId
— AWS-Konto ID, auf die sich die Datensätze in der Quellpartition beziehen. -
eventDay
— Datum, an dem das Ereignis eingetreten ist, formatiert als achtstellige Zeichenfolge ()YYYYMMDD
.
-
- Größe und Geschwindigkeit des Objekts
-
In Security Lake geschriebene Objekte sollten Datensätze für 5 Minuten zwischenspeichern. Wenn die Pufferzeit zu viele Daten enthält, um effizient abgefragt werden zu können, können benutzerdefinierte Quellen mehrere Datensätze innerhalb des 5-Minuten-Fensters schreiben, sofern die durchschnittliche Größe dieser Dateien unter 256 MB bleibt. Benutzerdefinierte Quellen mit geringem Durchsatz können kleinere Objekte alle 5 Minuten schreiben, um eine Aufnahmelatenz von 5 Minuten aufrechtzuerhalten, und können Datensätze für längere Zeiträume zwischenspeichern.
- Parquet-Einstellungen
-
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.
- Sortieren
-
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.
Voraussetzungen für das Hinzufügen einer benutzerdefinierten Quelle
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 FormatAmazonSecurityLake-Provider-{name of the custom source}-{region}
, AWS-Region in dem Sie die benutzerdefinierte Quelle hinzufügen. region
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, verwenden Sie IAM, um die IAM-Richtlinien zu überprüfen, 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 fortfahrenEine benutzerdefinierte Quelle hinzufügen. 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 die Security Lake-API verwenden 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 eine IAM-Rolle, um Schreibzugriff auf den Security Lake-Bucket-Speicherort zu gewähren (API und nur Schritt AWS CLI)
Wenn Sie die Security Lake-API verwenden 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 einem vom Kunden verwalteten Bucket verschlüsselt ist AWS KMS key, müssen Sie der Rolle und Ihrer KMS-Schlüsselrichtlinie 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}}" ] }
Eine benutzerdefinierte Quelle hinzufügen
Nachdem Sie die IAM-Rolle zum Aufrufen des AWS Glue Crawlers erstellt haben, gehen Sie wie folgt vor, um eine benutzerdefinierte Quelle in Security Lake hinzuzufügen.
Halten Sie die benutzerdefinierten Quelldaten auf dem neuesten Stand in AWS Glue
Nachdem Sie eine benutzerdefinierte Quelle in Security Lake hinzugefügt haben, erstellt Security Lake einen AWS Glue Crawler. Der Crawler stellt eine Verbindung zu Ihrer benutzerdefinierten Quelle her, bestimmt die Datenstrukturen und füllt den AWS Glue Datenkatalog mit Tabellen.
Wir empfehlen, den Crawler manuell auszuführen, um Ihr benutzerdefiniertes Quellschema auf dem neuesten Stand zu halten und die Abfragefunktionen in Athena und anderen Abfragediensten aufrechtzuerhalten. Insbesondere sollten Sie den Crawler ausführen, wenn eine der folgenden Änderungen in Ihrem Eingabedatensatz für eine benutzerdefinierte Quelle eintritt:
Der Datensatz hat eine oder mehrere neue Spalten auf oberster Ebene.
Der Datensatz enthält ein oder mehrere neue Felder in einer Spalte mit einem
struct
Datentyp.
Anweisungen zum Ausführen eines Crawlers finden Sie unter Planung eines AWS Glue Crawlers im Entwicklerhandbuch.AWS Glue
Security Lake kann bestehende Crawler in Ihrem Konto nicht löschen oder aktualisieren. Wenn Sie eine benutzerdefinierte Quelle löschen, empfehlen wir, den zugehörigen Crawler zu löschen, wenn Sie in future eine benutzerdefinierte Quelle mit demselben Namen erstellen möchten.
Löschen einer benutzerdefinierten Quelle
Löschen Sie eine benutzerdefinierte Quelle, um das Senden von Daten von der Quelle an Security Lake zu beenden.