Mengumpulkan log Salesforce
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.
Buat kunci pribadi RSA:
openssl genrsa -out salesforce_jwt_private.key 2048Buat permintaan penandatanganan sertifikat (CSR):
openssl req -new -key salesforce_jwt_private.key -out salesforce_jwt.csrBuat 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.crtSimpan kunci pribadi dengan aman. Anda akan memerlukannya untuk konfigurasi feed Google SecOps.
Membuat Aplikasi Terhubung Salesforce dengan alur JWT Bearer
- Login ke Salesforce sebagai Administrator Sistem.
- Buka Penyiapan > Aplikasi > Pengelola Aplikasi.
- Klik Aplikasi Terhubung Baru.
- 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.
- Nama Aplikasi yang Terhubung: Masukkan nama (misalnya,
- 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.
- Klik Simpan.
- Klik Lanjutkan pada pesan peringatan.
- Di halaman detail Aplikasi Terhubung, catat Kunci Konsumen. Nilai ini akan digunakan sebagai Penerbit Klaim JWT di Google SecOps.
- Klik Kelola > Edit Kebijakan.
- Di bagian Kebijakan OAuth:
- Pengguna yang Diizinkan: Pilih Pengguna yang disetujui admin telah diotorisasi.
- Pelonggaran IP: Pilih Pelonggaran pembatasan IP.
- Klik Simpan.
Membuat dan mengonfigurasi pengguna integrasi di Salesforce
- Buka Penyiapan > Pengguna > Pengguna.
- Klik New User.
- 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.
- Nama Depan: Masukkan
- Klik Simpan.
- Catat Nama Pengguna persis seperti yang dimasukkan. Nilai ini akan digunakan sebagai Subjek Klaim JWT di Google SecOps.
Tetapkan pengguna integrasi ke Aplikasi Terhubung
- Buka Penyiapan > Aplikasi > Aplikasi Terhubung > Kelola Aplikasi Terhubung.
- Klik Aplikasi Terhubung Google SecOps Integration yang Anda buat.
- Klik Kelola > Kelola Profil atau Kelola Set Izin.
- Pilih profil atau set izin yang ditetapkan ke pengguna integrasi Anda (misalnya, Administrator Sistem).
- Klik Simpan.
Memberikan izin API dan Pemantauan Peristiwa kepada pengguna integrasi
- Buka Penyiapan > Pengguna > Set Izin.
- Klik New.
- Berikan detail konfigurasi berikut:
- Label: Masukkan
Event Monitoring API Access. - Nama API: Terisi otomatis.
- Label: Masukkan
- Klik Simpan.
- 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.
- Klik Kelola Tugas > Tambahkan Tugas.
- Pilih pengguna integrasi yang Anda buat sebelumnya.
- Klik Tetapkan > Selesai.
Mengonfigurasi feed di Google SecOps untuk menyerap log Salesforce melalui API
- Buka Setelan SIEM > Feed.
- Klik + Tambahkan Feed Baru.
- Di halaman berikutnya, klik Konfigurasi satu feed.
- Di kolom Nama feed, masukkan nama untuk feed (misalnya,
Salesforce logs). - Pilih Third party API sebagai Source type.
- Pilih Salesforce sebagai Jenis log.
- Klik Berikutnya.
- Pilih OAuth JWT grant dari drop-down.
- 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
- Produksi:
- 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
- Produksi:
- RSA Private Key: Tempel seluruh konten kunci pribadi RSA Anda (
salesforce_jwt_private.key), termasuk baris-----BEGIN PRIVATE KEY-----dan-----END PRIVATE KEY-----.
- Endpoint JWT OAuth: Masukkan endpoint token OAuth Salesforce dengan parameter grant_type:
- Tentukan parameter tambahan:
- Namespace aset: Namespace aset.
- Label penyerapan: Label yang akan diterapkan ke peristiwa dari feed ini.
- Klik Berikutnya.
- 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
- Buat bucket Amazon S3 dengan mengikuti panduan pengguna ini: Membuat bucket
- Simpan Name dan Region bucket untuk referensi di masa mendatang (misalnya,
salesforce-secops-logs). - Buat pengguna dengan mengikuti panduan pengguna ini: Membuat pengguna IAM.
- Pilih Pengguna yang dibuat.
- Pilih tab Kredensial keamanan.
- Klik Create Access Key di bagian Access Keys.
- Pilih Layanan pihak ketiga sebagai Kasus penggunaan.
- Klik Berikutnya.
- Opsional: tambahkan tag deskripsi.
- Klik Create access key.
- Klik Download CSV file untuk menyimpan Access Key dan Secret Access Key untuk digunakan nanti.
- Klik Done.
- Pilih tab Izin.
- Klik Tambahkan izin di bagian Kebijakan izin.
- Pilih Tambahkan izin.
- Pilih Lampirkan kebijakan secara langsung
- Telusuri dan pilih kebijakan AmazonS3FullAccess.
- Klik Berikutnya.
- Klik Add permissions.
Mengonfigurasi Amazon AppFlow
- Buka konsol Amazon AppFlow.
- Klik Buat alur.
- Berikan detail konfigurasi berikut:
- Nama alur: Masukkan nama (misalnya,
Salesforce-to-S3-SecOps). - Deskripsi alur: Deskripsi opsional.
- Nama alur: Masukkan nama (misalnya,
- Klik Berikutnya.
- 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).
- Klik Berikutnya.
- 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/).
- Klik Berikutnya.
- Untuk Pemicu alur:
- Pilih Jalankan sesuai jadwal.
- Mulai pukul: Tetapkan waktu mulai pilihan Anda.
- Berulang: Pilih Per jam atau Harian berdasarkan persyaratan Anda.
- Klik Berikutnya.
- 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.
- Klik Berikutnya.
- Untuk Tambahkan filter (opsional):
- Tambahkan filter untuk membatasi data yang ditransfer.
- Klik Berikutnya.
- Tinjau konfigurasi Anda, lalu klik Buat alur.
- Klik Aktifkan alur untuk memulai transfer terjadwal.
Mengonfigurasi feed di Google SecOps untuk memproses log Salesforce
- Buka Setelan SIEM > Feed.
- Klik + Tambahkan Feed Baru.
- Di halaman berikutnya, klik Konfigurasi satu feed.
- Di kolom Nama feed, masukkan nama untuk feed (misalnya,
Salesforce Logs). - Pilih Amazon S3 V2 sebagai Jenis sumber.
- Pilih Salesforce sebagai Jenis log.
- Klik Berikutnya.
Tentukan nilai untuk parameter input berikut:
S3 URI: Masukkan URI bucket (misalnya,
s3://salesforce-secops-logs/).- Ganti
salesforce-secops-logsdengan nama bucket Anda yang sebenarnya.
- Ganti
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.
Klik Berikutnya.
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.