Raccogli i log di accesso di API Gateway AWS

Versione parser: 7.0

Supportata in:

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 aiutano a monitorare l'utilizzo delle API e a 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

Abilita il logging degli accessi ad Amazon API Gateway (per i log di CloudWatch)

  1. Vai alla console AWS > API Gateway.
  2. Per le API REST:

    • Apri Fase > Log/Tracciamento > abilita Logging degli accessi.
    • 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 di CloudWatch Logs: scegli o crea un gruppo di log (ad esempio /aws/apigateway/access).

  3. Per le API HTTP :

    • Seleziona la tua API > Monitora > Logging.
    • Seleziona Fase > Modifica.
    • Attiva Logging degli accessi.
    • Utilizza lo stesso formato dei log JSON descritto sopra.
    • Gruppo di log di CloudWatch Logs: scegli o crea un gruppo di log (ad esempio /aws/apigateway/access).
  4. Fai clic su Salva.

Configura un feed in Google SecOps per importare i log di Amazon API Gateway

  1. Vai a Impostazioni > Gestione dei dati > Feed. Se utilizzi una piattaforma solo SIEM, vai a Impostazioni > Feed.
  2. Fai clic su + Aggiungi nuovo feed.
  3. Nel campo Nome feed, inserisci Amazon API Gateway - CloudWatch via Firehose.
  4. Seleziona Amazon Data Firehose come Tipo di origine.
  5. Seleziona Amazon API Gateway come Tipo di log.
  6. Fai clic su Avanti.
  7. Specifica i valori per i seguenti parametri di input:
    • Delimitatore di divisione: n facoltativo
    • Spazio dei nomi degli asset: aws.api_gateway
    • Etichette di importazione: ad esempio source=apigw_access, aws_region=<your-region>
  8. Fai clic su Avanti.
  9. Rivedi la configurazione del feed e fai clic su Invia.
  10. In Dettagli del feed, fai clic su Genera chiave segreta e copia la chiave segreta.
  11. Copia l'URL dell'endpoint HTTPS del feed da Informazioni sull'endpoint.
  12. Crea una chiave API Google Cloud in API e servizi > Credenziali > Crea credenziali > Chiave API e limitane l'utilizzo all'API Chronicle.
  13. Copia e salva la chiave API in un luogo sicuro.

Configura Amazon Kinesis Data Firehose (direttamente in Google SecOps)

  1. Nella console AWS, vai a Kinesis > Data Firehose > Create delivery stream (Crea stream di distribuzione).
  2. Fornisci i seguenti dettagli di configurazione:
    • Origine: seleziona PUT diretto o altre origini.
    • Destinazione: scegli Endpoint HTTP.
    • URL endpoint HTTP: inserisci ENDPOINT_URL?key=API_KEY (utilizza l'URL endpoint HTTPS del feed e la chiave API del passaggio precedente).
    • Metodo HTTP: seleziona POST.
    • Chiave di accesso: incolla la chiave secret generata nel feed.
    • Suggerimenti per il buffering: imposta Dimensione del buffer = 1 MiB, Intervallo del buffer = 60 secondi.
    • Compressione: seleziona Disattivata.
    • Backup S3: seleziona Disattivato.
    • Lascia le impostazioni di retry (tentativo di nuovo invio) e logging (logging) sui valori predefiniti.
  3. Fai clic su Crea stream di pubblicazione. Ad esempio cwlogs-to-secops.

Configura le autorizzazioni IAM e sottoscrivi il gruppo di log

  1. Nella console AWS, vai a IAM > Policy > Crea policy > JSON.
    1. 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 e l'ID account AWS.
  2. Assegna alla policy il nome CWLtoFirehoseWrite e fai clic su Crea policy.

  3. Vai a IAM > Ruoli > Crea ruolo.

  4. Seleziona 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"
        }
      ]
    }
    
  5. Collega la policy CWLtoFirehoseWrite al ruolo.

  6. Assegna al ruolo il nome CWLtoFirehoseRole e fai clic su Crea ruolo.

  7. Vai a CloudWatch > Logs > Log groups.

  8. Seleziona il gruppo di log API Gateway che hai creato in precedenza.

  9. Apri la scheda Filtri di sottoscrizione e fai clic su Crea.

  10. Scegli Create Amazon Kinesis Data Firehose subscription filter (Crea filtro di sottoscrizione Amazon Kinesis Data Firehose).

  11. Configura quanto segue:

    • Destinazione: stream di distribuzione cwlogs-to-secops.
    • Concedi l'autorizzazione: ruolo CWLtoFirehoseRole.
    • Nome filtro: inserisci all-events.
    • Pattern di filtro: lascia vuoto per inviare tutti gli eventi.
  12. Fai clic su Avvia streaming.

Log delle modifiche

Visualizza il log delle modifiche per questo parser

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.