Mengumpulkan log Cloud Run

Didukung di:

Panduan ini menjelaskan cara mengekspor log Cloud Run ke Google Security Operations menggunakan Cloud Storage. Parser mengekstrak kolom dari log JSON, lalu mengubahnya menjadi Model Data Terpadu (UDM). Fitur ini menangani berbagai format log, termasuk data permintaan HTTP dan log audit sistem, memetakan kolom yang relevan ke UDM sekaligus memperkaya data dengan label dan metadata khusus untuk Cloud Run.

Sebelum Memulai

Pastikan Anda memenuhi prasyarat berikut:

  • Instance Google SecOps.
  • Cloud Run disiapkan dan aktif di lingkungan Google Cloud Anda.
  • Akses istimewa ke Google Cloud.

Membuat Bucket Google Cloud Storage

  1. Login ke konsolGoogle Cloud .
  2. Buka halaman Cloud Storage Buckets.

    Buka Buckets

  3. Klik Buat.

  4. Di halaman Buat bucket, masukkan informasi bucket Anda. Setelah setiap langkah berikut, klik Lanjutkan untuk melanjutkan ke langkah berikutnya:

    1. Di bagian Mulai, lakukan tindakan berikut:

      1. Masukkan nama unik yang memenuhi persyaratan nama bucket; misalnya, cloudrun-logs.
      2. Untuk mengaktifkan namespace hierarkis, klik panah peluas untuk meluaskan bagian Optimalkan untuk beban kerja berorientasi file dan intensif data, lalu pilih Aktifkan namespace Hierarkis di bucket ini.

      3. Untuk menambahkan label bucket, klik panah peluas untuk meluaskan bagian Label.

      4. Klik Tambahkan label, lalu tentukan kunci dan nilai untuk label Anda.

    2. Di bagian Pilih lokasi untuk menyimpan data Anda, lakukan hal berikut:

      1. Pilih Jenis lokasi.
      2. Gunakan menu jenis lokasi untuk memilih Lokasi tempat data objek dalam bucket Anda akan disimpan secara permanen.

      3. Untuk menyiapkan replikasi lintas bucket, luaskan bagian Siapkan replikasi lintas bucket.

    3. Di bagian Pilih kelas penyimpanan untuk data Anda, pilih kelas penyimpanan default untuk bucket, atau pilih Autoclass untuk pengelolaan kelas penyimpanan otomatis untuk data bucket Anda.

    4. Di bagian Pilih cara mengontrol akses ke objek, pilih tidak untuk menerapkan pencegahan akses publik, dan pilih model kontrol akses untuk objek bucket Anda.

    5. Di bagian Pilih cara melindungi data objek, lakukan tindakan berikut:

      1. Pilih salah satu opsi di bagian Perlindungan data yang ingin Anda tetapkan untuk bucket.
      2. Untuk memilih cara mengenkripsi data objek Anda, klik panah peluas berlabel Enkripsi data, lalu pilih Metode enkripsi data.
  5. Klik Buat.

Mengonfigurasi Ekspor Log di Cloud Run

  1. Di halaman Google Cloud Welcome, klik ikon Cloud Run.
  2. Telusuri Logging di kotak penelusuran di bagian atas, lalu klik Enter.
  3. Di Log Explorer, filter log dengan memilih Cloud Run di Log Name, lalu klik Apply.
  4. Klik More Actions > Create Sink dari menu.
  5. Berikan konfigurasi berikut:
    1. Sink Details: masukkan nama dan deskripsi.
    2. Klik Berikutnya.
    3. Tujuan Sink: pilih Bucket Cloud Storage.
    4. Bucket Cloud Storage: pilih bucket yang dibuat sebelumnya atau buat bucket baru.
    5. Klik Berikutnya.
    6. Pilih Log untuk disertakan dalam Sink: log default akan diisi saat Anda memilih opsi di Bucket Cloud Storage.
    7. Klik Berikutnya.
    8. Opsional: Pilih Log untuk memfilter Sink: pilih log yang tidak ingin Anda sinkronkan.
  6. Klik Create Sink.

Menyiapkan feed

Untuk mengonfigurasi feed, ikuti langkah-langkah berikut:

  1. Buka Setelan SIEM > Feed.
  2. Klik Tambahkan Feed Baru.
  3. Di halaman berikutnya, klik Konfigurasi satu feed.
  4. Di kolom Feed name, masukkan nama untuk feed; misalnya, Cloud Run Logs.
  5. Pilih Google Cloud Storage V2 sebagai Source type.
  6. Pilih GCP Cloud Run sebagai Jenis log.
  7. Klik Dapatkan Akun Layanan sebagai Akun Layanan Chronicle.
  8. Klik Berikutnya.
  9. Tentukan nilai untuk parameter input berikut:

    • URI Bucket Penyimpanan:URL bucket penyimpanan Google Cloud dalam format gs://my-bucket/<value>.
    • Opsi penghapusan sumber: pilih opsi penghapusan sesuai preferensi Anda.

    • Usia File Maksimum: Menyertakan file yang diubah dalam beberapa hari terakhir. Defaultnya adalah 180 hari.

  10. Klik Berikutnya.

  11. Tinjau konfigurasi feed baru Anda di layar Selesaikan, lalu klik Kirim.

Tabel Pemetaan UDM

Kolom Log Pemetaan UDM Logika
httpRequest.latency target.resource.attribute.labels.[] Nilai httpRequest.latency dari log mentah digunakan sebagai nilai untuk label dengan kunci http_request_latency dalam target.resource.attribute.labels.
httpRequest.protocol network.application_protocol Jika httpRequest.protocol berisi HTTP, kolom UDM ditetapkan ke HTTP.
httpRequest.remoteIp principal.asset.ip Nilai httpRequest.remoteIp dari log mentah digunakan.
httpRequest.remoteIp principal.ip Nilai httpRequest.remoteIp dari log mentah digunakan.
httpRequest.requestMethod network.http.method Nilai httpRequest.requestMethod dari log mentah digunakan.
httpRequest.requestSize network.sent_bytes Nilai httpRequest.requestSize dari log mentah dikonversi menjadi bilangan bulat yang tidak bertanda tangan dan digunakan.
httpRequest.requestUrl target.url Nilai httpRequest.requestUrl dari log mentah digunakan.
httpRequest.responseSize network.received_bytes Nilai httpRequest.responseSize dari log mentah dikonversi menjadi bilangan bulat yang tidak bertanda tangan dan digunakan.
httpRequest.serverIp target.asset.ip Nilai httpRequest.serverIp dari log mentah digunakan.
httpRequest.serverIp target.ip Nilai httpRequest.serverIp dari log mentah digunakan.
httpRequest.status network.http.response_code Nilai httpRequest.status dari log mentah dikonversi menjadi bilangan bulat dan digunakan.
httpRequest.userAgent network.http.parsed_user_agent Nilai httpRequest.userAgent dari log mentah diuraikan sebagai string agen pengguna.
httpRequest.userAgent network.http.user_agent Nilai httpRequest.userAgent dari log mentah digunakan.
insertId metadata.product_log_id Nilai insertId dari log mentah digunakan.
labels.instanceId additional.fields.[] Nilai labels.instanceId digunakan sebagai nilai untuk label dengan kunci instanceId dalam additional.fields.
labels.run.googleapis.com_execution_name additional.fields.[] Nilai labels.run.googleapis.com_execution_name digunakan sebagai nilai untuk label dengan kunci execution_name dalam additional.fields.
labels.run.googleapis.com_task_attempt additional.fields.[] Nilai labels.run.googleapis.com_task_attempt digunakan sebagai nilai untuk label dengan kunci task_attempt dalam additional.fields.
labels.run.googleapis.com_task_index additional.fields.[] Nilai labels.run.googleapis.com_task_index digunakan sebagai nilai untuk label dengan kunci task_index dalam additional.fields.
logName metadata.product_event_type Nilai logName dari log mentah digunakan.
resource.labels.configuration_name target.resource.attribute.labels.[] Nilai resource.labels.configuration_name digunakan sebagai nilai untuk label dengan kunci configuration_name dalam target.resource.attribute.labels.
resource.labels.job_name additional.fields.[] Nilai resource.labels.job_name digunakan sebagai nilai untuk label dengan kunci job_name dalam additional.fields.
resource.labels.location target.location.name Nilai resource.labels.location dari log mentah digunakan.
resource.labels.project_id target.resource.attribute.labels.[] Nilai resource.labels.project_id digunakan sebagai nilai untuk label dengan kunci project_id dalam target.resource.attribute.labels.
resource.labels.revision_name target.resource.attribute.labels.[] Nilai resource.labels.revision_name digunakan sebagai nilai untuk label dengan kunci revision_name dalam target.resource.attribute.labels.
resource.labels.service_name target.resource.attribute.labels.[] Nilai resource.labels.service_name digunakan sebagai nilai untuk label dengan kunci service_name dalam target.resource.attribute.labels.
resource.type target.resource.resource_subtype Nilai resource.type dari log mentah digunakan.
severity security_result.severity Jika nilai severity cocok dengan Info (tidak peka huruf besar/kecil), kolom UDM akan ditetapkan ke INFORMATIONAL.
textPayload additional.fields.[] Nilai textPayload digunakan sebagai nilai untuk label dengan kunci Textpayload dalam additional.fields.
timestamp metadata.event_timestamp Nilai timestamp dari log mentah diuraikan sebagai stempel waktu.
timestamp timestamp Nilai timestamp dari log mentah diuraikan sebagai stempel waktu. Ditentukan oleh logika parser berdasarkan keberadaan kolom tertentu. Nilai defaultnya adalah GENERIC_EVENT. Jika has_principal_ip, has_target_ip, dan httpRequest.protocol cocok dengan HTTP, maka akan ditetapkan ke NETWORK_HTTP. Hardcode ke GCP_RUN. Hardcode ke GCP_RUN. Hardcode ke Google Cloud Platform. Hardcode ke GOOGLE_CLOUD_PLATFORM.

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