Mengumpulkan log Salesforce

Didukung di:

Dokumen ini menjelaskan cara menyerap log Salesforce ke Google Security Operations menggunakan dua metode: Third Party API atau Amazon AppFlow dengan Amazon S3. Parser menangani log dalam format LEEF, CSV, dan JSON. Proses ini mengekstrak kolom, melakukan pemrosesan khusus format (menangani pasangan nilai kunci LEEF, kolom CSV, dan struktur JSON), memetakannya ke UDM, serta memperkaya data dengan metadata dan kolom turunan. Parser juga menangani berbagai jenis peristiwa Salesforce, menerapkan logika khusus untuk login, logout, dan tindakan lainnya, mengategorikan peristiwa, serta menetapkan jenis peristiwa UDM yang sesuai.

Sebelum memulai

Pastikan Anda memiliki prasyarat berikut:

  • Instance Google SecOps
  • Akses istimewa ke Salesforce (Administrator Sistem atau yang setara)

Untuk metode Third Party API (Opsi 1):

  • Lisensi Shield Event Monitoring Salesforce atau add-on Event Monitoring (diperlukan untuk akses EventLogFile yang komprehensif)
  • Kemampuan untuk membuat dan mengelola sertifikat X.509 dan pasangan kunci RSA

Untuk metode Amazon AppFlow dengan S3 (Opsi 2):

  • Akses istimewa ke AWS
  • Organisasi Anda menggunakan Edisi Enterprise, Unlimited, atau Performance Salesforce

Catatan Penting terkait Pemberian Lisensi: Tanpa Salesforce Shield Event Monitoring, akses API ke EventLogFile hanya terbatas pada 7 jenis peristiwa dasar (Login, Logout, Penggunaan Total API, Rekaman Pelanggaran CORS, Pelanggaran CSP, Pengalihan Nama Host, Pengecualian Apex yang Tidak Terduga) dengan retensi 1 hari. Sebagian besar organisasi tanpa Shield harus menggunakan metode Amazon AppFlow (Opsi 2).

Opsi 1: Mengonfigurasi Integrasi API Langsung Salesforce Menggunakan API Pihak Ketiga (OAuth JWT Bearer)

Metode ini membuat koneksi API dari Google SecOps ke Salesforce menggunakan alur OAuth 2.0 JWT Bearer untuk autentikasi server ke server.

Prasyarat untuk metode ini:

  • Lisensi Pemantauan Peristiwa Shield Salesforce atau add-on Pemantauan Peristiwa (diperlukan untuk akses EventLogFile yang komprehensif).
  • Akses Administrator Sistem di Salesforce.
  • Kemampuan untuk membuat dan mengelola sertifikat X.509 dan pasangan kunci RSA.

Buat pasangan kunci RSA dan sertifikat X.509

Anda memerlukan kunci pribadi RSA dan sertifikat X.509 yang sesuai untuk autentikasi pemilik JWT.

  1. Buat kunci pribadi RSA:

    openssl genrsa -out salesforce_jwt_private.key 2048
    
  2. Buat permintaan penandatanganan sertifikat (CSR):

    openssl req -new -key salesforce_jwt_private.key -out salesforce_jwt.csr
    
  3. Buat sertifikat yang ditandatangani sendiri (berlaku selama 1 tahun):

    openssl x509 -req -days 365 -in salesforce_jwt.csr -signkey salesforce_jwt_private.key -out salesforce_jwt.crt
    
  4. Simpan kunci pribadi dengan aman. Anda akan memerlukannya untuk konfigurasi feed Google SecOps.

Membuat Aplikasi Terhubung Salesforce dengan alur JWT Bearer

  1. Login ke Salesforce sebagai Administrator Sistem.
  2. Buka Penyiapan > Aplikasi > Pengelola Aplikasi.
  3. Klik Aplikasi Terhubung Baru.
  4. Berikan detail konfigurasi berikut:
    • Nama Aplikasi yang Terhubung: Masukkan nama (misalnya, Google SecOps Integration).
    • Nama API: Terisi otomatis berdasarkan Nama Aplikasi Terhubung.
    • Email Kontak: Masukkan alamat email Anda.
  5. Di bagian API (Aktifkan Setelan OAuth):
    • Pilih Aktifkan Setelan OAuth.
    • URL callback: Masukkan https://login.salesforce.com/services/oauth2/callback (tidak digunakan untuk alur JWT, tetapi diperlukan).
    • Pilih Gunakan tanda tangan digital.
    • Klik Choose File dan upload sertifikat X.509 (salesforce_jwt.crt) yang Anda buat sebelumnya.
    • Cakupan OAuth yang Dipilih: Tambahkan cakupan berikut:
      • Mengakses dan mengelola data (api) Anda
      • Menjalankan permintaan atas nama Anda kapan saja (refresh_token, offline_access)
    • Require Proof Key for Code Exchange (PKCE) Extension for Supported Authorization Flows: Hapus centang pada opsi ini.
  6. Klik Simpan.
  7. Klik Lanjutkan pada pesan peringatan.
  8. Di halaman detail Aplikasi Terhubung, catat Kunci Konsumen. Nilai ini akan digunakan sebagai Penerbit Klaim JWT di Google SecOps.
  9. Klik Kelola > Edit Kebijakan.
  10. Di bagian Kebijakan OAuth:
    • Pengguna yang Diizinkan: Pilih Pengguna yang disetujui admin telah diotorisasi.
    • Pelonggaran IP: Pilih Pelonggaran pembatasan IP.
  11. Klik Simpan.

Membuat dan mengonfigurasi pengguna integrasi di Salesforce

  1. Buka Penyiapan > Pengguna > Pengguna.
  2. Klik New User.
  3. Berikan detail konfigurasi berikut:
    • Nama Depan: Masukkan Google.
    • Nama Belakang: Masukkan SecOps Integration.
    • Email: Masukkan alamat email.
    • Nama pengguna: Masukkan nama pengguna unik (misalnya, secops-integration@yourcompany.com).
    • Lisensi Pengguna: Pilih Salesforce.
    • Profil: Pilih Administrator Sistem atau buat profil kustom dengan akses API.
  4. Klik Simpan.
  5. Catat Nama Pengguna persis seperti yang dimasukkan. Nilai ini akan digunakan sebagai Subjek Klaim JWT di Google SecOps.

Tetapkan pengguna integrasi ke Aplikasi Terhubung

  1. Buka Penyiapan > Aplikasi > Aplikasi Terhubung > Kelola Aplikasi Terhubung.
  2. Klik Aplikasi Terhubung Google SecOps Integration yang Anda buat.
  3. Klik Kelola > Kelola Profil atau Kelola Set Izin.
  4. Pilih profil atau set izin yang ditetapkan ke pengguna integrasi Anda (misalnya, Administrator Sistem).
  5. Klik Simpan.

Memberikan izin API dan Pemantauan Peristiwa kepada pengguna integrasi

  1. Buka Penyiapan > Pengguna > Set Izin.
  2. Klik New.
  3. Berikan detail konfigurasi berikut:
    • Label: Masukkan Event Monitoring API Access.
    • Nama API: Terisi otomatis.
  4. Klik Simpan.
  5. Di halaman detail Set Izin:
    • Klik Izin Sistem.
    • Klik Edit.
    • Periksa izin berikut:
      • API Diaktifkan
      • Melihat File Log Peristiwa
      • Lihat Semua Data (opsional, tetapi direkomendasikan untuk akses komprehensif)
    • Klik Simpan.
  6. Klik Kelola Tugas > Tambahkan Tugas.
  7. Pilih pengguna integrasi yang Anda buat sebelumnya.
  8. Klik Tetapkan > Selesai.

Mengonfigurasi feed di Google SecOps untuk menyerap log Salesforce melalui API

  1. Buka Setelan SIEM > Feed.
  2. Klik + Tambahkan Feed Baru.
  3. Di halaman berikutnya, klik Konfigurasi satu feed.
  4. Di kolom Nama feed, masukkan nama untuk feed (misalnya, Salesforce logs).
  5. Pilih Third party API sebagai Source type.
  6. Pilih Salesforce sebagai Jenis log.
  7. Klik Berikutnya.
  8. Pilih OAuth JWT grant dari drop-down.
  9. Tentukan nilai untuk parameter input berikut:
    • Endpoint JWT OAuth: Masukkan endpoint token OAuth Salesforce dengan parameter grant_type:
      • Produksi: https://login.salesforce.com/services/oauth2/token?grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer
      • Sandbox: https://test.salesforce.com/services/oauth2/token?grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer
      • Domain Kustom: https://yourdomain.my.salesforce.com/services/oauth2/token?grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer
    • Penerbit Klaim JWT: Masukkan Consumer Key dari Aplikasi yang Terhubung.
    • Subjek Klaim JWT: Masukkan Nama Pengguna pengguna integrasi.
    • Audiens Klaim JWT: Masukkan URL dasar login Salesforce:
      • Produksi: https://login.salesforce.com
      • Sandbox: https://test.salesforce.com
    • RSA Private Key: Tempel seluruh konten kunci pribadi RSA Anda (salesforce_jwt_private.key), termasuk baris -----BEGIN PRIVATE KEY----- dan -----END PRIVATE KEY-----.
  10. Tentukan parameter tambahan:
    • Namespace aset: Namespace aset.
    • Label penyerapan: Label yang akan diterapkan ke peristiwa dari feed ini.
  11. Klik Berikutnya.
  12. Tinjau konfigurasi feed baru Anda di layar Selesaikan, lalu klik Kirim.

Opsi 2: Mengonfigurasi Ekspor Log Salesforce Menggunakan Amazon AppFlow dan S3

Metode ini menggunakan Amazon AppFlow untuk mengekstrak data dari Salesforce dan menyimpannya di Amazon S3, yang kemudian di-ingest oleh Google SecOps.

Mengonfigurasi bucket AWS S3 dan IAM untuk Google SecOps

  1. Buat bucket Amazon S3 dengan mengikuti panduan pengguna ini: Membuat bucket
  2. Simpan Name dan Region bucket untuk referensi di masa mendatang (misalnya, salesforce-secops-logs).
  3. Buat pengguna dengan mengikuti panduan pengguna ini: Membuat pengguna IAM.
  4. Pilih Pengguna yang dibuat.
  5. Pilih tab Kredensial keamanan.
  6. Klik Create Access Key di bagian Access Keys.
  7. Pilih Layanan pihak ketiga sebagai Kasus penggunaan.
  8. Klik Berikutnya.
  9. Opsional: tambahkan tag deskripsi.
  10. Klik Create access key.
  11. Klik Download CSV file untuk menyimpan Access Key dan Secret Access Key untuk digunakan nanti.
  12. Klik Done.
  13. Pilih tab Izin.
  14. Klik Tambahkan izin di bagian Kebijakan izin.
  15. Pilih Tambahkan izin.
  16. Pilih Lampirkan kebijakan secara langsung
  17. Telusuri dan pilih kebijakan AmazonS3FullAccess.
  18. Klik Berikutnya.
  19. Klik Add permissions.

Mengonfigurasi Amazon AppFlow

  1. Buka konsol Amazon AppFlow.
  2. Klik Buat alur.
  3. Berikan detail konfigurasi berikut:
    • Nama alur: Masukkan nama (misalnya, Salesforce-to-S3-SecOps).
    • Deskripsi alur: Deskripsi opsional.
  4. Klik Berikutnya.
  5. Untuk Detail sumber:
    • Nama sumber: Pilih Salesforce.
    • Pilih koneksi Salesforce: Klik Buat koneksi baru.
    • Jendela login Salesforce akan muncul. Login dengan kredensial Salesforce Anda.
    • Berikan akses saat diminta.
    • Objek Salesforce: Pilih objek yang ingin Anda transfer (misalnya, EventLogFile jika Anda memiliki Pemantauan Peristiwa, atau objek audit lainnya).
  6. Klik Berikutnya.
  7. Untuk Detail tujuan:
    • Nama tujuan: Pilih Amazon S3.
    • Detail bucket: Pilih bucket S3 yang Anda buat sebelumnya.
    • Awalan bucket S3: Awalan opsional (misalnya, salesforce-logs/).
  8. Klik Berikutnya.
  9. Untuk Pemicu alur:
    • Pilih Jalankan sesuai jadwal.
    • Mulai pukul: Tetapkan waktu mulai pilihan Anda.
    • Berulang: Pilih Per jam atau Harian berdasarkan persyaratan Anda.
  10. Klik Berikutnya.
  11. Untuk Memetakan kolom data:
    • Pilih Petakan semua kolom secara langsung atau Anda dapat menentukan kolom yang akan dipetakan.
    • Jika memetakan secara manual, pilih kolom yang ingin Anda transfer.
  12. Klik Berikutnya.
  13. Untuk Tambahkan filter (opsional):
    • Tambahkan filter untuk membatasi data yang ditransfer.
  14. Klik Berikutnya.
  15. Tinjau konfigurasi Anda, lalu klik Buat alur.
  16. Klik Aktifkan alur untuk memulai transfer terjadwal.

Mengonfigurasi feed di Google SecOps untuk memproses log Salesforce

  1. Buka Setelan SIEM > Feed.
  2. Klik + Tambahkan Feed Baru.
  3. Di halaman berikutnya, klik Konfigurasi satu feed.
  4. Di kolom Nama feed, masukkan nama untuk feed (misalnya, Salesforce Logs).
  5. Pilih Amazon S3 V2 sebagai Jenis sumber.
  6. Pilih Salesforce sebagai Jenis log.
  7. Klik Berikutnya.
  8. Tentukan nilai untuk parameter input berikut:

    • S3 URI: Masukkan URI bucket (misalnya, s3://salesforce-secops-logs/).

      • Ganti salesforce-secops-logs dengan nama bucket Anda yang sebenarnya.
    • Opsi penghapusan sumber: Pilih opsi penghapusan sesuai preferensi Anda.

      • Jangan pernah: Tidak pernah menghapus file apa pun setelah transfer.
      • Saat berhasil: Menghapus semua file dan direktori kosong setelah transfer berhasil.
    • Usia File Maksimum: Menyertakan file yang diubah dalam jumlah hari terakhir. Defaultnya adalah 180 hari.
    • ID Kunci Akses: Kunci akses pengguna dengan akses ke bucket S3.
    • Kunci Akses Rahasia: Kunci rahasia pengguna dengan akses ke bucket S3.
    • Namespace aset: Namespace aset.
    • Label penyerapan: Label yang akan diterapkan ke peristiwa dari feed ini.
  9. Klik Berikutnya.

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

Tabel Pemetaan UDM

Kolom Log Pemetaan UDM Logika
Account.Name target.resource.name Nilai Account.Name dari log mentah.
AccountId target.resource.id Nilai AccountId dari log mentah.
Action security_result.description Nilai Action dari log mentah.
AdditionalInfo - Tidak dipetakan ke objek IDM.
ApiType target.application Nilai ApiType dari log mentah.
ApiVersion - Tidak dipetakan ke objek IDM.
Application principal.application Nilai Application dari log mentah, atau "Browser" untuk LoginAsEvent, atau "Integration JWT Token" untuk LoginEvent, atau "SfdcSiqActivityPlatform" untuk LoginHistory dengan objecttype LoginHistory, atau "N/A" untuk ApiEvent, atau "Browser" untuk LoginAsEventStream.
attributes.url target.url Nilai attributes.url dari log mentah, atau URL tertentu untuk berbagai jenis peristiwa dari log mentah.
attributes.type metadata.product_event_type Nilai attributes.type dari log mentah.
AuthSessionId network.session_id Nilai AuthSessionId dari log mentah.
Browser principal.resource.name Nilai Browser dari log mentah, atau "Tidak Diketahui" jika Browser tidak tersedia di log mentah dan Application adalah "Insights", atau "Java (Salesforce.com)" untuk LoginHistory dengan ApiType sebagai "SOAP Partner", atau "Tidak Diketahui" untuk LoginHistory dengan Application sebagai "SfdcSiqActivityPlatform", atau dari data.properties.Browser.str untuk LoginAsEventStream.
Case.Subject target.resource.name Nilai Case.Subject dari log mentah.
CaseId target.resource.id Nilai CaseId dari log mentah.
cat metadata.product_event_type Nilai cat dari log mentah.
City principal.location.city Nilai City dari log mentah, atau dari LoginGeo.City untuk LoginHistory.
Client principal.labels Nilai Client dari log mentah, yang diformat sebagai label.
CLIENT_IP principal.ip, principal.asset.ip Nilai CLIENT_IP dari log mentah.
ClientVersion - Tidak dipetakan ke objek IDM.
CipherSuite network.tls.cipher Nilai CipherSuite dari log mentah.
ColumnHeaders principal.labels Nilai ColumnHeaders dari log mentah, yang diformat sebagai label.
ConnectedAppId principal.labels Nilai ConnectedAppId dari log mentah, yang diformat sebagai label.
Contact.Name target.resource.name Nilai Contact.Name dari log mentah.
ContactId target.resource.id Nilai ContactId dari log mentah.
Country principal.location.country_or_region Nilai Country dari log mentah, atau LoginGeo.Country untuk LoginHistory.
CreatedByContext principal.user.userid Nilai CreatedByContext dari log mentah.
CreatedById principal.resource.attribute.labels Nilai CreatedById dari log mentah, yang diformat sebagai label.
CreatedDate metadata.collected_timestamp Nilai CreatedDate dari log mentah, atau stempel waktu saat ini jika tidak tersedia.
CPU_TIME target.resource.attribute.labels Nilai CPU_TIME dari log mentah, yang diformat sebagai label.
data - Berisi berbagai kolom yang diekstrak dan dipetakan satu per satu.
DATASET_IDS target.resource.name Nilai DATASET_IDS dari log mentah.
DelegatedOrganizationId target.administrative_domain Nilai DelegatedOrganizationId dari log mentah.
DelegatedUsername observer.user.userid Nilai DelegatedUsername dari log mentah.
Description metadata.description Nilai Description dari log mentah.
DevicePlatform principal.resource.type Nilai DevicePlatform dari log mentah, diuraikan untuk mengekstrak jenis resource.
Display metadata.description Nilai Display dari log mentah.
DOWNLOAD_FORMAT target.resource.attribute.labels Nilai DOWNLOAD_FORMAT dari log mentah, yang diformat sebagai label.
Duration target.resource.attribute.labels Nilai Duration dari log mentah, yang diformat sebagai label.
ENTITY_NAME target.resource.attribute.labels Nilai ENTITY_NAME dari log mentah, yang diformat sebagai label.
ErrorCode security_result.action Nilai ErrorCode dari log mentah, diubah menjadi ALLOW atau BLOCK.
EventDate timestamp Nilai EventDate dari log mentah, atau data.properties.TIMESTAMP_DERIVED.str jika tersedia, atau data.properties.TIMESTAMP_DERIVED_FIRST.str jika tersedia, atau @timestamp jika tersedia, atau created_date jika tersedia, atau timestamp jika tersedia, atau LoginTime untuk LoginHistory.
EventIdentifier metadata.product_log_id Nilai EventIdentifier dari log mentah.
EventType metadata.product_event_type Nilai EventType dari log mentah.
Id principal.user.userid Nilai Id dari log mentah, atau metadata.product_log_id untuk SetupAuditTrail dan peristiwa lainnya.
IdentityUsed principal.user.email_addresses Nilai IdentityUsed dari log mentah.
Lead.Name target.resource.name Nilai Lead.Name dari log mentah.
LeadId target.resource.id Nilai LeadId dari log mentah.
LoginAsCategory - Tidak dipetakan ke objek IDM.
LoginGeo.Country principal.location.country_or_region Nilai LoginGeo.Country dari log mentah.
LoginHistoryId - Tidak dipetakan ke objek IDM.
LoginKey principal.user.userid, network.session_id Nilai LoginKey dari log mentah, atau CreatedByContext untuk SetupAuditTrail.
LoginTime timestamp Nilai LoginTime dari log mentah.
LoginType security_result.description Nilai LoginType dari log mentah, atau "Other Apex API" untuk LoginHistory dengan ApiType sebagai "SOAP Partner", atau "Remote Access 2.0" untuk LoginHistory dengan Application sebagai "SfdcSiqActivityPlatform".
LoginUrl target.url, principal.url Nilai LoginUrl dari log mentah.
LogFile principal.resource.attribute.labels Nilai LogFile dari log mentah, yang diformat sebagai label.
LogFileContentType principal.resource.attribute.labels Nilai LogFileContentType dari log mentah, yang diformat sebagai label.
LogFileLength principal.resource.attribute.labels Nilai LogFileLength dari log mentah, yang diformat sebagai label.
Message - Tidak dipetakan ke objek IDM.
METHOD network.http.method Nilai METHOD dari log mentah.
Name target.application Nilai Name dari log mentah.
NewValue - Digunakan bersama dengan OldValue untuk menghasilkan security_result.summary.
NUMBER_FIELDS target.resource.attribute.labels Nilai NUMBER_FIELDS dari log mentah, yang diformat sebagai label.
OldValue - Digunakan bersama dengan NewValue untuk menghasilkan security_result.summary.
Operation security_result.description, target.resource.attribute.labels Nilai Operation dari log mentah, atau Display untuk SetupAuditTrail.
OperationStatus security_result.action Nilai OperationStatus dari log mentah, diubah menjadi ALLOW atau BLOCK.
ORGANIZATION_ID target.administrative_domain Nilai ORGANIZATION_ID dari log mentah.
OsName principal.platform Nilai OsName dari log mentah.
OsVersion principal.platform_version Nilai OsVersion dari log mentah.
Platform principal.platform Nilai Platform dari log mentah, atau dari data.properties.OsName.str untuk LightningUriEventStream, atau dari data.properties.OsName.str untuk LoginEventStream.
QueriedEntities target.resource.name, principal.labels Nilai QueriedEntities dari log mentah, atau component_name untuk UriEvent dan ApiEvent.
Query target.process.command_line, principal.labels Nilai Query dari log mentah.
RecordId target.resource.id Nilai RecordId dari log mentah.
Records principal.labels Nilai Records dari log mentah, yang diformat sebagai label.
REQUEST_ID metadata.product_log_id, target.resource.product_object_id Nilai REQUEST_ID dari log mentah.
REQUEST_SIZE network.sent_bytes Nilai REQUEST_SIZE dari log mentah.
REQUEST_STATUS security_result.summary Nilai REQUEST_STATUS dari log mentah.
RESPONSE_SIZE network.received_bytes Nilai RESPONSE_SIZE dari log mentah.
RowsProcessed target.resource.attribute.labels Nilai RowsProcessed dari log mentah, yang diformat sebagai label.
RUN_TIME target.resource.attribute.labels Nilai RUN_TIME dari log mentah, yang diformat sebagai label.
SamlEntityUrl - Tidak dipetakan ke objek IDM.
SdkAppType - Tidak dipetakan ke objek IDM.
SdkAppVersion - Tidak dipetakan ke objek IDM.
SdkVersion - Tidak dipetakan ke objek IDM.
Section security_result.summary Nilai Section dari log mentah.
SessionKey network.session_id Nilai SessionKey dari log mentah.
SessionLevel target.resource.attribute.labels Nilai SessionLevel dari log mentah, yang diformat sebagai label.
SourceIp principal.ip, principal.asset.ip Nilai SourceIp dari log mentah.
src principal.ip, principal.asset.ip Nilai src dari log mentah.
SsoType target.resource.attribute.labels Nilai SsoType dari log mentah, yang diformat sebagai label.
STATUS_CODE network.http.response_code Nilai STATUS_CODE dari log mentah.
Status security_result.action, security_result.action_details Nilai Status dari log mentah, diubah menjadi ALLOW atau BLOCK, atau digunakan sebagai detail tindakan untuk LoginEventStream.
Subject target.resource.name Nilai Subject dari log mentah.
TargetUrl - Tidak dipetakan ke objek IDM.
TIMESTAMP metadata.collected_timestamp Nilai TIMESTAMP dari log mentah.
TIMESTAMP_DERIVED timestamp Nilai TIMESTAMP_DERIVED dari log mentah.
TlsProtocol network.tls.version_protocol Nilai TlsProtocol dari log mentah.
URI target.url Nilai URI dari log mentah.
USER_AGENT network.http.user_agent Nilai USER_AGENT dari log mentah.
USER_ID principal.user.userid Nilai USER_ID dari log mentah.
USER_ID_DERIVED principal.user.product_object_id, target.resource.attribute.labels Nilai USER_ID_DERIVED dari log mentah.
UserId principal.user.userid Nilai UserId dari log mentah.
USER_TYPE target.resource.attribute.labels Nilai USER_TYPE dari log mentah, yang diformat sebagai label.
Username principal.user.userid, principal.user.email_addresses, target.user.email_addresses Nilai Username dari log mentah, atau src_email untuk berbagai peristiwa, atau IdentityUsed untuk IdentityProviderEventStore, atau data.properties.Email.str untuk Search dan SearchAlert, atau data.properties.Username.str untuk LoginAsEventStream dan LoginEventStream.
UserType target.resource.attribute.labels Nilai UserType dari log mentah, yang diformat sebagai label.
usrName principal.user.userid, principal.user.email_addresses, target.user.email_addresses Nilai usrName dari log mentah.
VerificationMethod target.resource.attribute.labels Nilai VerificationMethod dari log mentah, yang diformat sebagai label.
Logika Parser metadata.event_type Diperoleh berdasarkan kolom event_id dan operation, atau ditetapkan ke "USER_LOGIN" untuk LoginEventStream, "USER_LOGOUT" untuk Logout dan LogoutEvent, "USER_RESOURCE_UPDATE_CONTENT" untuk berbagai peristiwa, "USER_RESOURCE_UPDATE_PERMISSIONS" untuk PlatformEncryption, "RESOURCE_READ" untuk QueuedExecution, ApexExecution, LightningInteraction, LightningPerformance, LightningPageView, URI, RestApi, API, AuraRequest, ApexCallout, OneCommerceUsage, Sites, MetadataApiOperation, OneCommerceUsage, VisualforceRequest, Dashboard, Search, ListViewEvent, "RESOURCE_CREATION" untuk UriEvent dan TimeBasedWorkflow dengan Operation sebagai "Create" atau "INSERT", "RESOURCE_WRITTEN" untuk UriEvent dan LightningUriEvent dengan Operation sebagai "Update", "RESOURCE_DELETION" untuk UriEvent dengan Operation sebagai "Delete" atau "ROLLBACK", "USER_UNCATEGORIZED" untuk SetupAuditTrail dan AuditTrail, "USER_CHANGE_PASSWORD" untuk SetupAuditTrail dengan operation sebagai "namedCredentialEncryptedFieldChange", "GENERIC_EVENT" untuk ApiEventStream dan LightningUriEventStream, atau berdasarkan kehadiran jaringan dan prinsipal.
Logika Parser metadata.ingestion_labels Label yang menunjukkan sumber peristiwa, baik "File Log Peristiwa" atau "Pemantauan Peristiwa Real-Time" atau "SetupAuditTrail".
Logika Parser metadata.log_type Selalu ditetapkan ke "SALESFORCE".
Logika Parser metadata.product_name Selalu ditetapkan ke "SALESFORCE".
Logika Parser metadata.vendor_name Selalu ditetapkan ke "SALESFORCE".
Logika Parser metadata.url_back_to_product Dibuat dari berbagai kolom seperti LoginUrl, attributes.url, data.properties.PageUrl.str, data.properties.LoginUrl.str.
Logika Parser network.application_protocol Tetapkan ke "HTTPS" jika kolom uri dimulai dengan "http".
Logika Parser network.http.referral_url Diekstrak dari kolom user_agent jika berisi "Referer=".
Logika Parser network.http.response_code Diperoleh dari request_status untuk berbagai acara.
Logika Parser network.http.user_agent Nilai user_agent dari log mentah, atau dari data.properties.UserAgent.str untuk ApiEventStream dan LoginEventStream, atau dari peristiwa Sites, atau "User-Agent" dari peristiwa Sites.
Logika Parser network.session_id Nilai session_key atau SESSION_KEY dari log mentah, atau dibuat dari kolom lain seperti LoginKey atau AuthSessionId.
Logika Parser network.tls.version Nilai tls_protocol dari log mentah, atau dari data.properties.TlsProtocol.str untuk LoginEventStream.
Logika Parser principal.application Nilai application dari log mentah, atau "Salesforce for Outlook" untuk peristiwa Login: Berhasil, atau "Insights" untuk peristiwa Login: Berhasil tanpa Aplikasi, atau diekstrak dari device_platform untuk peristiwa Lightning.
Logika Parser principal.asset.hostname Nilai client_ip jika berupa nama host.
Logika Parser principal.asset.ip Nilai client_ip atau src_ip atau SourceIp atau CLIENT_IP jika berupa alamat IP.
Logika Parser principal.hostname Nilai client_ip jika berupa nama host.
Logika Parser principal.ip Nilai client_ip atau src_ip atau SourceIp atau CLIENT_IP jika berupa alamat IP.
Logika Parser principal.labels Label dibuat dari berbagai kolom seperti FederationIdentifier, ApiType, OrgId, channel.
Logika Parser principal.location.city Nilai geoip_src.city_name atau City atau LoginGeo.City dari log mentah.
Logika Parser principal.location.country_or_region Nilai geoip_src.country_name atau Country atau LoginGeo.Country atau client_geo dari log mentah.
Logika Parser principal.location.region_latitude Nilai data.properties.LoginLatitude.number dari log mentah.
Logika Parser principal.location.region_longitude Nilai data.properties.LoginLongitude.number dari log mentah.
Logika Parser principal.location.state Nilai geoip_src.region_name dari log mentah.
Logika Parser principal.platform Nilai Platform atau OsName atau os_name dari log mentah, atau "WINDOWS" untuk LoginEventStream dengan Platform yang berisi "Windows".
Logika Parser principal.platform_version Nilai OsVersion atau os_version dari log mentah, atau diekstrak dari Platform untuk LoginEventStream dengan Platform yang berisi "Windows".
Logika Parser principal.resource.attribute.labels Label dibuat dari berbagai kolom seperti CreatedById, ApiVersion, LogFile, LogFileContentType, LogFileLength.
Logika Parser principal.resource.name Nilai Browser atau browser_name dari log mentah, atau "Java (Salesforce.com)" untuk LoginHistory dengan ApiType sebagai "SOAP Partner".
Logika Parser principal.resource.type Diekstrak dari device_platform untuk peristiwa Lightning, atau "Browser" untuk LoginAsEvent dan LoginAsEventStream.
Logika Parser principal.url Nilai LoginUrl dari log mentah.
Logika Parser principal.user.email_addresses Nilai usrName atau Username atau src_email atau IdentityUsed atau data.properties.Username.str atau data.properties.Email.str dari log mentah.
Logika Parser principal.user.product_object_id Nilai attrs.USER_ID_DERIVED atau data.properties.USER_ID_DERIVED.str dari log mentah.
Logika Parser principal.user.userid Nilai usrName atau Username atau user_id atau UserId atau USER_ID atau Id atau LoginKey atau CreatedByContext atau data.properties.Username.str atau data.properties.USER_ID.str atau data.properties.LoginKey.str dari log mentah.
Logika Parser security_result.action Berasal dari Status atau OperationStatus atau ErrorCode atau action atau operation_status dari log mentah, diubah menjadi ALLOW atau BLOCK.
Logika Parser security_result.action_details Nilai Status dari log mentah untuk LoginEventStream.
Logika Parser security_result.description Nilai LoginType atau logintype atau Operation atau Action atau Display dari log mentah.
Logika Parser security_result.rule_name Nilai Policy atau rule_name dari log mentah.
Logika Parser security_result.summary Dibuat dari NewValue dan OldValue atau REQUEST_STATUS atau Section atau forecastcategory dari log mentah.
Logika Parser target.administrative_domain Nilai ORGANIZATION_ID atau DelegatedOrganizationId atau organization_id atau data.properties.OrgName.str dari log mentah.
Logika Parser target.application Nilai Application atau app_name atau ApiType atau Name atau data.properties.Application.str dari log mentah.
Logika Parser target.asset.hostname Nilai target_hostname yang diekstrak dari kolom uri.
Logika Parser target.asset.ip Nilai data.properties.CLIENT_IP.str dari log mentah.
Logika Parser target.asset_id Dibuat dari device_id atau REQUEST_ID.
Logika Parser target.file.mime_type Nilai file_type dari log mentah.
Logika Parser target.file.size Nilai size_bytes dari log mentah.
Logika Parser target.hostname Nilai target_hostname yang diekstrak dari kolom uri.
Logika Parser target.process.command_line Nilai query_exec atau Query atau data.properties.Query.str dari log mentah.
Logika Parser target.process.pid Nilai job_id dari log mentah.
Logika Parser target.resource.attribute.labels Label dibuat dari berbagai kolom seperti CPU_TIME, RUN_TIME, USER_TYPE, DB_TOTAL_TIME, MEDIA_TYPE, ROWS_PROCESSED, NUMBER_FIELDS, DB_BLOCKS, DB_CPU_TIME, ENTITY_NAME, EXCEPTION_MESSAGE, USER_ID_DERIVED, DOWNLOAD_FORMAT, USER_TYPE, CPU_TIME, RUN_TIME, WAVE_SESSION_ID, SessionLevel, verification_method, cpu_time, run_time, db_total_time, db_cpu_time, exec_time, callout_time, number_soql_queries, duration, user_type, entry_point, operation, session_level, rows_processed, sso_type, dashboard_type, Operation, SessionLevel.
Logika Parser target.resource.id Nilai REQUEST_ID atau RecordId atau caseid atau leadid atau contactid atau opportunityid atau accountid dari log mentah.
Logika Parser target.resource.name Nilai QueriedEntities atau resource_name atau component_name atau DATASET_IDS atau field atau StageName atau Subject dari log mentah.
Logika Parser target.resource.product_object_id Nilai REQUEST_ID dari log mentah.
Logika Parser target.resource.resource_type Tetapkan ke "ACCESS_POLICY" untuk ApexCallout dan PlatformEncryption, atau "DATABASE" untuk ApexTrigger, atau "FILE" untuk ContentTransfer, atau "TABLE" untuk ApiEvent.
Logika Parser target.resource.type Disetel ke "BATCH" untuk QueuedExecution dan ApexExecution, atau "FILE" untuk ContentTransfer, atau "DATABASE_TRIGGER" untuk ApexTrigger, atau "Case", "Lead", "Contact", "Opportunity", "Account" berdasarkan keberadaan kolom ID yang sesuai.
Logika Parser target.url Nilai LoginUrl atau URI atau attributes.url atau login_url atau uri dari log mentah.
Logika Parser target.user.email_addresses Nilai Username atau attrs.usrName atau email_address dari log mentah.
Logika Parser target.user.user_display_name Nilai target_user_display_name atau user_name atau username dari log mentah.
Logika Parser target.user.userid Nilai target_user_name atau data.properties.UserId.str atau data.properties.CreatedById.str dari log mentah.
Logika Parser extensions.auth.auth_details Ditetapkan ke "ACTIVE" jika Status bukan "Success", atau ditetapkan ke "UNKNOWN_AUTHENTICATION_STATUS".
Logika Parser extensions.auth.mechanism Disetel ke "REMOTE" untuk peristiwa Login: Berhasil dan Login dengan logintype yang berisi "Remote", atau "USERNAME_PASSWORD" untuk LoginEventStream, atau "MECHANISM_OTHER" untuk peristiwa dengan login_url, atau "AUTHTYPE_UNSPECIFIED" untuk peristiwa Login: Berhasil dan Logout.
Logika Parser extensions.auth.type Setel ke "SSO" untuk Login, Logout, LogoutEvent, LoginAs, IdentityProviderEventStore, LoginHistory, LoginAsEvent dengan LoginType sebagai "SAML Sfdc Initiated SSO", atau "AUTHTYPE_UNSPECIFIED" untuk Login: Success, Logout, LoginAsEvent dengan LoginType sebagai "Application".

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