收集 Versa Networks 安全存取服務邊緣 (SASE) 記錄
本文說明如何使用 Bindplane 代理程式,將 Versa Networks Secure Access Service Edge (SASE) 記錄檔擷取至 Google Security Operations。
Versa Networks SASE 是整合式安全與網路平台,可為防火牆事件、威脅記錄、應用程式分類、網址篩選、IDS/IPS 偵測和警報事件產生系統記錄訊息。剖析器會從系統記錄訊息中擷取鍵/值組合,並對應至 Unified Data Model (UDM)。
事前準備
請確認您已完成下列事前準備事項:
- Google SecOps 執行個體
- Windows Server 2016 以上版本,或搭載
systemd的 Linux 主機 - Bindplane 代理程式和 Versa Analytics 節點之間的網路連線
- 如果透過 Proxy 執行,請確保防火牆通訊埠已根據 Bindplane 代理程式需求開啟
- Versa SASE 的特殊存取權
取得 Google SecOps 擷取驗證檔案
- 登入 Google SecOps 控制台。
- 依序前往「SIEM 設定」>「收集代理程式」。
下載擷取驗證檔案,並將檔案安全地儲存在要安裝 Bindplane 的系統中。
取得 Google SecOps 客戶 ID
- 登入 Google SecOps 控制台。
- 依序前往「SIEM 設定」>「設定檔」。
複製並儲存「機構詳細資料」部分中的客戶 ID。
安裝 Bindplane 代理程式
請按照下列操作說明,在 Windows 或 Linux 作業系統上安裝 Bindplane 代理程式。
Windows 安裝
- 以管理員身分開啟「命令提示字元」或「PowerShell」。
執行下列指令:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet等待安裝完成。
執行下列指令,確認安裝成功:
sc query observiq-otel-collector服務應顯示為「RUNNING」。
Linux 安裝
- 開啟具有根層級或 sudo 權限的終端機。
執行下列指令:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh等待安裝完成。
執行下列指令,確認安裝成功:
sudo systemctl status observiq-otel-collector服務應顯示為有效 (執行中)。
其他安裝資源
如需其他安裝選項和疑難排解資訊,請參閱 Bindplane 代理程式安裝指南。
設定 Bindplane 代理程式,擷取系統記錄檔並傳送至 Google SecOps
找出設定檔
Linux:
sudo nano /opt/observiq-otel-collector/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
編輯設定檔
將
config.yaml的所有內容替換為下列設定:receivers: tcplog: listen_address: "0.0.0.0:514" exporters: chronicle/versa_firewall: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: VERSA_FIREWALL raw_log_field: body service: pipelines: logs/versa_firewall_to_chronicle: receivers: - tcplog exporters: - chronicle/versa_firewall
設定參數
替換下列預留位置:
接收器設定:
listen_address:要接聽的 IP 位址和通訊埠:0.0.0.0,監聽所有介面 (建議)- 通訊埠
514是標準的系統記錄通訊埠 (在 Linux 上需要根層級權限;非根層級權限請使用1514) - Versa 使用 TCP 傳輸,因此需要
tcplog接收器
匯出工具設定:
creds_file_path:擷取驗證檔案的完整路徑:- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
customer_id:從 Google SecOps 控制台複製的客戶 IDendpoint:區域端點網址:- 美國:
malachiteingestion-pa.googleapis.com - 歐洲:
europe-malachiteingestion-pa.googleapis.com - 亞洲:
asia-southeast1-malachiteingestion-pa.googleapis.com - 如需完整清單,請參閱「區域端點」
- 美國:
儲存設定檔
- 編輯完成後,請儲存檔案:
- Linux:依序按下
Ctrl+O、Enter和Ctrl+X - Windows:依序點選「檔案」>「儲存」
- Linux:依序按下
重新啟動 Bindplane 代理程式,以套用變更
如要在 Linux 中重新啟動 Bindplane 代理程式,請執行下列指令:
sudo systemctl restart observiq-otel-collector確認服務正在執行:
sudo systemctl status observiq-otel-collector檢查記錄中是否有錯誤:
sudo journalctl -u observiq-otel-collector -f
如要在 Windows 中重新啟動 Bindplane 代理程式,請選擇下列其中一個選項:
以管理員身分開啟命令提示字元或 PowerShell:
net stop observiq-otel-collector && net start observiq-otel-collector服務控制台:
- 按下
Win+R,輸入services.msc,然後按下 Enter 鍵。 - 找出 observIQ OpenTelemetry Collector。
- 按一下滑鼠右鍵,然後選取「重新啟動」。
確認服務正在執行:
sc query observiq-otel-collector檢查記錄中是否有錯誤:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
- 按下
設定 Versa Networks SASE
管理員必須在每個 Versa Analytics 節點上設定遠端收集器,才能將記錄轉送至第三方系統。
啟用記錄轉送功能
- 登入 Versa Analytics 伺服器。
- 執行
cli指令,前往 CLI。 - 執行
configure指令,切換至「設定模式」,然後輸入load merge terminal。 複製並貼上下列指令,設定記錄轉送功能 (將
<collector_ip>和<collector_port>替換為系統記錄收集器的 IP 位址和通訊埠):set system analytics log-collector-exporter destination-address <collector_ip> set system analytics log-collector-exporter destination-port <collector_port> set system analytics log-collector-exporter transport tcp set system analytics log-collector-exporter log-types firewall-log set system analytics log-collector-exporter log-types threat-log commit儲存設定:
save
啟用工作階段 ID 記錄功能
如要記錄 IP 相關資訊,請啟用工作階段 ID 記錄功能:
- 登入 Versa Director。
- 切換至「導演檢視畫面」。
- 依序前往「Configuration」>「Devices」>「Tenant」>「Device」,存取「Appliance View」。
- 依序選取「Configuration」>「Others」>「System」>「Configuration」>「Configuration」。
- 在「參數」窗格中,按一下「編輯」。
- 在「編輯參數」視窗中,選取「LEF」。
- 在「Firewall」(防火牆) 專區中,選取「Include session ID logging」(包含工作階段 ID 記錄) 核取方塊。
按一下 [確定]。
UDM 對應表
| 記錄欄位 | UDM 對應 | 邏輯 |
|---|---|---|
accCkt |
additional.fields[].key: "accCkt"additional.fields[].value.string_value: accCkt |
直接從 accCkt 欄位取得的值。 |
accCktId |
additional.fields[].key: "accCktId"additional.fields[].value.string_value: accCktId |
直接從 accCktId 欄位取得的值。 |
accCktName |
additional.fields[].key: "accCktName"additional.fields[].value.string_value: accCktName |
直接從 accCktName 欄位取得的值。 |
accessType |
additional.fields[].key: "accessType"additional.fields[].value.string_value: accessType |
直接從 accessType 欄位取得的值。 |
action |
security_result.action:action |
如果 action、type、idpAction、avAction 或 urlAction 為「允許」,則為 ALLOW。如果 action、type、idpAction、avAction 或 urlAction 為「拒絕」、「捨棄」、「封鎖」或「拒絕」,則為 BLOCK。如果 idpAction 是其他值,則為 UNKNOWN_ACTION。 |
alarmCause |
security_result.detection_fields[].key: "alarmCause"security_result.detection_fields[].value: alarmCause |
直接從 alarmCause 欄位取得的值。 |
alarmClass |
security_result.detection_fields[].key: "alarmClass"security_result.detection_fields[].value: alarmClass |
直接從 alarmClass 欄位取得的值。 |
alarmClearable |
security_result.detection_fields[].key: "alarmClearable"security_result.detection_fields[].value: alarmClearable |
直接從 alarmClearable 欄位取得的值。 |
alarmEventType |
metadata.product_event_type:alarmEventType |
直接從 alarmEventType 欄位取得的值。 |
alarmKey |
security_result.detection_fields[].key: "alarmKey"security_result.detection_fields[].value: alarmKey |
直接從 alarmKey 欄位取得的值。 |
alarmKind |
security_result.detection_fields[].key: "alarmKind"security_result.detection_fields[].value: alarmKind |
直接從 alarmKind 欄位取得的值。 |
alarmOwner |
security_result.detection_fields[].key: "alarmOwner"security_result.detection_fields[].value: alarmOwner |
直接從 alarmOwner 欄位取得的值。 |
alarmSeqNo |
security_result.detection_fields[].key: "alarmSeqNo"security_result.detection_fields[].value: alarmSeqNo |
直接從 alarmSeqNo 欄位取得的值。 |
alarmSeverity |
security_result.severity_details:alarmSeverity |
直接從 alarmSeverity 欄位取得的值。 |
alarmText |
security_result.summary:alarmText |
直接從 alarmText 欄位取得值,並移除雙引號。 |
alarmType |
security_result.description:alarmType |
直接從 alarmType 欄位取得的值。 |
appFamily |
metadata.product_event_type:appFamilysecurity_result.detection_fields[].key:「appFamily」security_result.detection_fields[].value:appFamily |
直接從 appFamily 欄位取得的值。 |
appId |
security_result.detection_fields[].key: "Application ID"security_result.detection_fields[].value: appId |
直接從 appId 欄位取得的值。 |
appIdStr |
security_result.detection_fields[].key: "appIdStr"security_result.detection_fields[].value: appIdStr |
直接從 appIdStr 欄位取得的值。 |
applianceName |
principal.hostname:applianceName |
直接取自 applianceName、siteName 或 site 欄位的值。 |
appProductivity |
security_result.detection_fields[].key: "appProductivity"security_result.detection_fields[].value: appProductivity |
直接從 appProductivity 欄位取得的值。 |
appRisk |
security_result.severity_details:appRisk |
直接從 appRisk 欄位取得的值。 |
appSubFamily |
security_result.detection_fields[].key: "appSubFamily"security_result.detection_fields[].value: appSubFamily |
直接從 appSubFamily 欄位取得的值。 |
avAccuracy |
additional.fields[].key: "avAccuracy"additional.fields[].value.string_value: avAccuracy |
直接從 avAccuracy 欄位取得的值。 |
avAction |
security_result.action:avAction |
如需邏輯,請參閱 action。 |
avMalwareName |
security_result.threat_name:avMalwareName |
直接從 avMalwareName 欄位取得的值。 |
avMalwareType |
security_result.category_details:avMalwareType |
直接從 avMalwareType 欄位取得的值。 |
classMsg |
security_result.description:classMsg |
直接從 classMsg 欄位取得值,並移除雙引號。 |
clientIPv4Address |
target.ip:clientIPv4Address |
直接從 clientIPv4Address 欄位取得的值。 |
destIp |
target.ip:destIpdestinationIPv4Address:destIp |
直接從 destIp 欄位取得的值。 |
destinationIPv4Address |
target.ip:destinationIPv4Address |
直接從 destinationIPv4Address 取得的值,或從 networkPrefix 欄位衍生而來的值。 |
destinationIPv6Address |
target.ip:destinationIPv6Address |
直接從 destinationIPv6Address 欄位取得的值。 |
destinationPort |
target.port:destinationPort |
直接從 destinationPort 欄位取得值,並轉換為整數。 |
destinationTransportPort |
target.port:destinationTransportPort |
直接從 destinationTransportPort 欄位取得值,並轉換為整數。 |
deviceKey |
about.resource.attribute.labels[].key: "deviceKey"about.resource.attribute.labels[].value: deviceKey |
如果不是「Unknown」,則直接從 deviceKey 欄位取得值。 |
deviceName |
about.resource.attribute.labels[].key: "deviceName"about.resource.attribute.labels[].value: deviceName |
如果不是「Unknown」,則直接從 deviceName 欄位取得值。 |
duration |
network.session_duration.seconds:duration |
直接從 duration 欄位取得值,並轉換為整數。 |
egressInterfaceName |
additional.fields[].key: "egressInterfaceName"additional.fields[].value.string_value: egressInterfaceName |
直接從 egressInterfaceName 欄位取得的值。 |
event.type |
metadata.event_type:event.type |
如果同時存在 applianceName (或 sourceIPv4Address、user 或 sourceIPv6Address) 和 destinationIPv4Address (或 remoteSite、destinationIPv6Address、clientIPv4Address 或 hostname),則為 NETWORK_CONNECTION。否則為 STATUS_UPDATE。如果 applianceName 為空白,則為 GENERIC_EVENT。 |
eventType |
principal.resource.attribute.labels[].key: "eventType"principal.resource.attribute.labels[].value: eventType |
直接從 eventType 欄位取得的值。 |
family |
security_result.detection_fields[].key: "family"security_result.detection_fields[].value: family |
直接從 family 欄位取得的值。 |
fc |
security_result.detection_fields[].key: "ForwardingClass"security_result.detection_fields[].value: fc |
直接從 fc 欄位取得的值。 |
fileTransDir |
additional.fields[].key: "fileTransDir"additional.fields[].value.string_value: fileTransDir |
直接從 fileTransDir 欄位取得的值。 |
filename |
target.file.names:filename |
直接從 filename 欄位取得的值。 |
flowCookie |
metadata.collected_timestamp:flowCookie |
直接從 flowCookie 欄位取得值,並使用 UNIX 格式轉換為時間戳記。 |
flowId |
principal.resource.product_object_id:flowId |
直接從 flowId 欄位取得的值。 |
forwardForwardingClass |
security_result.detection_fields[].key: "forwardForwardingClass"security_result.detection_fields[].value: forwardForwardingClass |
直接從 forwardForwardingClass 欄位取得的值。 |
fromCountry |
principal.location.country_or_region:fromCountrytarget.location.country_or_region:fromCountry |
直接從 fromCountry 欄位取得的值。 |
fromUser |
principal.user.userid:fromUser |
如果 fromUser 欄位不為空白、不含「unknown」或「Unknown」,則值會直接取自該欄位。 |
fromZone |
additional.fields[].key:「fromZone」additional.fields[].value.string_value:fromZone |
直接從 fromZone 欄位取得的值。 |
generateTime |
metadata.collected_timestamp:generateTime |
直接從 generateTime 欄位取得值,並使用 UNIX 格式轉換為時間戳記。 |
hostname |
target.hostname:hostname |
直接從 hostname 欄位取得的值。 |
httpUrl |
target.url:httpUrl |
直接從 httpUrl 欄位取得的值。 |
icmpTypeIPv4 |
additional.fields[].key: "icmpTypeIPv4"additional.fields[].value.string_value: icmpTypeIPv4 |
直接從 icmpTypeIPv4 欄位取得的值。 |
idpAction |
security_result.action:idpAction |
如需邏輯,請參閱 action。 |
ingressInterfaceName |
additional.fields[].key: "ingressInterfaceName"additional.fields[].value.string_value: ingressInterfaceName |
直接從 ingressInterfaceName 欄位取得的值。 |
ipsApplication |
additional.fields[].key: "ipsApplication"additional.fields[].value.string_value: ipsApplication |
直接從 ipsApplication 欄位取得的值。 |
ipsDirection |
security_result.detection_fields[].key: "ipsDirection"security_result.detection_fields[].value: ipsDirection |
直接從 ipsDirection 欄位取得的值。 |
ipsProfile |
security_result.detection_fields[].key: "ipsProfile"security_result.detection_fields[].value: ipsProfile |
直接從 ipsProfile 欄位取得的值。 |
ipsProfileRule |
security_result.rule_name:ipsProfileRule |
直接從 ipsProfileRule 欄位取得的值。 |
ipsProtocol |
network.ip_protocol:ipsProtocol |
直接從 ipsProtocol 欄位取得的值。 |
log_type |
metadata.description:log_typemetadata.log_type:log_type |
直接從 log_type 欄位取得的值。 |
mstatsTimeBlock |
metadata.collected_timestamp:mstatsTimeBlock |
直接從 mstatsTimeBlock 欄位取得值,並使用 UNIX 格式轉換為時間戳記。 |
mstatsTotRecvdOctets |
network.received_bytes:mstatsTotRecvdOctets |
直接從 mstatsTotRecvdOctets 欄位取得的值,並轉換為無正負號整數。 |
mstatsTotSentOctets |
network.sent_bytes:mstatsTotSentOctets |
直接從 mstatsTotSentOctets 欄位取得的值,並轉換為無正負號整數。 |
mstatsTotSessCount |
additional.fields[].key: "mstatsTotSessCount"additional.fields[].value.string_value: mstatsTotSessCount |
直接從 mstatsTotSessCount 欄位取得的值。 |
mstatsTotSessDuration |
network.session_duration.seconds:mstatsTotSessDuration |
直接從 mstatsTotSessDuration 欄位取得值,並轉換為整數。 |
mstatsType |
security_result.category_details:mstatsType |
直接從 mstatsType 欄位取得的值。 |
networkPrefix |
target.ip:networkPrefixtarget.port:networkPrefix |
從 networkPrefix 欄位擷取的 IP 位址。從 networkPrefix 欄位擷取的連接埠,並轉換為整數。 |
protocolIdentifier |
network.ip_protocol:protocolIdentifier |
直接從 protocolIdentifier 欄位取得值,轉換為整數,並使用查閱功能對應至 IP 通訊協定名稱。 |
recvdOctets |
network.received_bytes:recvdOctets |
直接從 recvdOctets 欄位取得的值,並轉換為無正負號整數。 |
recvdPackets |
network.received_packets:recvdPackets |
直接從 recvdPackets 欄位取得值,並轉換為整數。 |
remoteSite |
target.hostname:remoteSite |
直接從 remoteSite 欄位取得的值。 |
reverseForwardingClass |
security_result.detection_fields[].key: "reverseForwardingClass"security_result.detection_fields[].value: reverseForwardingClass |
直接從 reverseForwardingClass 欄位取得的值。 |
risk |
security_result.risk_score:risk |
直接從 risk 欄位取得值,並轉換為浮點數。 |
rule |
security_result.rule_name:rule |
直接從 rule 欄位取得的值。 |
sentOctets |
network.sent_bytes:sentOctets |
直接從 sentOctets 欄位取得的值,並轉換為無正負號整數。 |
sentPackets |
network.sent_packets:sentPackets |
直接從 sentPackets 欄位取得值,並轉換為整數。 |
serialNum |
security_result.detection_fields[].key: "serialNum"security_result.detection_fields[].value: serialNum |
直接從 serialNum 欄位取得的值。 |
signatureId |
security_result.detection_fields[].key: "signatureID"security_result.detection_fields[].value: signatureId |
直接從 signatureId 欄位取得的值。 |
signatureMsg |
security_result.detection_fields[].key: "signatureMsg"security_result.detection_fields[].value: signatureMsg |
直接從 signatureMsg 欄位取得的值。 |
signaturePriority |
security_result.severity:signaturePriority |
如果 signaturePriority 為「low」(不區分大小寫),則為 LOW。如果 signaturePriority 為「medium」(不區分大小寫),則為 MEDIUM。如果 signaturePriority 為「high」(不區分大小寫),則為 HIGH。 |
site |
principal.hostname:siteapplianceName:site |
直接從 site 欄位取得的值。 |
siteId |
additional.fields[].key: "siteId"additional.fields[].value.string_value: siteId |
直接從 siteId 欄位取得的值。 |
siteName |
principal.hostname:siteNameapplianceName:siteName |
直接從 siteName 欄位取得的值。 |
sourceIPv4Address |
principal.ip:sourceIPv4Address |
直接從 sourceIPv4Address 欄位取得的值。 |
sourceIPv6Address |
principal.ip:sourceIPv6Address |
直接從 sourceIPv6Address 欄位取得的值。 |
sourcePort |
principal.port:sourcePort |
直接從 sourcePort 欄位取得值,並轉換為整數。 |
sourceTransportPort |
principal.port:sourceTransportPort |
直接從 sourceTransportPort 欄位取得值,並轉換為整數。 |
subFamily |
security_result.detection_fields[].key: "subFamily"security_result.detection_fields[].value: subFamily |
直接從 subFamily 欄位取得的值。 |
tcpConnAborted |
additional.fields[].key: "tcpConnAborted"additional.fields[].value.string_value: tcpConnAborted |
如果 tcpConnAborted 欄位不為空白或「0」,則直接從該欄位取得值。 |
tcpConnRefused |
additional.fields[].key: "tcpConnRefused"additional.fields[].value.string_value: tcpConnRefused |
如果 tcpConnRefused 欄位不為空白或「0」,則直接從該欄位取得值。 |
tcpPktsFwd |
network.sent_packets:tcpPktsFwd |
直接從 tcpPktsFwd 欄位取得值,並轉換為整數。 |
tcpPktsRev |
network.received_packets:tcpPktsRev |
直接從 tcpPktsRev 欄位取得值,並轉換為整數。 |
tcpReXmitFwd |
additional.fields[].key: "tcpReXmitFwd"additional.fields[].value.string_value: tcpReXmitFwd |
如果 tcpReXmitFwd 欄位不為空白或「0」,則直接從該欄位取得值。 |
tcpReXmitRev |
additional.fields[].key: "tcpReXmitRev"additional.fields[].value.string_value: tcpReXmitRev |
如果 tcpReXmitRev 欄位不為空白或「0」,則直接從該欄位取得值。 |
tcpSAA |
additional.fields[].key:"tcpSAA"additional.fields[].value.string_value:tcpSAA |
如果 tcpSAA 欄位不為空白或「0」,則直接從該欄位取得值。 |
tcpSSA |
additional.fields[].key: "tcpSSA"additional.fields[].value.string_value: tcpSSA |
如果 tcpSSA 欄位不為空白或「0」,則直接從該欄位取得值。 |
tcpSessCnt |
additional.fields[].key: "tcpSessCnt"additional.fields[].value.string_value: tcpSessCnt |
直接從 tcpSessCnt 欄位取得的值。 |
tcpSessDur |
network.session_duration.seconds:tcpSessDur |
直接從 tcpSessDur 欄位取得值,並轉換為整數。 |
tcpSynAckReXmit |
additional.fields[].key: "tcpSynAckReXmit"additional.fields[].value.string_value: tcpSynAckReXmit |
如果 tcpSynAckReXmit 欄位不為空白或「0」,則直接從該欄位取得值。 |
tcpSynReXmit |
additional.fields[].key: "tcpSynReXmit"additional.fields[].value.string_value: tcpSynReXmit |
如果 tcpSynReXmit 欄位不為空白或「0」,則直接從該欄位取得值。 |
tcpTWHS |
additional.fields[].key: "tcpTWHS"additional.fields[].value.string_value: tcpTWHS |
如果 tcpTWHS 欄位不為空白或「0」,則直接從該欄位取得值。 |
tenantId |
principal.resource.attribute.labels[].key: "tenantId"principal.resource.attribute.labels[].value: tenantId |
直接從 tenantId 欄位取得的值。 |
tenantName |
observer.hostname:tenantName |
直接從 tenantName 欄位取得的值。 |
threatType |
security_result.detection_fields[].key: "threatType"security_result.detection_fields[].value: threatType |
直接從 threatType 欄位取得的值。 |
toCountry |
target.location.country_or_region:toCountry |
直接從 toCountry 欄位取得的值。 |
toZone |
additional.fields[].key:「toZone」additional.fields[].value.string_value:toZone |
直接從 toZone 欄位取得的值。 |
traffType |
additional.fields[].key: "traffType"additional.fields[].value.string_value: traffType |
直接從 traffType 欄位取得的值。 |
ts |
metadata.event_timestamp:ts |
直接從 ts 欄位取得值,並轉換為時間戳記。 |
type |
security_result.action:type |
如需邏輯,請參閱 action。 |
urlAction |
security_result.action:urlAction |
如需邏輯,請參閱 action。 |
urlActionMessage |
security_result.summary:urlActionMessage |
直接從 urlActionMessage 欄位取得的值。 |
urlCategory |
principal.resource.attribute.labels[].key: "urlCategory"principal.resource.attribute.labels[].value: urlCategory |
直接從 urlCategory 欄位取得的值。 |
urlProfile |
additional.fields[].key: "urlProfile"additional.fields[].value.string_value: urlProfile |
直接從 urlProfile 欄位取得的值。 |
urlReputation |
security_result.severity_details:urlReputation |
直接從 urlReputation 欄位取得的值。 |
user |
principal.ip:user |
直接從 user 欄位取得的值。 |
vsnId |
principal.resource.attribute.labels[].key: "vsnId"principal.resource.attribute.labels[].value: vsnId |
直接從 vsnId 欄位取得的值。硬式編碼值。硬式編碼值。 |
變更記錄
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。