Raccogli i log di accesso di AWS API Gateway

Versione parser: 7.0

Supportato 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 privilegiato ad AWS

Abilita il logging degli accessi di Amazon API Gateway (in CloudWatch Logs)

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

    • Apri Stage > Log/Tracciamento > attiva Registrazione 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 CloudWatch Logs: scegli o crea un gruppo di log (ad esempio /aws/apigateway/access).

  3. 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).
  4. Fai clic su Salva.

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

  1. Vai a Impostazioni SIEM > 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: facoltativo n
    • 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. Nei 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 su Google SecOps)

  1. Nella console AWS, vai a Kinesis > Data Firehose > 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 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 del buffer = 1 MiB, Intervallo buffer = 60 secondi.
    • Compressione. Seleziona Disattivata.
    • Backup S3: seleziona Disattivato.
    • Lascia invariate le impostazioni retry e logging.
  3. Fai clic su Crea stream di pubblicazione. Ad esempio cwlogs-to-secops.

Configurare le autorizzazioni IAM e sottoscrivere il gruppo di log

  1. Nella console AWS, vai a IAM > Policy > Crea policy > JSON.
    1. Nell'editor JSON, inserisci il seguente criterio:
    {
      "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.
  2. Assegna un nome alla policy CWLtoFirehoseWrite e fai clic su Crea policy.

  3. Vai a IAM > Ruoli > Crea ruolo.

  4. Seleziona Norme di attendibilità personalizzate 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 > Log > Gruppi di log.

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

  9. Apri la scheda Filtri abbonamento e fai clic su Crea.

  10. Scegli Crea filtro di abbonamento Amazon Kinesis Data Firehose.

  11. 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.
  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.