Raccolta di dati da fonti personalizzate in Security Lake - Amazon Security Lake

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Raccolta di dati da fonti personalizzate in Security Lake

Amazon Security Lake può raccogliere log ed eventi da fonti personalizzate di terze parti. Per ogni fonte personalizzata, Security Lake gestisce quanto segue:

  • Fornisce un prefisso univoco per l'origine nel bucket Amazon S3.

  • Crea un ruolo in AWS Identity and Access Management (IAM) che consente a una fonte personalizzata di scrivere dati nel data lake. Il limite delle autorizzazioni per questo ruolo è impostato da una politica AWS gestita chiamata. AmazonSecurityLakePermissionsBoundary

  • Crea una AWS Lake Formation tabella per organizzare gli oggetti che l'origine scrive su Security Lake.

  • Imposta un AWS Glue crawler per partizionare i dati di origine. Il crawler compila il file con la tabella. AWS Glue Data Catalog Inoltre, rileva automaticamente i nuovi dati di origine ed estrae le definizioni degli schemi.

Per aggiungere una fonte personalizzata a Security Lake, deve soddisfare i seguenti requisiti:

  1. Destinazione: l'origine personalizzata deve essere in grado di scrivere dati su Security Lake come set di oggetti S3 sotto il prefisso assegnato all'origine. Per le fonti che contengono più categorie di dati, è necessario fornire ogni classe di eventi Open Cybersecurity Schema Framework (OCSF) unica come fonte separata. Security Lake crea un IAM ruolo che consente all'origine personalizzata di scrivere nella posizione specificata nel bucket S3.

    Nota

    Utilizza lo strumento di OCSF convalida per verificare se l'origine personalizzata è compatibile con. OCSF Schema 1.1

  2. Formato: ogni oggetto S3 raccolto dall'origine personalizzata deve essere formattato come file Apache Parquet.

  3. Schema: la stessa classe di OCSF eventi deve essere applicata a ogni record all'interno di un oggetto in formato Parquet.

Le migliori pratiche per importare sorgenti personalizzate in Security Lake

Per facilitare l'elaborazione e l'interrogazione efficienti dei dati, consigliamo di seguire queste best practice quando si aggiunge una fonte personalizzata a Security Lake:

Partizionamento

Gli oggetti devono essere partizionati per posizione di origine, Regione AWS, Account AWS e data.

  • Il percorso dei dati della partizione è formattato come

    bucket-name/ext/custom-source-name/region=region/accountId=accountID/eventDay=YYYYMMDD.

    Una partizione di esempio è. aws-security-data-lake-us-west-2-lake-uid/ext/custom-source-name/region=us-west-2/accountId=123456789012/eventDay=20230428/

  • Se hai aggiunto una versione sorgente all'origine personalizzata, il percorso dei dati della partizione viene formattato come

    bucket-name/ext/custom-source-name/custom-source-version/region=us-west-2/accountId=123456789012/eventDay=20230428/

    Una partizione di esempio che include la versione sorgente è. aws-security-data-lake-us-west-2-lake-uid/ext/custom-source-name/2.0/region=us-west-2/accountId=123456789012/eventDay=20230428/

L'elenco seguente descrive i parametri utilizzati nella partizione.

  • bucket-name— Il nome del bucket Amazon S3 in cui Security Lake archivia i dati di origine personalizzati.

  • source-location— Prefisso per l'origine personalizzata nel tuo bucket S3. Security Lake archivia tutti gli oggetti S3 per una determinata fonte con questo prefisso e il prefisso è unico per quella determinata fonte.

  • source-version— Versione sorgente del codice sorgente personalizzato.

  • region— Regione AWS in cui vengono scritti i dati.

  • accountId— Account AWS ID a cui appartengono i record nella partizione di origine.

  • eventDay— Data in cui si è verificato l'evento, formattata come una stringa di otto caratteri (). YYYYMMDD

Dimensioni e frequenza dell'oggetto

I file inviati a Security Lake devono essere inviati con incrementi compresi tra 5 minuti e 1 giorno dell'evento. I clienti possono inviare file più spesso di 5 minuti se le dimensioni dei file superano i 256 MB. Il requisito di oggetto e dimensione è quello di ottimizzare Security Lake for Query Performance. Il mancato rispetto dei requisiti di origine personalizzati può avere un impatto sulle prestazioni di Security Lake.

Impostazioni del parquet

Security Lake supporta le versioni 1.x e 2.x di Parquet. La dimensione della pagina dati deve essere limitata a 1 MB (non compressa). La dimensione del gruppo di righe non deve superare i 256 MB (compressi). Per la compressione all'interno dell'oggetto Parquet, è preferibile zstandard.

Ordinamento

All'interno di ogni oggetto in formato Parquet, i record devono essere ordinati per tempo per ridurre il costo dell'interrogazione dei dati.

Prerequisiti per aggiungere una fonte personalizzata in Security Lake

Quando si aggiunge un'origine personalizzata, Security Lake crea un IAM ruolo che consente alla fonte di scrivere i dati nella posizione corretta nel data lake. Il nome del ruolo segue il formatoAmazonSecurityLake-Provider-{name of the custom source}-{region}, region dov'è il formato Regione AWS in cui stai aggiungendo l'origine personalizzata. Security Lake attribuisce una policy al ruolo che consente l'accesso al data lake. Se hai crittografato il data lake con una AWS KMS chiave gestita dal cliente, Security Lake allega anche una policy kms:Decrypt e kms:GenerateDataKey autorizzazioni al ruolo. Il limite delle autorizzazioni per questo ruolo è impostato da una AWS politica gestita chiamata. AmazonSecurityLakePermissionsBoundary

Verificare le autorizzazioni

Prima di aggiungere una fonte personalizzata, verifica di disporre delle autorizzazioni necessarie per eseguire le seguenti azioni.

Per verificare le tue autorizzazioni, usa IAM per rivedere le IAM politiche allegate alla tua IAM identità. Quindi, confronta le informazioni contenute in tali politiche con il seguente elenco di azioni che devi essere autorizzato a eseguire per aggiungere una fonte personalizzata.

  • glue:CreateCrawler

  • glue:CreateDatabase

  • glue:CreateTable

  • glue:StopCrawlerSchedule

  • iam:GetRole

  • iam:PutRolePolicy

  • iam:DeleteRolePolicy

  • iam:PassRole

  • lakeformation:RegisterResource

  • lakeformation:GrantPermissions

  • s3:ListBucket

  • s3:PutObject

Queste azioni consentono di raccogliere log ed eventi da un'origine personalizzata, inviarli al AWS Glue database e alla tabella corretti e archiviarli in Amazon S3.

Se utilizzi una AWS KMS chiave per la crittografia lato server del tuo data lake, hai bisogno anche dell'autorizzazione perkms:CreateGrant, e. kms:DescribeKey kms:GenerateDataKey

Importante

Se prevedi di utilizzare la console Security Lake per aggiungere un'origine personalizzata, puoi saltare il passaggio successivo e procedere con. Aggiungere una fonte personalizzata in Security Lake La console Security Lake offre un processo semplificato per iniziare e crea tutti i IAM ruoli necessari o utilizza i ruoli esistenti per conto dell'utente.

Se intendi utilizzare Security Lake API o AWS CLI aggiungere una fonte personalizzata, continua con il passaggio successivo per creare un IAM ruolo che consenta l'accesso in scrittura alla posizione del bucket di Security Lake.

Crea un IAM ruolo per consentire l'accesso in scrittura alla posizione del bucket di Security Lake (APIe solo passaggio AWS CLI)

Se utilizzi Security Lake API o vuoi AWS CLI aggiungere un'origine personalizzata, aggiungi questo IAM ruolo per concedere l' AWS Glue autorizzazione a scansionare i dati di origine personalizzati e identificare le partizioni nei dati. Queste partizioni sono necessarie per organizzare i dati e creare e aggiornare tabelle nel Data Catalog.

Dopo aver creato questo IAM ruolo, avrai bisogno dell'Amazon Resource Name (ARN) del ruolo per aggiungere una fonte personalizzata.

È necessario allegare la policy arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole AWS gestita.

Per concedere le autorizzazioni necessarie, devi anche creare e incorporare la seguente politica in linea nel tuo ruolo per consentire Crawler di AWS Glue la lettura dei file di dati dall'origine personalizzata e la creazione/aggiornamento delle tabelle in Data Catalog. AWS Glue

{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3WriteRead", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::{{bucketName}}/*" ] } ] }

Allega la seguente politica di fiducia per consentire e Account AWS utilizzando la quale può assumere il ruolo in base all'ID esterno:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "glue.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Se il bucket S3 nella regione in cui stai aggiungendo la fonte personalizzata è crittografato con un file gestito dal cliente AWS KMS key, devi inoltre allegare la seguente politica al ruolo e alla tua politica chiave: KMS

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