Parser ini mengekstrak kolom dari log JSON Cloudflare Web Application Firewall (WAF), mengubah, dan memetakannya ke Model Data Terpadu (UDM). Fungsi ini menangani berbagai tindakan Cloudflare, memperkaya data dengan metadata dan informasi jaringan sebelum menyusun output ke dalam format UDM.
Name: masukkan nama unik yang memenuhi persyaratan nama bucket (misalnya, cloudflare-waf).
Pilih tempat untuk menyimpan data Anda: pilih lokasi.
Pilih kelas penyimpanan untuk data Anda: pilih kelas penyimpanan default untuk bucket, atau pilih Autoclass untuk pengelolaan kelas penyimpanan otomatis.
Pilih cara mengontrol akses ke objek: pilih tidak untuk menerapkan pencegahan akses publik, dan pilih model kontrol akses untuk objek bucket Anda.
Kelas penyimpanan: Pilih berdasarkan kebutuhan Anda (misalnya, Standard).
Klik Buat.
Memberikan izin bucket kepada pengguna IAM Cloudflare
Di Google Cloud, buka Storage>Browser>Bucket>Permissions.
Tambahkan akun logpush@cloudflare-data. dengan izin Storage Object Admin.
Membuat Tugas Logpush untuk Log WAF menggunakan UI Cloudflare
Login ke Cloudflare.
Buka Analytics & Logs>Logpush.
Pilih Buat tugas Logpush.
Di Pilih tujuan, pilih Google Cloud Penyimpanan.
Masukkan detail tujuan berikut:
Bucket: Google Cloud Nama bucket penyimpanan
Jalur: Lokasi bucket dalam penampung penyimpanan
Pilih Atur log ke dalam subfolder harian
Klik Lanjutkan.
Pilih set data Security (WAF) untuk dikirim ke penyimpanan.
Konfigurasi tugas logpush:
Masukkan Nama tugas.
Di bagian Jika log cocok, Anda dapat memilih peristiwa yang akan disertakan dan/atau dihapus dari log Anda. Lihat Filter untuk mengetahui informasi selengkapnya. Tidak semua set data memiliki opsi ini.
Di kolom Kirim yang berikut, Anda dapat memilih untuk mengirim semua log ke tujuan penyimpanan atau memilih secara selektif log yang ingin Anda kirim.
Klik Kirim.
Menyiapkan feed
Untuk mengonfigurasi feed, ikuti langkah-langkah berikut:
Buka Setelan SIEM>Feed.
Klik Tambahkan Feed Baru.
Di halaman berikutnya, klik Konfigurasi satu feed.
Di kolom Feed name, masukkan nama feed (misalnya, Cloudflare WAF Logs).
Pilih Google Cloud Storage V2 sebagai Source type.
Pilih Cloudflare WAF sebagai Jenis log.
Klik Get Service Account.
Klik Berikutnya.
Tentukan nilai untuk parameter input berikut:
URI Bucket Penyimpanan: URL Cloud Storage.
Opsi penghapusan sumber: pilih opsi penghapusan sesuai preferensi Anda.
Klik Berikutnya.
Tinjau konfigurasi feed baru Anda di layar Selesaikan, lalu klik Kirim.
Tabel Pemetaan UDM
Kolom Log
Pemetaan UDM
Logika
Action
security_result.action_details
Nilai Action dari log mentah ditetapkan langsung ke kolom UDM ini.
Action
security_result.action
Nilai kolom ini berasal dari kolom Action dalam log mentah. Jika Action adalah "izinkan", kolom UDM akan disetel ke ALLOW. Jika Action adalah "challengeSolved", "jschallengeSolved", "managedchallengenoninteractivesolved", atau "managedchallengeinteractivesolved", kolom UDM akan disetel ke ALLOW_WITH_MODIFICATION. Jika Action adalah "drop", "block", atau "connectionclose", kolom UDM disetel ke BLOCK. Jika Action adalah "challengefailed" atau "jschallengefailed", kolom UDM akan disetel ke FAIL. Jika tidak, nilai ini akan ditetapkan ke UNKNOWN_ACTION.
ClientASN
network.asn
Nilai ClientASN dari log mentah langsung ditetapkan ke kolom UDM ini setelah dikonversi menjadi string.
ClientASNDescription
additional.fields.key
Kuncinya ditetapkan secara statis ke "ClientASNDescription".
ClientASNDescription
additional.fields.value.string_value
Nilai ClientASNDescription dari log mentah ditetapkan langsung ke kolom UDM ini.
ClientCountry
principal.location.country_or_region
Nilai ClientCountry dari log mentah ditetapkan langsung ke kolom UDM ini.
ClientIP
principal.ip
Nilai ClientIP dari log mentah ditetapkan langsung ke kolom UDM ini.
ClientRefererHost
intermediary.hostname
Nilai ClientRefererHost dari log mentah ditetapkan langsung ke kolom UDM ini.
ClientRefererPath
network.http.referral_url
Nilai ClientRefererPath dari log mentah ditetapkan langsung ke kolom UDM ini.
ClientRequestHost
target.hostname
Nilai ClientRequestHost dari log mentah ditetapkan langsung ke kolom UDM ini.
ClientRequestMethod
network.http.method
Nilai ClientRequestMethod dari log mentah ditetapkan langsung ke kolom UDM ini.
ClientRequestPath
target.file.full_path
Nilai ClientRequestPath dari log mentah ditetapkan langsung ke kolom UDM ini.
ClientRequestProtocol
network.application_protocol
Bagian protokol ClientRequestProtocol (misalnya, "HTTP" dari "HTTP/1.1") diekstrak menggunakan grok, dikonversi menjadi huruf besar, dan ditetapkan ke kolom UDM ini.
ClientRequestUserAgent
network.http.user_agent
Nilai ClientRequestUserAgent dari log mentah ditetapkan langsung ke kolom UDM ini.
Datetime
metadata.event_timestamp
Nilai Datetime dari log mentah diuraikan sebagai stempel waktu RFC 3339 dan ditetapkan ke kolom UDM ini.
EdgeColoCode
additional.fields.key
Kuncinya ditetapkan secara statis ke "EdgeColoCode".
EdgeColoCode
additional.fields.value.string_value
Nilai EdgeColoCode dari log mentah ditetapkan langsung ke kolom UDM ini.
EdgeResponseStatus
network.http.response_code
Nilai EdgeResponseStatus dari log mentah ditetapkan langsung ke kolom UDM ini dan dikonversi menjadi bilangan bulat.
Kind
metadata.product_event_type
Nilai Kind dari log mentah ditetapkan langsung ke kolom UDM ini.
Metadata.filter
target.resource.attribute.labels.value
Nilai Metadata.filter dari log mentah ditetapkan ke kolom value label dalam target.resource.attribute.labels. key untuk label ini ditetapkan secara statis ke "Filter metadata".
Metadata.type
target.resource.attribute.labels.value
Nilai Metadata.type dari log mentah ditetapkan ke kolom value label dalam target.resource.attribute.labels. key untuk label ini ditetapkan secara statis ke "Jenis metadata". Nilai kolom ini berasal dari keberadaan dan nilai ClientIP, ClientRequestHost, dan app_protocol. Lihat kode parser untuk logika tertentu. Secara statis ditetapkan ke "Cloudflare". Secara statis ditetapkan ke "Cloudflare log Aggregator". Secara statis disetel ke "CLOUDFLARE_WAF".
RayID
metadata.product_log_id
Nilai RayID dari log mentah ditetapkan langsung ke kolom UDM ini.
RuleID
security_result.rule_id
Nilai RuleID dari log mentah ditetapkan langsung ke kolom UDM ini.
Source
security_result.rule_name
Nilai Source dari log mentah ditetapkan langsung ke kolom UDM ini.
timestamp
metadata.event_timestamp, events.timestamp
Nilai timestamp dari log mentah ditetapkan langsung ke kolom UDM ini.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Sulit dipahami","hardToUnderstand","thumb-down"],["Informasi atau kode contoh salah","incorrectInformationOrSampleCode","thumb-down"],["Informasi/contoh yang saya butuhkan tidak ada","missingTheInformationSamplesINeed","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-09-04 UTC."],[[["\u003cp\u003eThis guide explains how to collect and ingest Cloudflare Web Application Firewall (WAF) logs into Google SecOps, using a parser that transforms and maps the data to the Unified Data Model (UDM).\u003c/p\u003e\n"],["\u003cp\u003eTo start, you need a Google SecOps instance, privileged access to both Google Cloud and Cloudflare, and a Cloudflare Enterprise plan to create a Google Cloud Storage bucket and set the necessary permissions.\u003c/p\u003e\n"],["\u003cp\u003eA Logpush job must be created within the Cloudflare UI, specifying the Google Cloud Storage bucket as the destination and selecting the "Security (WAF)" dataset for log collection.\u003c/p\u003e\n"],["\u003cp\u003eWithin Google SecOps, a new feed must be configured, selecting "Google Cloud Storage" as the source and "Cloudflare WAF" as the log type, also adding necessary details like the GCS URI and source deletion options.\u003c/p\u003e\n"],["\u003cp\u003eThe Cloudflare WAF logs are mapped to the UDM format, including mapping \u003ccode\u003eAction\u003c/code\u003e, \u003ccode\u003eClientIP\u003c/code\u003e, \u003ccode\u003eClientASN\u003c/code\u003e, \u003ccode\u003eClientRequestHost\u003c/code\u003e and other key fields to their corresponding UDM fields like \u003ccode\u003esecurity_result.action_details\u003c/code\u003e, \u003ccode\u003eprincipal.ip\u003c/code\u003e, and \u003ccode\u003etarget.hostname\u003c/code\u003e.\u003c/p\u003e\n"]]],[],null,["# Collect Cloudflare WAF logs\n===========================\n\nSupported in: \nGoogle secops [SIEM](/chronicle/docs/secops/google-secops-siem-toc)\n| **Note:** This feature is covered by [Pre-GA Offerings Terms](https://chronicle.security/legal/service-terms/) of the Google Security Operations Service Specific Terms. Pre-GA features might have limited support, and changes to pre-GA features might not be compatible with other pre-GA versions. For more information, see the [Google SecOps Technical Support Service guidelines](https://chronicle.security/legal/technical-support-services-guidelines/) and the [Google SecOps Service Specific Terms](https://chronicle.security/legal/service-terms/).\n\nThis parser extracts fields from Cloudflare Web Application Firewall (WAF) JSON logs, transforms and maps them to the Unified Data Model (UDM). It handles various Cloudflare actions, enriching the data with metadata and network information before structuring the output into the UDM format.\n\nBefore you begin\n----------------\n\nEnsure that you have the following prerequisites:\n\n- Google SecOps instance.\n- Privileged access to Google Cloud.\n- Cloudflare Enterprise plan.\n- Privileged access to Cloudflare.\n\nCreate a Google Cloud Storage Bucket\n------------------------------------\n\n1. Sign in to the Google Cloud console.\n2. Go to the **Cloud Storage Buckets** page.\n\n [Go to Buckets](https://console.cloud.google.com/storage/browser)\n3. Click **Create**.\n\n4. Configure the bucket:\n\n - **Name** : enter a unique name that meets the bucket name requirements (for example, **cloudflare-waf**).\n - **Choose where to store your data**: select a location.\n - **Choose a storage class for your data** : either select a **default storage class** for the bucket, or select **Autoclass** for automatic storage class management.\n - **Choose how to control access to objects** : select **not** to enforce **public access prevention** , and select an **access control model** for your bucket's objects.\n\n | **Note:** If public access prevention is already enforced by your project's organization policy, the **Prevent public access** checkbox is locked.\n - **Storage class** : Choose based on your needs (for example, **Standard**).\n5. Click **Create**.\n\n| **Note:** Do not set a retention policy, as the last data entry may need to be overwritten in case of a timeout.\n\nGrant bucket permissions to Cloudflare IAM user\n-----------------------------------------------\n\n1. In Google Cloud, go to **Storage** \\\u003e **Browser** \\\u003e **Bucket** \\\u003e **Permissions**.\n2. Add the account logpush@cloudflare-data.iam.gserviceaccount.com with Storage Object Admin permission.\n\nCreate a Logpush Job for WAF Logs using Cloudflare UI\n-----------------------------------------------------\n\n1. Sign in to Cloudflare.\n2. Go to **Analytics \\& Logs** \\\u003e **Logpush**.\n3. Select **Create a Logpush job**.\n4. In **Select a destination** , choose **Google Cloud Storage**.\n5. Enter the following destination details:\n - **Bucket**: Google Cloud Storage bucket name\n - **Path**: Bucket location within the storage container\n - Select **Organize logs into daily subfolders**\n6. Click **Continue**.\n\n| **Note:** To prove ownership, Cloudflare will send a file to your designated destination. To find the token, select the Open button in the **Overview** tab of the ownership challenge file, then paste it into the Cloudflare dashboard to verify your access to the bucket. Enter the Ownership Token and select Continue.\n\n1. Select the **Security (WAF)** dataset to push to the storage.\n2. Configure the logpush job:\n - Enter the **Job name**.\n - Under If logs match, you can select the events to include and/or remove from your logs. Refer to **Filters** for more information. Not all datasets have this option available.\n - In **Send the following** fields, you can choose to either push all logs to your storage destination or selectively choose which logs you want to push.\n3. Click **Submit**.\n\nSet up feeds\n------------\n\nTo configure a feed, follow these steps:\n\n1. Go to **SIEM Settings** \\\u003e **Feeds**.\n2. Click **Add New Feed**.\n3. On the next page, click **Configure a single feed**.\n4. In the **Feed name** field, enter a name for the feed (for example, **Cloudflare WAF Logs**).\n5. Select **Google Cloud Storage V2** as the **Source type**.\n6. Select **Cloudflare WAF** as the **Log type**.\n7. Click **Get Service Account**.\n8. Click **Next**.\n9. Specify values for the following input parameters:\n\n - **Storage Bucket URI**: the Cloud Storage URL.\n - **Source deletion options**: select the deletion option according to your preference.\n\n | **Note:** If you select the `Delete transferred files` or `Delete transferred files and empty directories` option, make sure that you granted appropriate permissions to the service account. \\* **Maximum File Age**: Includes files modified in the last number of days. Default is 180 days.\n10. Click **Next**.\n\n11. Review your new feed configuration in the **Finalize** screen, and then click **Submit**.\n\nUDM Mapping Table\n-----------------\n\n**Need more help?** [Get answers from Community members and Google SecOps professionals.](https://security.googlecloudcommunity.com/google-security-operations-2)"]]