Mengumpulkan log pengelolaan API Azure

Versi Parser: 1.0

Didukung di:

Dokumen ini menjelaskan cara membuat feed Azure Event Hub untuk menyerap log Azure pengelolaan API ke Google Security Operations.

Azure API Management adalah platform pengelolaan API hybrid dan multicloud di semua lingkungan. Alat ini membantu organisasi memublikasikan API kepada developer eksternal, partner, dan internal untuk mengoptimalkan potensi data dan layanan mereka. Pengelolaan API menyediakan alat untuk penemuan API, fungsi gateway, kebijakan keamanan, analisis, dan interaksi developer. Log diagnostik mencatat informasi mendetail tentang operasi gateway API, termasuk permintaan, respons, dan error.

Sebelum memulai

Pastikan Anda memiliki prasyarat berikut:

  • Instance Google SecOps
  • Akses istimewa ke portal Microsoft Azure dengan izin untuk:
    • Membuat namespace Event Hub
    • Membuat Event Hubs
    • Mengonfigurasi Setelan Diagnostik untuk Azure API Management
    • Mengelola kebijakan akses
  • Instance layanan Azure API Management yang sudah ada

Membuat namespace Event Hub

Namespace Event Hub adalah container pengelolaan untuk satu atau beberapa Event Hub.

  1. Di portal Azure, telusuri Event Hubs.
  2. Klik + Create.
  3. Berikan detail konfigurasi berikut:

    Setelan Nilai
    Langganan Pilih langganan Azure Anda
    Grup resource Pilih yang sudah ada atau buat yang baru
    Nama namespace Masukkan nama yang unik (misalnya, secops-apim-eventhub)
    Location Pilih region (misalnya, East US)
    Tingkat harga Standard (direkomendasikan untuk produksi)
    Unit throughput Mulai dengan 1, aktifkan Auto-inflate (direkomendasikan)
  4. Klik Review + create.

  5. Tinjau ringkasan, lalu klik Create.

  6. Tunggu hingga deployment selesai (1-2 menit).

Membuat Event Hub

  1. Setelah namespace di-deploy, buka namespace Event Hub.
  2. Di navigasi kiri, pilih Event Hubs di bagian Entities.
  3. Klik + Event Hub.
  4. Berikan detail konfigurasi berikut:

    Setelan Nilai
    Nama Masukkan nama yang unik (misalnya, apim-logs)
    Jumlah partisi 40 (direkomendasikan untuk penskalaan Google SecOps yang optimal)
    Retensi pesan 7 hari (minimum yang direkomendasikan)
    Ambil Dinonaktifkan (tidak diperlukan untuk Google SecOps)
  5. Klik Create.

Mendapatkan string koneksi Event Hub

Google SecOps memerlukan string koneksi untuk melakukan autentikasi ke Event Hub.

  1. Buka Event Hub namespace.
  2. Di navigasi kiri, pilih Shared access policies di bagian Settings.
  3. Klik kebijakan default RootManageSharedAccessKey.
  4. Salin string koneksi-kunci utama.
  5. Simpan string koneksi ini dengan aman.
  • Contoh:

    Original: Endpoint=sb://secops-apim-eventhub.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=abc123==;EntityPath=apim-logs
    
    Remove EntityPath: Endpoint=sb://secops-apim-eventhub.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=abc123==
    

Opsi B: String koneksi tingkat Event Hub

  1. Buka Event Hub (bukan namespace).
  2. Di navigasi kiri, pilih Shared access policies di bagian Settings.
  3. Klik + Tambahkan untuk membuat kebijakan baru.
  4. Berikan detail konfigurasi berikut:
    • Policy name: Masukkan nama deskriptif (misalnya, chronicle-read)
    • Permissions: Pilih Listen saja (akses hanya baca)
  5. Klik Create.
  6. Klik kebijakan yang baru dibuat.
  7. Salin string koneksi-kunci utama.
  8. Simpan string koneksi ini dengan aman.

Mengonfigurasi Azure API Management untuk melakukan streaming ke Event Hub

  1. Di portal Azure, telusuri layanan pengelolaan API.
  2. Pilih instance layanan API Management Anda.
  3. Di navigasi kiri, pilih Diagnostic settings di bagian Monitoring.
  4. Klik + Add diagnostic setting.
  5. Berikan detail konfigurasi berikut:
    • Diagnostic setting name: Masukkan nama deskriptif (misalnya, apim-to-secops).
    • Di bagian Logs, pilih kategori berikut:
      • GatewayLogs: Log permintaan dan respons gateway API
      • WebSocketConnectionLogs: Log koneksi WebSocket (jika ada)
      • DeveloperPortalAuditLogs: Log audit portal developer (jika ada)
      • GatewayLlmLogs: Log gateway AI generatif (jika ada)
      • GatewayMCPLogs: Log server Model Context Protocol (MCP) (jika ada)
    • Di bagian Destination details, centang kotak Stream to an event hub.
    • Subscription: Pilih langganan yang berisi namespace Event Hub Anda.
    • Event hub namespace: Pilih namespace yang Anda buat sebelumnya (misalnya, secops-apim-eventhub).
    • Event hub name: Pilih Event Hub yang Anda buat (misalnya, apim-logs).
    • Event hub policy name: Pilih RootManageSharedAccessKey atau kebijakan kustom dengan izin Send.
  6. Klik Simpan.

(Opsional) Mengonfigurasi Azure Blob Storage untuk checkpointing

Google SecOps dapat menggunakan Azure Blob Storage untuk menyimpan checkpoint Event Hub, yang melacak peristiwa mana yang telah diproses. Tindakan ini mencegah penyerapan duplikat jika feed terganggu untuk sementara.

Membuat Akun Penyimpanan untuk checkpointing

  1. Di portal Azure, telusuri Storage accounts.
  2. Klik + Create.
  3. Berikan detail konfigurasi berikut:

    Setelan Nilai
    Langganan Pilih langganan Azure Anda
    Grup resource Gunakan grup resource yang sama dengan Event Hub
    Nama akun penyimpanan Masukkan nama yang unik (misalnya, secopsapimcheckpoint)
    Region Region yang sama dengan Event Hub
    Performa Standar
    Redundansi LRS (Locally redundant storage)
  4. Klik Review + create.

  5. Klik Create.

Membuat Container Blob

  1. Buka Akun Penyimpanan yang baru saja Anda buat.
  2. Di navigasi kiri, pilih Containers di bagian Penyimpanan data.
  3. Klik + Container.
  4. Berikan detail konfigurasi berikut:
    • Nama: Masukkan checkpoints
    • Tingkat akses publik: Pribadi (tidak ada akses anonim)
  5. Klik Create.

Mendapatkan kredensial Akun Penyimpanan

  1. Di Storage Account, pilih Access keys di bagian Security + networking.
  2. Klik Show keys.
  3. Salin dan simpan:
    • Storage account name: Nama akun penyimpanan Anda
    • Kunci 1: Nilai kunci akses

Anda akan memberikan nilai ini saat membuat feed Google SecOps.

(Opsional) Membuat grup konsumen khusus

Secara default, Event Hub menyediakan grup konsumen bernama $Default. Untuk lingkungan produksi, sebaiknya buat grup konsumen khusus untuk Google SecOps.

  1. Buka Event Hub (bukan namespace).
  2. Di navigasi kiri, pilih Consumer groups di bagian Entities.
  3. Klik + Consumer group.
  4. Berikan detail konfigurasi berikut:
    • Name: Masukkan nama deskriptif (misalnya, chronicle)
  5. Klik Create.

Mengonfigurasi feed di Google SecOps untuk menyerap log Pengelolaan API Azure

  1. Buka Setelan > Pengelolaan Data > Feed. Jika Anda menggunakan platform khusus SIEM, buka Settings > Feeds.
  2. Klik Tambahkan Feed Berita Baru.
  3. Di halaman berikutnya, klik Konfigurasi satu feed.
  4. Di kolom Nama feed, masukkan nama untuk feed (misalnya, Azure API Management Logs).
  5. Pilih Microsoft Azure Event Hub sebagai Source type.
  6. Pilih Azure API Management sebagai Log type.
  7. Klik Berikutnya.
  8. Tentukan nilai untuk parameter input berikut:

    • Event hub connection string: Masukkan string koneksi Event Hub yang Anda ambil sebelumnya

    • Jika menggunakan string koneksi tingkat namespace:

      • Pastikan Anda menghapus parameter EntityPath
      • Anda juga harus memberikan Event hub name di kolom berikutnya
    • Jika menggunakan string koneksi tingkat event hub:

      • Gunakan string koneksi apa adanya (termasuk EntityPath)
      • Kolom Event hub name dapat dibiarkan kosong
    • Event hub name: Masukkan nama Event Hub (misalnya, apim-logs)

      • Wajib diisi jika menggunakan string koneksi tingkat namespace.
      • Opsional jika menggunakan string koneksi tingkat event hub.
    • Consumer group (opsional): Masukkan nama grup konsumen

      • Biarkan kosong untuk menggunakan grup konsumen $Default default
      • Jika Anda membuat grup konsumen khusus, masukkan namanya (misalnya, chronicle)
    • Nama container penyimpanan blob (opsional): Untuk checkpointing, masukkan nama container (misalnya, checkpoints)

    Jika menyediakan penyimpanan blob untuk checkpoint:

    • Azure storage account name: Masukkan nama akun penyimpanan dari konfigurasi checkpointing
    • Azure storage account key: Masukkan kunci akses dari konfigurasi checkpointing

    • Namespace aset: Namespace aset

    • Label penyerapan: Label yang akan diterapkan ke peristiwa dari feed ini

  9. Klik Berikutnya.

  10. Tinjau konfigurasi feed berita baru Anda di layar Finalize, lalu klik Submit.

Untuk mengetahui informasi selengkapnya tentang feed Google SecOps, lihat dokumentasi feed Google SecOps.

Tabel pemetaan UDM

Kolom Log Pemetaan UDM Logika
Level_label additional.fields Digabung
Sku_label additional.fields Digabung
apiId_label additional.fields Digabung
apiRevision_label additional.fields Digabung
apimSubscriptionId_label additional.fields Digabung
backendMethod_label additional.fields Digabung
backendProtocol_label additional.fields Digabung
backendResponseCode_label additional.fields Digabung
backendTime_label additional.fields Digabung
cache_label additional.fields Digabung
clientProtocol_label additional.fields Digabung
durationMs_label additional.fields Digabung
eventName_label additional.fields Digabung
eventid_label additional.fields Digabung
functionInvocationId_label additional.fields Digabung
functionName_label additional.fields Digabung
hostInstanceId_label additional.fields Digabung
hostVersion_label additional.fields Digabung
isRequestSuccess_label additional.fields Digabung
operationId_label additional.fields Digabung
productId_label additional.fields Digabung
properties.message metadata.description Dipetakan secara langsung
time metadata.event_timestamp Diurai sebagai ISO8601
has_principal metadata.event_type Dipetakan: true → STATUS_UPDATE
operationName metadata.product_event_type Dipetakan secara langsung
DeploymentVersion metadata.product_version Dipetakan secara langsung
properties.method network.http.method Dipetakan secara langsung
properties.responseCode network.http.response_code Dipetakan secara langsung
properties.responseSize network.received_bytes Dipetakan secara langsung
properties.requestSize network.sent_bytes Dipetakan secara langsung
correlationId network.session_id Dipetakan secara langsung
properties.clientTlsCipherSuite network.tls.cipher Dipetakan secara langsung
properties.clientTlsVersion network.tls.version Dipetakan secara langsung
callerIpAddress principal.asset.ip Digabung
callerIpAddress principal.ip Digabung
location principal.location.name Dipetakan secara langsung
properties.url principal.url Dipetakan secara langsung
properties.userId principal.user.userid Dipetakan secara langsung
action security_result.action Digabung
resultType security_result.action Dipetakan: Succeeded → action
category security_result.category_details Digabung
properties.category security_result.category_details Digabung
level security_result.severity Dipetakan secara langsung
resultType security_result.summary Dipetakan secara langsung
properties.appName target.application Dipetakan secara langsung
properties.processId target.process.pid Dipetakan secara langsung
roleInstance_label target.resource.attribute.labels Digabung
resourceId target.resource.product_object_id Dipetakan secara langsung
properties.backendUrl target.url Dipetakan secara langsung
T/A metadata.event_type Konstanta: GENERIC_EVENT
T/A metadata.product_name Konstanta: AZURE API MANAGEMENT
T/A metadata.vendor_name Konstanta: AZURE_API_MANAGEMENT
T/A network.tls.version_protocol Konstanta: HTTP

Log Perubahan

Melihat Log Perubahan untuk parser ini

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