Raccogli i log di accesso di AWS API Gateway

Versione del 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 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)

  1. Vai alla console AWS > API Gateway.
  2. 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).

  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 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 dell'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 Endpoint Information (Informazioni sull'endpoint).
  12. Crea una chiave API Google Cloud in API e servizi > Credenziali > Crea credenziali > Chiave API e limitane l'accesso 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 flusso di distribuzione.
  2. 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 del buffer = 1 MiB, Intervallo buffer = 60 secondi.
    • Compressione: seleziona Disattivata.
    • Backup S3: seleziona Disattivato.
    • Lascia le impostazioni Riprova e Registrazione predefinite.
  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 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.
  2. Assegna un nome alla policy CWLtoFirehoseWrite e fai clic su Crea policy.

  3. Vai a IAM > Ruoli > Crea ruolo.

  4. 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"
        }
      ]
    }
    
  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 sottoscrizione e fai clic su Crea.

  10. Scegli Crea filtro di iscrizione ad 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.