View a markdown version of this page

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 è in grado di raccogliere registri ed eventi da fonti personalizzate di terze parti. Una fonte personalizzata di Security Lake è un servizio di terze parti che invia registri ed eventi di sicurezza ad Amazon Security Lake. Prima di inviare i dati, l'origine personalizzata deve convertire i log e gli eventi in Open Cybersecurity Schema Framework (OCSF) e soddisfare i requisiti di origine per Security Lake, tra cui partizionamento, formato di file parquet e requisiti di dimensione e velocità degli oggetti.

Per ogni fonte personalizzata, Security Lake gestisce quanto segue:

  • Fornisce un prefisso univoco per la fonte 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 policy AWS gestita denominata. AmazonSecurityLakePermissionsBoundary

  • Crea una AWS Lake Formation tabella per organizzare gli oggetti che il sorgente scrive su Security Lake.

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

Nota

È possibile aggiungere fino a un massimo di 50 sorgenti di log personalizzate in un account.

Per aggiungere una fonte personalizzata a Security Lake, questa deve soddisfare i seguenti requisiti. Il mancato rispetto di questi requisiti potrebbe avere un impatto sulle prestazioni e sui casi d'uso dell'analisi, come le interrogazioni.

  • Destinazione: l'origine personalizzata deve essere in grado di scrivere dati su Security Lake come set di oggetti S3 con 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) univoca come fonte separata. Security Lake crea un ruolo IAM che consente alla fonte personalizzata di scrivere nella posizione specificata nel bucket S3.

  • Formato: ogni oggetto S3 raccolto dal sorgente personalizzato deve essere formattato come un file Apache Parquet.

  • Schema: la stessa classe di eventi OCSF deve essere applicata a ogni record all'interno di un oggetto. Parquet-formatted Security Lake supporta le versioni 1.x e 2.x di Parquet. La dimensione della pagina di 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 utilizzare zstandard.

  • Partizionamento: gli oggetti devono essere partizionati per regione, account, EventDay. AWS Gli oggetti devono essere preceduti da. source location/region=region/accountId=accountID/eventDay=yyyyMMdd/

  • Dimensione e frequenza degli oggetti: 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 con una frequenza superiore a 5 minuti se i file hanno una dimensione superiore a 256 MB. I requisiti relativi all'oggetto e alle dimensioni sono l'ottimizzazione di Security Lake for Query Performance. Il mancato rispetto dei requisiti di origine personalizzati può avere un impatto sulle prestazioni di Security Lake.

  • Ordinamento: all'interno di ciascun Parquet-formatted oggetto, i record devono essere ordinati in base al tempo per ridurre il costo dell'interrogazione dei dati.

Nota

Utilizza lo strumento di convalida OCSF per verificare se la fonte personalizzata è compatibile con. OCSF Schema Per le fonti personalizzate, Security Lake supporta OCSF versione 1.3 e precedenti.

Requisiti di partizionamento per l'inserimento di sorgenti personalizzate in Security Lake

Per facilitare l'elaborazione e l'interrogazione efficienti dei dati, dobbiamo soddisfare i requisiti di partizionamento e oggetto e dimensione quando aggiungiamo una fonte personalizzata a Security Lake:

Partizionamento

Gli oggetti devono essere partizionati in base alla posizione di origine, Regione AWS, Account AWS e alla data.

  • Il percorso dei dati della partizione è formattato come

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

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

L'elenco seguente descrive i parametri utilizzati nella partizione del percorso S3:

  • Il nome del bucket Amazon S3 in cui Security Lake memorizza i dati di origine personalizzati.

  • source-location— Prefisso per la fonte personalizzata nel bucket S3. Security Lake memorizza tutti gli oggetti S3 per una determinata fonte con questo prefisso e il prefisso è univoco per la fonte specificata.

  • region— Regione AWS in cui vengono caricati i dati. Ad esempio, è necessario utilizzarlo US East (N. Virginia) per caricare i dati nel bucket Security Lake nella regione Stati Uniti orientali (Virginia settentrionale).

  • accountId— Account AWS ID a cui si riferiscono i record nella partizione di origine. Per i record relativi ad account esterni a AWS, si consiglia di utilizzare una stringa come o. external external_externalAccountId Adottando questa convenzione di denominazione, è possibile evitare ambiguità nella denominazione degli ID degli account esterni in modo che non entrino in conflitto con gli ID account o gli ID AWS account esterni gestiti da altri sistemi di gestione delle identità.

  • eventDay— Timestamp UTC del record, troncato all'ora, formattato come una stringa di otto caratteri (). YYYYMMDD Se i record specificano un fuso orario diverso nel timestamp dell'evento, è necessario convertire il timestamp in UTC per questa chiave di partizione.

Prerequisiti per aggiungere una fonte personalizzata in Security Lake

Quando si aggiunge una fonte personalizzata, Security Lake crea un ruolo IAM 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}, dove region è quello Regione AWS in cui si aggiunge la fonte personalizzata. Security Lake allega 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 policy gestita denominata. AmazonSecurityLakePermissionsBoundary

Verificare le autorizzazioni

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

Per verificare le tue autorizzazioni, utilizza IAM per esaminare le politiche IAM associate alla tua identità IAM. Quindi, confronta le informazioni contenute in tali policy 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 una fonte 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,, kms:DescribeKey e. kms:GenerateDataKey

Importante

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

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

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

Se stai utilizzando l'API Security Lake o AWS CLI per aggiungere una fonte personalizzata, aggiungi questo ruolo IAM per concedere AWS Glue l'autorizzazione alla scansione dei dati di origine personalizzati e all'identificazione delle partizioni nei dati. Queste partizioni sono necessarie per organizzare i dati e creare e aggiornare le tabelle nel Data Catalog.

Dopo aver creato questo ruolo IAM, 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 inoltre creare e incorporare la seguente politica in linea nel tuo ruolo Crawler di AWS Glue per consentire la lettura dei file di dati dall'origine personalizzata e dalle tabelle in AWS Glue Data create/update Catalog.

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

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

JSON
{ "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 codice gestito dal cliente AWS KMS key, devi anche allegare la seguente policy al ruolo e alla tua policy 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}}" ] }