Raccogliere i log di accesso di AWS API Gateway
Questo documento spiega come importare i log di accesso di Amazon API Gateway in Google Security Operations utilizzando AWS CloudWatch Logs e Kinesis Data Firehose. Amazon API Gateway fornisce API REST e HTTP per creare e gestire le API su larga scala. I log di accesso consentono di monitorare l'utilizzo delle API e risolvere i problemi. Questa integrazione trasmette questi log a Google SecOps per l'analisi e il monitoraggio.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Istanza Google SecOps
- Accesso con privilegi ad AWS
Abilitare il logging degli accessi di Amazon API Gateway (in CloudWatch Logs)
- Vai a Console AWS > API Gateway.
Per le API REST:
- Apri Stage > Logs/Tracing > enable Access logging.
Log format: Select JSON.
{ "requestId":"$context.requestId", "ip":"$context.identity.sourceIp", "requestTime":"$context.requestTime", "httpMethod":"$context.httpMethod", "routeKey":"$context.routeKey", "status":"$context.status", "protocol":"$context.protocol", "responseLength":"$context.responseLength", "integrationLatency":"$context.integrationLatency", "error":"$context.error.message" }CloudWatch Logs log group: Choose or create a log group (for example,
/aws/apigateway/access).
Per le API HTTP:
- Select your API > Monitor > Logging.
- Select Stage > Edit.
- Enable Access logging.
- Utilizza lo stesso formato dei log JSON di sopra.
- CloudWatch Logs log group: Choose or create a log group (for example,
/aws/apigateway/access).
Fai clic su Salva.
Configurare un feed in Google SecOps per importare i log di Amazon API Gateway
- Vai a Impostazioni SIEM > Feed.
- Fai clic su + Aggiungi nuovo feed.
- Nel campo Feed name (Nome feed), inserisci
Amazon API Gateway - CloudWatch via Firehose. - Seleziona Amazon Data Firehose come Source type (Tipo di origine).
- Seleziona Amazon API Gateway come Log type (Tipo di log).
- Fai clic su Avanti.
- Specifica i valori per i seguenti parametri di input:
- Split delimiter (Delimitatore di divisione):
n(facoltativo) - Asset namespace (Spazio dei nomi degli asset):
aws.api_gateway - Ingestion labels (Etichette di importazione): ad esempio
source=apigw_access,aws_region=<your-region>
- Split delimiter (Delimitatore di divisione):
- Fai clic su Avanti.
- Esamina la configurazione del feed e fai clic su Invia.
- Nei Dettagli del feed, fai clic su Genera chiave segreta e copia la chiave segreta.
- Copia l'URL dell'endpoint HTTPS del feed da Informazioni sull'endpoint.
- Crea una chiave API Google Cloud in API e servizi > Credenziali > Crea credenziali > Chiave API e limitala all'API Chronicle.
- Copia e salva la chiave API in un luogo sicuro.
Configurare Amazon Kinesis Data Firehose (direttamente in Google SecOps)
- Nella console AWS, vai a Kinesis > Data Firehose > Create delivery stream.
- Fornisci i seguenti dettagli di configurazione:
- Source (Origine): seleziona Direct PUT or other sources (PUT diretto o altre origini).
- Destination (Destinazione): scegli HTTP endpoint (Endpoint HTTP).
- URL dell'endpoint HTTP: inserisci
ENDPOINT_URL?key=API_KEY(utilizza l'URL dell'endpoint HTTPS del feed e la chiave API del passaggio precedente). - HTTP method (Metodo HTTP): seleziona POST.
- Access key (Chiave di accesso): incolla la chiave segreta generata nel feed.
- Buffering hints (Suggerimenti per il buffering): imposta Buffer size (Dimensione del buffer) = 1 MiB, Buffer interval (Intervallo buffer) = 60 seconds (60 secondi).
- Compression (Compressione): seleziona Disabled (Disattivata).
- S3 backup (Backup S3): seleziona Disabled (Disattivata).
- Lascia le impostazioni di retry (riprova) e logging (registrazione) come predefinite.
- Fai clic su Create delivery stream (Crea flusso di distribuzione). Ad esempio,
cwlogs-to-secops.
Configurare le autorizzazioni IAM e sottoscrivere il gruppo di log
- Nella console AWS, vai a IAM > Policies > Create policy > JSON.
- Nell'editor JSON, inserisci la seguente policy:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "firehose:PutRecord", "firehose:PutRecordBatch" ], "Resource": "arn:aws:firehose:<region>:<account-id>:deliverystream/cwlogs-to-secops" } ] }- Sostituisci
<region>e<account-id>con la regione AWS e l'ID account.
Assegna alla policy il nome
CWLtoFirehoseWritee fai clic su Create policy (Crea policy).Vai a IAM > Roles > Create role (Crea ruolo).
Seleziona Custom trust policy (Policy di attendibilità personalizzata) e inserisci quanto segue:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "logs.<your-region>.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }Collega la policy
CWLtoFirehoseWriteal ruolo.Assegna al ruolo il nome
CWLtoFirehoseRolee fai clic su Create role (Crea ruolo).Vai a CloudWatch > Logs > Log groups (Gruppi di log).
Seleziona il gruppo di log API Gateway che hai creato in precedenza.
Apri la scheda Subscription filters (Filtri di sottoscrizione) e fai clic su Create (Crea).
Scegli Create Amazon Kinesis Data Firehose subscription filter (Crea filtro di sottoscrizione di Amazon Kinesis Data Firehose).
Configura quanto segue:
- Destination (Destinazione): flusso di distribuzione
cwlogs-to-secops. - Grant permission (Concedi autorizzazione): ruolo
CWLtoFirehoseRole. - Filter name (Nome filtro): inserisci
all-events. - Filter pattern (Pattern di filtro): lascia vuoto per inviare tutti gli eventi.
- Destination (Destinazione): flusso di distribuzione
Fai clic su Start streaming (Avvia streaming).
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.