Mengumpulkan log akses AWS API Gateway

Didukung di:

Dokumen ini menjelaskan cara menyerap log akses Amazon API Gateway ke Google Security Operations menggunakan AWS CloudWatch Logs dan Kinesis Data Firehose. Amazon API Gateway menyediakan REST API dan HTTP API untuk membangun dan mengelola API dalam skala besar. Log akses membantu memantau penggunaan API dan memecahkan masalah. Integrasi ini menyalurkan log tersebut ke Google SecOps untuk dianalisis dan dipantau.

Sebelum memulai

Pastikan Anda memenuhi prasyarat berikut:

  • Instance Google SecOps
  • Akses istimewa ke AWS

Aktifkan Pencatatan Log Akses Amazon API Gateway (ke CloudWatch Logs)

  1. Buka AWS Console > API Gateway.
  2. Untuk REST API:

    • Buka Stage > Logs/Tracing > enable Access logging.
    • Format log: Pilih 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"
      }
      
    • Grup log CloudWatch Logs: Pilih atau buat grup log (misalnya, /aws/apigateway/access).

  3. Untuk HTTP API:

    • Pilih API > Monitor > Logging.
    • Pilih Tahap > Edit.
    • Aktifkan Logging akses.
    • Gunakan format log JSON yang sama seperti di atas.
    • Grup log CloudWatch Logs: Pilih atau buat grup log (misalnya, /aws/apigateway/access).
  4. Klik Simpan.

Mengonfigurasi Feed di Google SecOps untuk Menyerap log Amazon API Gateway

  1. Buka Setelan SIEM > Feed.
  2. Klik + Tambahkan Feed Baru.
  3. Di kolom Nama feed, masukkan Amazon API Gateway - CloudWatch via Firehose.
  4. Pilih Amazon Data Firehose sebagai Jenis sumber.
  5. Pilih Amazon API Gateway sebagai Jenis log.
  6. Klik Berikutnya.
  7. Tentukan nilai untuk parameter input berikut:
    • Pemisah pemisahan: Opsional n
    • Namespace aset: aws.api_gateway
    • Label penyerapan: Misalnya, source=apigw_access, aws_region=<your-region>
  8. Klik Berikutnya.
  9. Tinjau konfigurasi feed, lalu klik Kirim.
  10. Di Detail feed, klik Generate Secret Key dan salin Secret Key.
  11. Salin URL endpoint HTTPS feed dari Endpoint Information.
  12. Buat kunci Google Cloud API di APIs & Services > Credentials > Create credentials > API key, dan batasi aksesnya ke Google SecOps API.
  13. Salin dan simpan kunci API di lokasi yang aman.

Mengonfigurasi Amazon Kinesis Data Firehose (Langsung ke Google SecOps)

  1. Di AWS Console, buka Kinesis > Data Firehose > Create delivery stream.
  2. Berikan detail konfigurasi berikut:
    • Sumber: Pilih PUT langsung atau sumber lainnya.
    • Tujuan: Pilih endpoint HTTP.
    • URL endpoint HTTP: Masukkan ENDPOINT_URL?key=API_KEY (gunakan URL endpoint HTTPS Feed dan kunci API dari langkah sebelumnya).
    • Metode HTTP: Pilih POST.
    • Kunci akses: Tempelkan Kunci Rahasia yang dihasilkan di feed.
    • Petunjuk buffering: Tetapkan Ukuran buffer = 1 MiB, Interval buffer = 60 detik.
    • Kompresi: Pilih Dinonaktifkan.
    • Pencadangan S3: Pilih Dinonaktifkan.
    • Biarkan setelan coba lagi dan pencatatan log sebagai default.
  3. Klik Buat aliran pengiriman. (Misalnya, cwlogs-to-secops.)

Mengonfigurasi Izin IAM dan Berlangganan Grup Log

  1. Di Konsol AWS, buka IAM > Policies > Create policy > JSON.
    1. Di editor JSON, masukkan kebijakan berikut:
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "firehose:PutRecord",
            "firehose:PutRecordBatch"
          ],
          "Resource": "arn:aws:firehose:<region>:<account-id>:deliverystream/cwlogs-to-secops"
        }
      ]
    }
    
    • Ganti <region> dan <account-id> dengan ID akun dan Region AWS Anda.
  2. Beri nama kebijakan CWLtoFirehoseWrite, lalu klik Buat kebijakan.

  3. Buka IAM > Roles > Create role.

  4. Pilih Kebijakan kepercayaan kustom dan masukkan hal berikut:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "Service": "logs.<your-region>.amazonaws.com"
          },
          "Action": "sts:AssumeRole"
        }
      ]
    }
    
  5. Lampirkan kebijakan CWLtoFirehoseWrite ke peran.

  6. Beri nama peran CWLtoFirehoseRole, lalu klik Buat peran.

  7. Buka CloudWatch > Logs > Log groups.

  8. Pilih grup log API Gateway yang Anda buat sebelumnya.

  9. Buka tab Filter langganan, lalu klik Buat.

  10. Pilih Create Amazon Kinesis Data Firehose subscription filter.

  11. Konfigurasi hal berikut ini:

    • Tujuan: Aliran pengiriman cwlogs-to-secops.
    • Memberikan izin: Peran CWLtoFirehoseRole.
    • Nama filter: Masukkan all-events.
    • Pola filter: Biarkan kosong untuk mengirim semua peristiwa.
  12. Klik Mulai streaming.

Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.