Raccogli i log di accesso del gateway dell'API AWS

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 > 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 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 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 Google SecOps.
  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 buffer = 1 MiB, Intervallo buffer = 60 secondi.
    • Compressione: seleziona Disattivata.
    • Backup S3: seleziona Disattivato.
    • Lascia le impostazioni Riprova e Registrazione invariate.
  3. Fai clic su Crea stream di pubblicazione. Ad esempio cwlogs-to-secops.

Configura le autorizzazioni IAM e abbonati al 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. Allega 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 delle sottoscrizioni e fai clic su Crea.

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

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