收集 Salesforce 記錄
本文說明如何使用兩種方法,將 Salesforce 記錄擷取至 Google Security Operations:Amazon AppFlow 和 Amazon S3 或 第三方 API。剖析器會處理 LEEF、CSV 和 JSON 格式的記錄。這項服務會擷取欄位、執行格式專屬處理作業 (處理 LEEF 鍵/值組合、CSV 欄和 JSON 結構)、將欄位對應至 UDM,並使用中繼資料和衍生欄位擴充資料。剖析器也會處理各種 Salesforce 事件類型,針對登入、登出和其他動作套用特定邏輯、將事件分類,並設定適當的 UDM 事件類型。
事前準備
請確認您已完成下列事前準備事項:
- Google SecOps 執行個體
- Salesforce 特殊存取權 (系統管理員或同等權限)
選項 1:第三方 API 方法
- Salesforce Shield Event Monitoring 授權或 Event Monitoring 外掛程式
- 產生及管理 X.509 憑證和 RSA 金鑰組
選項 2:使用 S3 方法的 Amazon AppFlow
- AWS 的特殊存取權
- 貴機構使用 Salesforce Enterprise、Unlimited 或 Performance 版本
重要授權注意事項:如果沒有 Salesforce Shield 事件監控功能,您只能透過 API 存取 EventLogFile,且只能存取 7 種基本事件類型 (登入、登出、API 總用量、CORS 違規記錄、CSP 違規、主機名稱重新導向、Apex 意外例外狀況),並保留 1 天。如果機構沒有 Shield,建議使用 Amazon AppFlow 方法 (選項 2)。
選項 1:使用第三方 API (OAuth JWT 不記名) 設定 Salesforce Direct API 整合
這個方法會使用 OAuth 2.0 JWT 不記名流程,建立從 Google SecOps 到 Salesforce 的直接 API 連線,以進行伺服器對伺服器驗證。
使用這個方法的前提條件:
- Salesforce Shield 事件監控授權或事件監控外掛程式 (全面存取 EventLogFile 時需要)
- Salesforce 的系統管理員存取權
- 產生及管理 X.509 憑證和 RSA 金鑰組
產生 RSA 金鑰組和 X.509 憑證
您需要 RSA 私密金鑰和對應的 X.509 憑證,才能進行 JWT 持有人驗證。
產生 RSA 私密金鑰:
openssl genrsa -out salesforce_jwt_private.key 2048產生憑證簽署要求 (CSR):
openssl req -new -key salesforce_jwt_private.key -out salesforce_jwt.csr產生自行簽署的憑證 (有效期限為 1 年):
openssl x509 -req -days 365 -in salesforce_jwt.csr -signkey salesforce_jwt_private.key -out salesforce_jwt.crt請妥善儲存私密金鑰。設定 Google SecOps 資訊提供時需要這項資訊。
使用 JWT 持有人流程建立 Salesforce 連線應用程式
- 以系統管理員身分登入 Salesforce。
- 依序前往「設定」>「應用程式」>「應用程式管理員」。
- 按一下「New Connected App」(新增已連結的應用程式)。
- 提供下列設定詳細資料:
- 已連結的應用程式名稱:輸入名稱 (例如
Google Security Operations Integration)。 - API 名稱:系統會根據連結的應用程式名稱自動填入。
- 聯絡電子郵件地址:輸入您的電子郵件地址。
- 已連結的應用程式名稱:輸入名稱 (例如
- 在「API (Enable OAuth Settings)」部分:
- 選取「啟用 OAuth 設定」。
- 回呼網址:輸入
https://login.salesforce.com/services/oauth2/callback(這不適用於 JWT 流程,但必須輸入)。 - 選取「使用數位簽章」。
- 按一下「選擇檔案」,然後上傳您稍早產生的 X.509 憑證 (
salesforce_jwt.crt)。 - 選取的 OAuth 範圍:新增下列範圍:
- 存取及管理資料 (API)
- 隨時代表您執行要求 (refresh_token、offline_access)
- 針對支援的授權流程,要求使用 Proof Key for Code Exchange (PKCE) 擴充功能:取消勾選這個選項。
- 按一下 [儲存]。
- 按一下警告訊息中的「繼續」。
- 在「已連線的應用程式」詳細資料頁面,記下「取用者金鑰」。Google SecOps 會將此值做為 JWT 聲明發行者。
- 依序點選「管理」>「編輯政策」。
- 在「OAuth Policies」部分:
- 允許的使用者:選取「管理員核准的使用者已預先授權」。
- IP 寬鬆設定:選取「放寬 IP 限制」。
- 按一下 [儲存]。
在 Salesforce 建立及設定整合使用者
- 依序前往「設定」>「使用者」>「使用者」。
- 點選 [New User]。
- 提供下列設定詳細資料:
- 名字:輸入
Google。 - 姓氏:輸入
Google SecOps Integration。 - 電子郵件:輸入電子郵件地址。
- 使用者名稱:輸入不重複的使用者名稱。
- 使用者授權:選取「Salesforce」。
- 設定檔:選取「系統管理員」,或建立具有 API 存取權的自訂設定檔。
- 名字:輸入
- 按一下 [儲存]。
- 請記下輸入的使用者名稱,這將做為 Google SecOps 中的 JWT 憑證附加資訊主體。
將整合使用者指派給連結的應用程式
- 依序前往「設定」>「應用程式」>「已連結的應用程式」>「管理已連結的應用程式」。
- 按一下您建立的「Google Security Operations Integration」(Google Security Operations 整合) 連結應用程式。
- 按一下「管理」>「管理設定檔」或「管理權限集」。
- 選取指派給整合使用者的設定檔或權限集 (例如「系統管理員」)。
- 按一下 [儲存]。
將 API 和事件監控權限授予整合使用者
- 依序前往「設定」>「使用者」>「權限集」。
- 點選「New」(新增)。
- 提供下列設定詳細資料:
- 「Label」(標籤):輸入
Event Monitoring API Access。 - API 名稱:系統會自動填入。
- 「Label」(標籤):輸入
- 按一下 [儲存]。
- 在權限集詳細資料頁面中:
- 按一下「系統權限」。
- 按一下 [編輯]。
- 檢查下列權限:
- API 已啟用
- 查看事件記錄檔
- 查看所有資料 (選用,但建議使用,可取得完整存取權)
- 按一下 [儲存]。
- 依序點選「管理指派作業」>「新增指派作業」。
- 選取您先前建立的整合使用者。
- 依序點選「指派」>「完成」。
在 Google SecOps 中設定動態饋給,透過 API 擷取 Salesforce 記錄
- 依序前往「SIEM 設定」>「動態饋給」。
- 按一下「+ 新增動態消息」。
- 在下一個頁面中,按一下「設定單一動態饋給」。
- 在「動態饋給名稱」欄位中輸入動態饋給名稱 (例如
Salesforce logs)。 - 選取「第三方 API」做為「來源類型」。
- 選取「Salesforce」做為「記錄類型」。
- 點選「下一步」。
- 從下拉式選單中選取「OAuth JWT grant」(OAuth JWT 授權)。
- 指定下列輸入參數的值:
- OAuth JWT 端點:輸入 Salesforce OAuth 權杖端點:
- 製作:
https://login.salesforce.com/services/oauth2/token - 沙箱:
https://test.salesforce.com/services/oauth2/token - 自訂網域:
https://yourdomain.my.salesforce.com/services/oauth2/token
- 製作:
- JWT 憑證核發者:輸入已連結應用程式的消費者金鑰。
- JWT 憑證附加資訊主體:輸入整合使用者的使用者名稱。
- JWT 宣告目標對象:輸入 Salesforce 登入基本網址:
- 製作:
https://login.salesforce.com - 沙箱:
https://test.salesforce.com
- 製作:
- RSA 私密金鑰:貼上 RSA 私密金鑰 (
salesforce_jwt_private.key) 的完整內容,包括-----BEGIN PRIVATE KEY-----和-----END PRIVATE KEY-----行。
- OAuth JWT 端點:輸入 Salesforce OAuth 權杖端點:
- 指定其他參數:
- 資產命名空間:資產命名空間。
- 擷取標籤:要套用至這個動態饋給事件的標籤。
- 點選「下一步」。
- 在「完成」畫面中檢查新的動態饋給設定,然後按一下「提交」。
選項 2:使用 Amazon AppFlow 和 S3 設定 Salesforce 記錄匯出作業
這個方法會使用 Amazon AppFlow 從 Salesforce 擷取資料,並儲存在 Amazon S3 中,然後由 Google SecOps 擷取。
為 Google SecOps 設定 AWS S3 值區和 IAM
- 按照這份使用者指南建立 Amazon S3 bucket:建立 bucket
- 儲存 bucket 的「Name」(名稱) 和「Region」(地區),以供日後參考 (例如
salesforce-secops-logs)。 - 請按照這份使用者指南建立使用者:建立 IAM 使用者。
- 選取建立的「使用者」。
- 選取「安全憑證」分頁標籤。
- 在「Access Keys」部分,按一下「Create Access Key」。
- 選取「第三方服務」做為「用途」。
- 點選「下一步」。
- 選用:新增說明標記。
- 按一下「建立存取金鑰」。
- 按一下「下載 CSV 檔案」,儲存「存取金鑰」和「私密存取金鑰」以供日後參考。
- 按一下 [完成]。
- 選取 [權限] 分頁標籤。
- 在「權限政策」部分中,按一下「新增權限」。
- 選取「新增權限」。
- 選取「直接附加政策」。
- 搜尋 AmazonS3FullAccess 政策。
- 選取政策。
- 點選「下一步」。
- 按一下「Add permissions」。
設定 Amazon AppFlow
- 開啟 Amazon AppFlow 控制台。
- 按一下「建立流程」。
- 提供下列設定詳細資料:
- 流程名稱:輸入名稱 (例如
Salesforce-to-S3-SecOps)。 - 流程說明:選填說明。
- 流程名稱:輸入名稱 (例如
- 點選「下一步」。
- 如要查看來源詳細資料:
- 來源名稱:選取「Salesforce」。
- 選擇 Salesforce 連結:按一下「建立新連結」。
- 系統會顯示 Salesforce 登入視窗。使用 Salesforce 憑證登入。
- 系統提示時,請授予存取權。
- Salesforce 物件:選取要轉移的物件 (例如,如果您有事件監控功能,請選取「EventLogFile」,或是其他稽核物件)。
- 點選「下一步」。
- 針對「Destination details」(目的地詳細資料):
- 目的地名稱:選取「Amazon S3」。
- 儲存空間詳細資料:選取您先前建立的 S3 儲存空間。
- S3 bucket prefix:選用的前置字串 (例如
salesforce-logs/)。
- 點選「下一步」。
- 如為「流程觸發條件」:
- 選取「依照排程執行」。
- 開始時間:設定偏好的開始時間。
- 重複:根據需求選取「每小時」或「每天」。
- 點選「下一步」。
- 針對「對應資料欄位」:
- 選取「直接對應所有欄位」,或指定要對應的欄位。
- 如果是手動對應,請選取要轉移的欄位。
- 點選「下一步」。
- 如要新增篩選器 (選用):
- 新增篩選器,限制要轉移的資料。
- 點選「下一步」。
- 檢查設定,然後按一下「建立流程」。
- 按一下「啟用流程」,即可開始預定轉移作業。
在 Google SecOps 中設定動態饋給,擷取 Salesforce 記錄
- 依序前往「SIEM 設定」>「動態饋給」。
- 按一下「新增動態消息」。
- 在下一個頁面中,按一下「設定單一動態饋給」。
- 在「動態饋給名稱」欄位中,輸入動態饋給的名稱,例如「Salesforce Logs」。
- 選取「Amazon S3 V2」做為「來源類型」。
- 選取「Salesforce」做為「記錄類型」。
- 點選「下一步」。
指定下列輸入參數的值:
- S3 URI:bucket URI。
s3://BUCKET_NAME替換下列項目:- BUCKET_NAME:值區的名稱。
來源刪除選項:根據偏好選取刪除選項。
檔案存在時間上限:包含在過去天數內修改的檔案。預設值為 180 天。
存取金鑰 ID:具有 S3 值區存取權的使用者存取金鑰。
存取密鑰:具有 S3 bucket 存取權的使用者存取密鑰。
- S3 URI:bucket URI。
點選「下一步」。
在「完成」畫面中檢查新的動態饋給設定,然後按一下「提交」。
支援的 Salesforce 記錄格式
Salesforce 剖析器支援 KV (LEEF) 和 CSV 格式的記錄。
支援的 Salesforce 範例記錄
KV (LEEF)
LEEF:1.0|Salesforce|SecurityMonitoring|343.0|Login: Success|cat=SalesforceLoginHistory devTime=2020-04-23T14:40:38.000+0000 devTimeFormat=yyyy-MM-dd'T'HH:mm:ss.SSSZ ApiVersion=N/A Platform=Windows 7 LoginUrl=sanitized.salesforce.com src=192.0.2.1 usrName=user.sanitized@fakecorp.com attributes.url=https://sanitized.salesforce.com/services/data/v38.0/sobjects/LoginHistory/FAKEID12345 Id=FAKEID12345 LoginType=Remote Access 2.0 Application=Salesforce for Outlook Browser=N/ACSV
"EVENT_TYPE","TIMESTAMP","REQUEST_ID","ORGANIZATION_ID","USER_ID","RUN_TIME","CPU_TIME","URI","SESSION_KEY","LOGIN_KEY","USER_TYPE","REQUEST_STATUS","DB_TOTAL_TIME","METHOD","MEDIA_TYPE","STATUS_CODE","USER_AGENT","ROWS_PROCESSED","NUMBER_FIELDS","DB_BLOCKS","DB_CPU_TIME","REQUEST_SIZE","RESPONSE_SIZE","ENTITY_NAME","EXCEPTION_MESSAGE","TIMESTAMP_DERIVED","USER_ID_DERIVED","CLIENT_IP","URI_ID_DERIVED" "RestApi","20240421120015.367","SLB:sanitized_request_id","00D040000004g6r","005Sv000000CxcD",329,69,"/services/data/v58.0/query","TJestP3qzXKiV/Ud","D/M3fSrc6oTXlmLq","Standard","S",37030739,"GET","application/json;charset=UTF-8",200,9999,840,5,19481,47,10,250361,"EventLogFile",NaN,"2024-04-21T12:00:15.366Z","005Sv000000CxcDIAS","192.0.2.3",NaN
UDM 對應表
| 記錄欄位 | UDM 對應 | 邏輯 |
|---|---|---|
Account.Name |
target.resource.name |
原始記錄中的 Account.Name 值。 |
AccountId |
target.resource.id |
原始記錄中的 AccountId 值。 |
Action |
security_result.description |
原始記錄中的 Action 值。 |
AdditionalInfo |
- | 未對應至 IDM 物件。 |
ApiType |
target.application |
原始記錄中的 ApiType 值。 |
ApiVersion |
- | 未對應至 IDM 物件。 |
Application |
principal.application |
原始記錄中的 Application 值;如果是 LoginAsEvent,則為「Browser」;如果是 LoginEvent,則為「Integration JWT Token」;如果是 LoginHistory (objecttype 為 LoginHistory),則為「SfdcSiqActivityPlatform」;如果是 ApiEvent,則為「N/A」;如果是 LoginAsEventStream,則為「Browser」。 |
attributes.url |
target.url |
原始記錄中的 attributes.url 值,或是原始記錄中各種事件類型的特定網址。 |
attributes.type |
metadata.product_event_type |
原始記錄中的 attributes.type 值。 |
AuthSessionId |
network.session_id |
原始記錄中的 AuthSessionId 值。 |
Browser |
principal.resource.name |
原始記錄中的 Browser 值;如果原始記錄中沒有 Browser,且 Application 為「洞察」,則為「Unknown」;如果 LoginHistory 的 ApiType 為「SOAP Partner」,則為「Java (Salesforce.com)」;如果 LoginHistory 的 Application 為「SfdcSiqActivityPlatform」,則為「Unknown」;如果為 LoginAsEventStream,則為 data.properties.Browser.str。 |
Case.Subject |
target.resource.name |
原始記錄中的 Case.Subject 值。 |
CaseId |
target.resource.id |
原始記錄中的 CaseId 值。 |
cat |
metadata.product_event_type |
原始記錄中的 cat 值。 |
City |
principal.location.city |
原始記錄中的 City 值,或是 LoginHistory 中的 LoginGeo.City 值。 |
Client |
principal.labels |
原始記錄中的 Client 值,格式為標籤。 |
CLIENT_IP |
principal.ip、principal.asset.ip |
原始記錄中的 CLIENT_IP 值。 |
ClientVersion |
- | 未對應至 IDM 物件。 |
CipherSuite |
network.tls.cipher |
原始記錄中的 CipherSuite 值。 |
ColumnHeaders |
principal.labels |
原始記錄中的 ColumnHeaders 值,格式為標籤。 |
ConnectedAppId |
principal.labels |
原始記錄中的 ConnectedAppId 值,格式為標籤。 |
Contact.Name |
target.resource.name |
原始記錄中的 Contact.Name 值。 |
ContactId |
target.resource.id |
原始記錄中的 ContactId 值。 |
Country |
principal.location.country_or_region |
原始記錄中的 Country 值,或 LoginHistory 的 LoginGeo.Country 值。 |
CreatedByContext |
principal.user.userid |
原始記錄中的 CreatedByContext 值。 |
CreatedById |
principal.resource.attribute.labels |
原始記錄中的 CreatedById 值,格式為標籤。 |
CreatedDate |
metadata.collected_timestamp |
原始記錄中的 CreatedDate 值,如果沒有,則為目前的時間戳記。 |
CPU_TIME |
target.resource.attribute.labels |
原始記錄中的 CPU_TIME 值,格式為標籤。 |
data |
- | 內含個別擷取和對應的各種欄位。 |
DATASET_IDS |
target.resource.name |
原始記錄中的 DATASET_IDS 值。 |
DelegatedOrganizationId |
target.administrative_domain |
原始記錄中的 DelegatedOrganizationId 值。 |
DelegatedUsername |
observer.user.userid |
原始記錄中的 DelegatedUsername 值。 |
Description |
metadata.description |
原始記錄中的 Description 值。 |
DevicePlatform |
principal.resource.type |
原始記錄中的 DevicePlatform 值,經過剖析後會擷取資源類型。 |
Display |
metadata.description |
原始記錄中的 Display 值。 |
DOWNLOAD_FORMAT |
target.resource.attribute.labels |
原始記錄中的 DOWNLOAD_FORMAT 值,格式為標籤。 |
Duration |
target.resource.attribute.labels |
原始記錄中的 Duration 值,格式為標籤。 |
ENTITY_NAME |
target.resource.attribute.labels |
原始記錄中的 ENTITY_NAME 值,格式為標籤。 |
ErrorCode |
security_result.action |
原始記錄中的 ErrorCode 值,轉換為 ALLOW 或 BLOCK。 |
EventDate |
timestamp |
原始記錄中的 EventDate 值,或 data.properties.TIMESTAMP_DERIVED.str (如適用)、data.properties.TIMESTAMP_DERIVED_FIRST.str (如適用)、@timestamp (如適用)、created_date (如適用)、timestamp (如適用),或 LoginHistory 的 LoginTime。 |
EventIdentifier |
metadata.product_log_id |
原始記錄中的 EventIdentifier 值。 |
EventType |
metadata.product_event_type |
原始記錄中的 EventType 值。 |
Id |
principal.user.userid |
原始記錄中的 Id 值,或 SetupAuditTrail 和其他事件的 metadata.product_log_id 值。 |
IdentityUsed |
principal.user.email_addresses |
原始記錄中的 IdentityUsed 值。 |
Lead.Name |
target.resource.name |
原始記錄中的 Lead.Name 值。 |
LeadId |
target.resource.id |
原始記錄中的 LeadId 值。 |
LoginAsCategory |
- | 未對應至 IDM 物件。 |
LoginGeo.Country |
principal.location.country_or_region |
原始記錄中的 LoginGeo.Country 值。 |
LoginHistoryId |
- | 未對應至 IDM 物件。 |
LoginKey |
principal.user.userid、network.session_id |
原始記錄中的 LoginKey 值,或 SetupAuditTrail 的 CreatedByContext 值。 |
LoginTime |
timestamp |
原始記錄中的 LoginTime 值。 |
LoginType |
security_result.description |
原始記錄中的 LoginType 值;如果 LoginHistory 的 ApiType 為「SOAP Partner」,則為「Other Apex API」;如果 LoginHistory 的 Application 為「SfdcSiqActivityPlatform」,則為「Remote Access 2.0」。 |
LoginUrl |
target.url、principal.url |
原始記錄中的 LoginUrl 值。 |
LogFile |
principal.resource.attribute.labels |
原始記錄中的 LogFile 值,格式為標籤。 |
LogFileContentType |
principal.resource.attribute.labels |
原始記錄中的 LogFileContentType 值,格式為標籤。 |
LogFileLength |
principal.resource.attribute.labels |
原始記錄中的 LogFileLength 值,格式為標籤。 |
Message |
- | 未對應至 IDM 物件。 |
METHOD |
network.http.method |
原始記錄中的 METHOD 值。 |
Name |
target.application |
原始記錄中的 Name 值。 |
NewValue |
- | 須搭配 OldValue 使用,才能產生 security_result.summary。 |
NUMBER_FIELDS |
target.resource.attribute.labels |
原始記錄中的 NUMBER_FIELDS 值,格式為標籤。 |
OldValue |
- | 須搭配 NewValue 使用,才能產生 security_result.summary。 |
Operation |
security_result.description、target.resource.attribute.labels |
原始記錄中的 Operation 值,或 SetupAuditTrail 的 Display 值。 |
OperationStatus |
security_result.action |
原始記錄中的 OperationStatus 值,轉換為 ALLOW 或 BLOCK。 |
ORGANIZATION_ID |
target.administrative_domain |
原始記錄中的 ORGANIZATION_ID 值。 |
OsName |
principal.platform |
原始記錄中的 OsName 值。 |
OsVersion |
principal.platform_version |
原始記錄中的 OsVersion 值。 |
Platform |
principal.platform |
原始記錄中的 Platform 值,或是 LightningUriEventStream 中的 data.properties.OsName.str 值,或是 LoginEventStream 中的 data.properties.OsName.str 值。 |
QueriedEntities |
target.resource.name、principal.labels |
原始記錄中的 QueriedEntities 值,或 UriEvent 和 ApiEvent 的 component_name。 |
Query |
target.process.command_line、principal.labels |
原始記錄中的 Query 值。 |
RecordId |
target.resource.id |
原始記錄中的 RecordId 值。 |
Records |
principal.labels |
原始記錄中的 Records 值,格式為標籤。 |
REQUEST_ID |
metadata.product_log_id、target.resource.product_object_id |
原始記錄中的 REQUEST_ID 值。 |
REQUEST_SIZE |
network.sent_bytes |
原始記錄中的 REQUEST_SIZE 值。 |
REQUEST_STATUS |
security_result.summary |
原始記錄中的 REQUEST_STATUS 值。 |
RESPONSE_SIZE |
network.received_bytes |
原始記錄中的 RESPONSE_SIZE 值。 |
RowsProcessed |
target.resource.attribute.labels |
原始記錄中的 RowsProcessed 值,格式為標籤。 |
RUN_TIME |
target.resource.attribute.labels |
原始記錄中的 RUN_TIME 值,格式為標籤。 |
SamlEntityUrl |
- | 未對應至 IDM 物件。 |
SdkAppType |
- | 未對應至 IDM 物件。 |
SdkAppVersion |
- | 未對應至 IDM 物件。 |
SdkVersion |
- | 未對應至 IDM 物件。 |
Section |
security_result.summary |
原始記錄中的 Section 值。 |
SessionKey |
network.session_id |
原始記錄中的 SessionKey 值。 |
SessionLevel |
target.resource.attribute.labels |
原始記錄中的 SessionLevel 值,格式為標籤。 |
SourceIp |
principal.ip、principal.asset.ip |
原始記錄中的 SourceIp 值。 |
src |
principal.ip、principal.asset.ip |
原始記錄中的 src 值。 |
SsoType |
target.resource.attribute.labels |
原始記錄中的 SsoType 值,格式為標籤。 |
STATUS_CODE |
network.http.response_code |
原始記錄中的 STATUS_CODE 值。 |
Status |
security_result.action、security_result.action_details |
原始記錄中的 Status 值,轉換為 ALLOW 或 BLOCK,或做為 LoginEventStream 的動作詳細資料。 |
Subject |
target.resource.name |
原始記錄中的 Subject 值。 |
TargetUrl |
- | 未對應至 IDM 物件。 |
TIMESTAMP |
metadata.collected_timestamp |
原始記錄中的 TIMESTAMP 值。 |
TIMESTAMP_DERIVED |
timestamp |
原始記錄中的 TIMESTAMP_DERIVED 值。 |
TlsProtocol |
network.tls.version_protocol |
原始記錄中的 TlsProtocol 值。 |
URI |
target.url |
原始記錄中的 URI 值。 |
USER_AGENT |
network.http.user_agent |
原始記錄中的 USER_AGENT 值。 |
USER_ID |
principal.user.userid |
原始記錄中的 USER_ID 值。 |
USER_ID_DERIVED |
principal.user.product_object_id、target.resource.attribute.labels |
原始記錄中的 USER_ID_DERIVED 值。 |
UserId |
principal.user.userid |
原始記錄中的 UserId 值。 |
USER_TYPE |
target.resource.attribute.labels |
原始記錄中的 USER_TYPE 值,格式為標籤。 |
Username |
principal.user.userid、principal.user.email_addresses、target.user.email_addresses |
原始記錄中的 Username 值,或是各種事件的 src_email 值、IdentityProviderEventStore 的 IdentityUsed 值、Search 和 SearchAlert 的 data.properties.Email.str 值,或是 LoginAsEventStream 和 LoginEventStream 的 data.properties.Username.str 值。 |
UserType |
target.resource.attribute.labels |
原始記錄中的 UserType 值,格式為標籤。 |
usrName |
principal.user.userid、principal.user.email_addresses、target.user.email_addresses |
原始記錄中的 usrName 值。 |
VerificationMethod |
target.resource.attribute.labels |
原始記錄中的 VerificationMethod 值,格式為標籤。 |
| 剖析器邏輯 | metadata.event_type |
根據 event_id 和 operation 欄位衍生,或針對 LoginEventStream 設為「USER_LOGIN」,針對 Logout 和 LogoutEvent 設為「USER_LOGOUT」,針對各種事件設為「USER_RESOURCE_UPDATE_CONTENT」,針對 PlatformEncryption 設為「USER_RESOURCE_UPDATE_PERMISSIONS」,針對 QueuedExecution、ApexExecution、LightningInteraction、LightningPerformance、LightningPageView、URI、RestApi、API、AuraRequest、ApexCallout、OneCommerceUsage、Sites、MetadataApiOperation、OneCommerceUsage、VisualforceRequest、Dashboard、Search、ListViewEvent 設為「RESOURCE_READ」,針對 UriEvent 和 TimeBasedWorkflow (Operation 為「Create」或「INSERT」) 設為「RESOURCE_CREATION」,針對 UriEvent 和 LightningUriEvent (Operation 為「Update」) 設為「RESOURCE_WRITTEN」,針對 UriEvent (Operation 為「Delete」或「ROLLBACK」) 設為「RESOURCE_DELETION」,針對 SetupAuditTrail 和 AuditTrail 設為「USER_UNCATEGORIZED」,針對 SetupAuditTrail (operation 為「namedCredentialEncryptedFieldChange」) 設為「USER_CHANGE_PASSWORD」,針對 ApiEventStream 和 LightningUriEventStream 設為「GENERIC_EVENT」,或根據網路和主體存在狀態設定。 |
| 剖析器邏輯 | metadata.ingestion_labels |
標籤,指出事件來源為「事件記錄檔」、「即時事件監控」或「SetupAuditTrail」。 |
| 剖析器邏輯 | metadata.log_type |
一律設為「SALESFORCE」。 |
| 剖析器邏輯 | metadata.product_name |
一律設為「SALESFORCE」。 |
| 剖析器邏輯 | metadata.vendor_name |
一律設為「SALESFORCE」。 |
| 剖析器邏輯 | metadata.url_back_to_product |
由 LoginUrl、attributes.url、data.properties.PageUrl.str、data.properties.LoginUrl.str 等各種欄位建構而成。 |
| 剖析器邏輯 | network.application_protocol |
如果 uri 欄位開頭為「http」,請設為「HTTPS」。 |
| 剖析器邏輯 | network.http.referral_url |
如果 user_agent 欄位包含「Referer=」,則會從該欄位擷取。 |
| 剖析器邏輯 | network.http.response_code |
衍生自 request_status,適用於各種活動。 |
| 剖析器邏輯 | network.http.user_agent |
原始記錄中的 user_agent 值,或是 ApiEventStream 和 LoginEventStream 中的 data.properties.UserAgent.str 值,或是 Sites 事件中的值,或是 Sites 事件中的「User-Agent」。 |
| 剖析器邏輯 | network.session_id |
原始記錄中的 session_key 或 SESSION_KEY 值,或從其他欄位 (例如 LoginKey 或 AuthSessionId) 建構的值。 |
| 剖析器邏輯 | network.tls.version |
原始記錄中的 tls_protocol 值,或 LoginEventStream 中的 data.properties.TlsProtocol.str 值。 |
| 剖析器邏輯 | principal.application |
原始記錄中的 application 值;如果是「登入:成功」事件,則為「Salesforce for Outlook」;如果是沒有應用程式的「登入:成功」事件,則為「Insights」;如果是 Lightning 事件,則從 device_platform 擷取。 |
| 剖析器邏輯 | principal.asset.hostname |
如果 client_ip 是主機名稱,則為該主機名稱的值。 |
| 剖析器邏輯 | principal.asset.ip |
如果是 IP 位址,值為 client_ip、src_ip、SourceIp 或 CLIENT_IP。 |
| 剖析器邏輯 | principal.hostname |
如果 client_ip 是主機名稱,則為該主機名稱的值。 |
| 剖析器邏輯 | principal.ip |
如果是 IP 位址,值為 client_ip、src_ip、SourceIp 或 CLIENT_IP。 |
| 剖析器邏輯 | principal.labels |
標籤由 FederationIdentifier、ApiType、OrgId、channel 等各種欄位建構而成。 |
| 剖析器邏輯 | principal.location.city |
原始記錄中的 geoip_src.city_name、City 或 LoginGeo.City 值。 |
| 剖析器邏輯 | principal.location.country_or_region |
原始記錄中的 geoip_src.country_name、Country、LoginGeo.Country 或 client_geo 值。 |
| 剖析器邏輯 | principal.location.region_latitude |
原始記錄中的 data.properties.LoginLatitude.number 值。 |
| 剖析器邏輯 | principal.location.region_longitude |
原始記錄中的 data.properties.LoginLongitude.number 值。 |
| 剖析器邏輯 | principal.location.state |
原始記錄中的 geoip_src.region_name 值。 |
| 剖析器邏輯 | principal.platform |
原始記錄中的 Platform、OsName 或 os_name 值,或是 LoginEventStream 的「WINDOWS」,其中 Platform 包含「Windows」。 |
| 剖析器邏輯 | principal.platform_version |
原始記錄中的 OsVersion 或 os_version 值,或是從 Platform 擷取的值 (適用於含有「Windows」的 LoginEventStream Platform)。 |
| 剖析器邏輯 | principal.resource.attribute.labels |
標籤由 CreatedById、ApiVersion、LogFile、LogFileContentType、LogFileLength 等各種欄位建構而成。 |
| 剖析器邏輯 | principal.resource.name |
原始記錄中的 Browser 或 browser_name 值,或是「Java (Salesforce.com)」,適用於 ApiType 為「SOAP Partner」的 LoginHistory。 |
| 剖析器邏輯 | principal.resource.type |
從 Lightning 事件中擷取,或是 LoginAsEvent 和 LoginAsEventStream 的「瀏覽器」。device_platform |
| 剖析器邏輯 | principal.url |
原始記錄中的 LoginUrl 值。 |
| 剖析器邏輯 | principal.user.email_addresses |
原始記錄中的 usrName、Username、src_email、IdentityUsed、data.properties.Username.str 或 data.properties.Email.str 值。 |
| 剖析器邏輯 | principal.user.product_object_id |
原始記錄中的 attrs.USER_ID_DERIVED 或 data.properties.USER_ID_DERIVED.str 值。 |
| 剖析器邏輯 | principal.user.userid |
原始記錄中的 usrName、Username、user_id、UserId、USER_ID、Id、LoginKey、CreatedByContext、data.properties.Username.str、data.properties.USER_ID.str 或 data.properties.LoginKey.str 值。 |
| 剖析器邏輯 | security_result.action |
衍生自原始記錄中的 Status、OperationStatus、ErrorCode、action 或 operation_status,並轉換為 ALLOW 或 BLOCK。 |
| 剖析器邏輯 | security_result.action_details |
LoginEventStream 原始記錄中的 Status 值。 |
| 剖析器邏輯 | security_result.description |
原始記錄中的 LoginType、logintype、Operation、Action 或 Display 值。 |
| 剖析器邏輯 | security_result.rule_name |
原始記錄中的 Policy 或 rule_name 值。 |
| 剖析器邏輯 | security_result.summary |
由原始記錄中的 NewValue 和 OldValue、REQUEST_STATUS、Section 或 forecastcategory 建構而成。 |
| 剖析器邏輯 | target.administrative_domain |
原始記錄中的 ORGANIZATION_ID、DelegatedOrganizationId、organization_id 或 data.properties.OrgName.str 值。 |
| 剖析器邏輯 | target.application |
原始記錄中的 Application、app_name、ApiType、Name 或 data.properties.Application.str 值。 |
| 剖析器邏輯 | target.asset.hostname |
從 uri 欄位擷取的 target_hostname 值。 |
| 剖析器邏輯 | target.asset.ip |
原始記錄中的 data.properties.CLIENT_IP.str 值。 |
| 剖析器邏輯 | target.asset_id |
由 device_id 或 REQUEST_ID 建構。 |
| 剖析器邏輯 | target.file.mime_type |
原始記錄中的 file_type 值。 |
| 剖析器邏輯 | target.file.size |
原始記錄中的 size_bytes 值。 |
| 剖析器邏輯 | target.hostname |
從 uri 欄位擷取的 target_hostname 值。 |
| 剖析器邏輯 | target.process.command_line |
原始記錄中的 query_exec、Query 或 data.properties.Query.str 值。 |
| 剖析器邏輯 | target.process.pid |
原始記錄中的 job_id 值。 |
| 剖析器邏輯 | target.resource.attribute.labels |
標籤是由各種欄位建構而成,例如 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。 |
| 剖析器邏輯 | target.resource.id |
原始記錄中的 REQUEST_ID、RecordId、caseid、leadid、contactid、opportunityid 或 accountid 值。 |
| 剖析器邏輯 | target.resource.name |
原始記錄中的 QueriedEntities、resource_name、component_name、DATASET_IDS、field、StageName 或 Subject 值。 |
| 剖析器邏輯 | target.resource.product_object_id |
原始記錄中的 REQUEST_ID 值。 |
| 剖析器邏輯 | target.resource.resource_type |
如果是 ApexCallout 和 PlatformEncryption,請設為「ACCESS_POLICY」;如果是 ApexTrigger,請設為「DATABASE」;如果是 ContentTransfer,請設為「FILE」;如果是 ApiEvent,請設為「TABLE」。 |
| 剖析器邏輯 | target.resource.type |
針對 QueuedExecution 和 ApexExecution 設為「BATCH」,針對 ContentTransfer 設為「FILE」,針對 ApexTrigger 設為「DATABASE_TRIGGER」,或根據相應 ID 欄位的存在與否設為「Case」、「Lead」、「Contact」、「Opportunity」、「Account」。 |
| 剖析器邏輯 | target.url |
原始記錄中的 LoginUrl、URI、attributes.url、login_url 或 uri 值。 |
| 剖析器邏輯 | target.user.email_addresses |
原始記錄中的 Username、attrs.usrName 或 email_address 值。 |
| 剖析器邏輯 | target.user.user_display_name |
原始記錄中的 target_user_display_name、user_name 或 username 值。 |
| 剖析器邏輯 | target.user.userid |
原始記錄中的 target_user_name、data.properties.UserId.str 或 data.properties.CreatedById.str 值。 |
| 剖析器邏輯 | extensions.auth.auth_details |
如果 Status 不是「Success」,請設為「ACTIVE」,否則請設為「UNKNOWN_AUTHENTICATION_STATUS」。 |
| 剖析器邏輯 | extensions.auth.mechanism |
如果登入事件含有「Remote」或「USERNAME_PASSWORD」,請將這個欄位設為「REMOTE」;如果登入事件含有「MECHANISM_OTHER」,請將這個欄位設為「MECHANISM_OTHER」;如果登入事件含有「AUTHTYPE_UNSPECIFIED」,請將這個欄位設為「AUTHTYPE_UNSPECIFIED」。logintypelogin_url |
| 剖析器邏輯 | extensions.auth.type |
如果 LoginType 為「SAML Sfdc Initiated SSO」,請將 Login、Logout、LogoutEvent、LoginAs、IdentityProviderEventStore、LoginHistory、LoginAsEvent 設為「SSO」;如果 LoginType 為「Application」,請將 Login: Success、Logout、LoginAsEvent 設為「AUTHTYPE_UNSPECIFIED」。 |
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。