Raccogli i log di accesso del gateway dell'API AWS
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 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 privilegiato ad AWS
Abilita il logging degli accessi di Amazon API Gateway (in CloudWatch Logs)
- Vai alla console AWS > API Gateway.
Per le API REST:
- Apri Stage > Logs/Tracing > enable Access logging.
Formato log: seleziona 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" }
Gruppo di log CloudWatch Logs: scegli o crea un gruppo di log (ad esempio
/aws/apigateway/access
).
Per le API HTTP:
- Seleziona la tua API > Monitoraggio > Logging.
- Seleziona Fase > Modifica.
- Attiva Logging degli accessi.
- Utilizza lo stesso formato dei log JSON indicato sopra.
- Gruppo di log CloudWatch Logs: scegli o crea un gruppo di log (ad esempio
/aws/apigateway/access
).
Fai clic su Salva.
Configura 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 Nome feed, inserisci
Amazon API Gateway - CloudWatch via Firehose
. - Seleziona Amazon Data Firehose come Tipo di origine.
- Seleziona Amazon API Gateway come tipo di log.
- Fai clic su Avanti.
- Specifica i valori per i seguenti parametri di input:
- Delimitatore di divisione: facoltativo
n
- Spazio dei nomi dell'asset:
aws.api_gateway
- Etichette di importazione: ad esempio,
source=apigw_access
,aws_region=<your-region>
- Delimitatore di divisione: facoltativo
- Fai clic su Avanti.
- Rivedi 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 limitane l'accesso all'API Google SecOps.
- Copia e salva la chiave API in un luogo sicuro.
Configura Amazon Kinesis Data Firehose (direttamente su Google SecOps)
- Nella console AWS, vai a Kinesis > Data Firehose > Crea flusso di distribuzione.
- Fornisci i seguenti dettagli di configurazione:
- Origine: seleziona Inserimento diretto o altre origini.
- Destinazione: scegli Endpoint HTTP.
- URL endpoint HTTP: inserisci
ENDPOINT_URL?key=API_KEY
(utilizza l'URL dell'endpoint HTTPS del feed e la chiave API del passaggio precedente). - Metodo HTTP: seleziona POST.
- Chiave di accesso: incolla la chiave segreta generata nel feed.
- Suggerimenti per il buffering: imposta Dimensione buffer = 1 MiB, Intervallo buffer = 60 secondi.
- Compressione: seleziona Disattivata.
- Backup S3: seleziona Disattivato.
- Lascia le impostazioni Riprova e Registrazione invariate.
- Fai clic su Crea stream di pubblicazione. Ad esempio
cwlogs-to-secops
.
Configura le autorizzazioni IAM e abbonati al gruppo di log
- Nella console AWS, vai a IAM > Policy > Crea 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 tua regione AWS e il tuo ID account.
Assegna un nome alla policy
CWLtoFirehoseWrite
e fai clic su Crea policy.Vai a IAM > Ruoli > Crea ruolo.
Seleziona Norma di attendibilità personalizzata e inserisci quanto segue:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "logs.<your-region>.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Allega la policy
CWLtoFirehoseWrite
al ruolo.Assegna al ruolo il nome
CWLtoFirehoseRole
e fai clic su Crea ruolo.Vai a CloudWatch > Logs > Log groups.
Seleziona il gruppo di log API Gateway che hai creato in precedenza.
Apri la scheda Filtri delle sottoscrizioni e fai clic su Crea.
Scegli Crea filtro di sottoscrizione Amazon Kinesis Data Firehose.
Configura quanto segue:
- Destinazione: stream di pubblicazione
cwlogs-to-secops
. - Concedi autorizzazione: ruolo
CWLtoFirehoseRole
. - Nome filtro: inserisci
all-events
. - Pattern di filtro: lascia vuoto per inviare tutti gli eventi.
- Destinazione: stream di pubblicazione
Fai clic su Avvia streaming.
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.