收集 Symantec VIP Authentication Hub 日志
本文档介绍了如何使用 Bindplane 代理将 Symantec VIP Authentication Hub 日志注入到 Google Security Operations。
Symantec VIP Authentication Hub 是一个基于云的身份和身份验证平台,可为身份验证事件、用户同步、API 访问、OAuth 流程和 LDAP 目录操作生成 syslog 消息。解析器会从 JSON 格式的日志中提取字段,并将其映射到统一数据模型 (UDM)。
准备工作
请确保满足以下前提条件:
- Google SecOps 实例
- Windows Server 2016 或更高版本,或者具有
systemd的 Linux 主机 - Bindplane 代理与 Symantec VIP 身份验证中心之间的网络连接
- 如果在代理后面运行,请确保按照 Bindplane 代理要求打开防火墙端口
- 对 Symantec VIP Gateway 网页界面的管理员权限
获取 Bindplane 代理的 Google SecOps 凭证
如需向 Google SecOps 验证 Bindplane 代理的身份,请选择以下方法之一:
- 新部署:使用 Chronicle API(选项 1)。
- 旧版部署:继续使用数据注入身份验证文件(方法 2),直到 Ingestion API 于 2027 年 7 月 20 日停用。
方法 1:为 Chronicle API 创建服务账号(推荐)
- 登录 Google Cloud 控制台,然后选择与您的 Google SecOps 实例关联的 Google Cloud 项目。
- 前往 IAM 和管理 > 服务账号。
- 点击创建服务账号。
- 提供以下配置详细信息:
- 服务账号名称:输入账号的名称(例如
bindplane-ingest)。 - 服务账号说明:输入说明(例如
Bindplane agent log ingestion)。
- 服务账号名称:输入账号的名称(例如
- 点击创建并继续。
- 在向此服务账号授予对项目的访问权限部分,点击选择角色,然后选择 Chronicle Editor。
- 点击继续,然后点击完成。
- 点击您创建的服务账号,然后前往密钥标签页。
- 依次点击添加密钥> 创建新密钥。
- 选择 JSON,然后点击创建。密钥文件会下载到您的计算机上。
- 将密钥文件另存为 Bindplane 收集器目录(Linux 上的
/opt/observiq-otel-collector/ingestion-auth.json或 Windows 上的C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json)中的ingestion-auth.json,或更新config.yaml中的creds_file_path以匹配您保存该文件的路径。 - 前往 IAM 和管理 > 设置,然后复制项目编号。您需要此信息才能配置导出器。
方法 2:下载数据注入身份验证文件(旧版)
- 登录 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该服务应显示为正在运行。
Linux 安装
- 打开具有 root 或 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该服务应显示为 active (running)。
其他安装资源
如需了解其他安装选项和问题排查,请参阅 Bindplane 代理安装指南。
配置 Bindplane 代理以注入 syslog 并将其发送到 Google SecOps
找到配置文件
Linux:
sudo nano /opt/observiq-otel-collector/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
修改配置文件
将
config.yaml的全部内容替换为以下配置:receivers: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/symantec_vip_authhub: protocol: https # Region of your instance, for example us, europe, asia-southeast1 location: <LOCATION> # Project number of the Google Cloud project linked to the instance project: '<PROJECT_NUMBER>' compression: gzip creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json' customer_id: '<customer_id>' endpoint: chronicle.googleapis.com log_type: SYMANTEC_VIP_AUTHHUB raw_log_field: body service: pipelines: logs/symantec_vip_authhub_to_chronicle: receivers: - udplog exporters: - chronicle/symantec_vip_authhub
配置参数
替换以下占位符:
接收器配置:
listen_address:要监听的 IP 地址和端口:0.0.0.0,以监听所有接口(推荐)- 端口
514是标准 syslog 端口(在 Linux 上需要 root 权限;对于非 root 用户,请使用1514)
导出器配置:
creds_file_path:服务账号 JSON 密钥文件的完整路径(选项 1):- Linux:
/opt/observiq-otel-collector/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
customer_id:从 Google SecOps 控制台复制的客户 IDlocation:将<LOCATION>替换为 Google SecOps 实例的区域(例如us、europe或asia-southeast1)。导出器会使用此值作为chronicle.googleapis.com的前缀。如需查看完整列表,请参阅区域级端点。project:将<PROJECT_NUMBER>替换为“IAM 和管理”>“设置”中的项目编号。endpoint:保持设置为chronicle.googleapis.com。
旧版提取 API 导出工具
如果您使用选项 2 中的数据注入身份验证文件,请将
exporters代码块替换为以下内容。将creds_file_path设置为提取身份验证文件的路径,如果您的实例位于美国境外,请将malachiteingestion-pa.googleapis.com替换为您的区域端点(例如europe-malachiteingestion-pa.googleapis.com)。exporters: chronicle/symantec_vip_authhub: compression: gzip creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: SYMANTEC_VIP_AUTHHUB raw_log_field: body
保存配置文件
- 修改后,保存文件:
- 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 收集器。
- 右键点击,然后选择重新启动。
验证服务是否正在运行:
sc query observiq-otel-collector检查日志中的错误:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
- 按
在 Symantec VIP Authentication Hub 中配置 syslog
- 登录 Symantec VIP Gateway 网页界面。
- 依次前往日志 > Syslog 配置。
- 如果这是您首次配置 Syslog,请在系统提示时选择是。如果已配置,请点击修改。
- 提供以下配置详细信息:
- Syslog 设施:选择 LOG_LOCAL0。
- Syslog 主机:输入 Bindplane 代理 IP 地址。
- Syslog 端口:输入 Bindplane 代理端口号(例如,UDP 为
514)。
- 点击保存。
- 依次前往身份提供方 > 自助服务门户配置。
- 修改以下配置详细信息:
- 日志记录级别:选择 Info。
- 启用 Syslog:选择是。
- 点击提交。
- 依次前往身份提供方 > VIP Manager 身份验证配置。
- 修改以下配置详细信息:
- 日志记录级别:选择 Info。
- 启用 Syslog:选择是。
- 点击提交。
- 依次前往 User Store(用户存储区)> LDAP Directory Synchronization(LDAP 目录同步)。
- 修改以下配置详细信息:
- 日志级别:选择信息。
- Enable Syslog(启用 Syslog):选择 Yes(是)。
- 点击提交。
UDM 映射表
| 日志字段 | UDM 映射 | 逻辑 |
|---|---|---|
/auth/v1/authenticate |
security_result.detection_fields[].value |
该值取自原始日志中的 /auth/v1/authenticate 字段,并分配给键为 api 的 security_result.detection_fields 对象。 |
__isAuditIdLcmIdStore |
additional.fields[].value.string_value |
该值取自原始日志中的 __isAuditIdLcmIdStore 字段,并分配给键为 __isAuditIdLcmIdStore 的 additional.fields 对象。 |
accessTokenScopes |
security_result.detection_fields[].value |
该值取自原始日志中的 accessTokenScopes 字段,并分配给键为 accessTokenScopes 的 security_result.detection_fields 对象。 |
accessTokenTid |
security_result.detection_fields[].value |
该值取自原始日志中的 accessTokenTid 字段,并分配给键为 accessTokenTid 的 security_result.detection_fields 对象。 |
api |
security_result.detection_fields[].value |
该值取自原始日志中的 api 字段,并分配给键为 api 的 security_result.detection_fields 对象。 |
appId |
additional.fields[].value.string_value |
该值取自原始日志中的 appId 字段,并分配给键为 appId 的 additional.fields 对象。 |
appName |
principal.application |
该值取自原始日志中的 appName 字段。 |
azpName |
additional.fields[].value.string_value |
该值取自原始日志中的 azpName 字段,并分配给键为 azpName 的 additional.fields 对象。 |
bytes_sent |
network.sent_bytes |
该值取自原始日志中的 bytes_sent 字段。 |
client |
principal.asset.ip,principal.ip |
系统会使用 grok 模式从原始日志的 client 字段中提取 IP 地址,并将其添加到 principal.ip 和 principal.asset.ip 字段中。 |
clientId |
additional.fields[].value.string_value,principal.user.userid |
该值取自原始日志中的 clientId 字段,并分配给键为 clientId 的 additional.fields 对象。如果 clientId 字段不为空,则该字段也会用于填充 principal.user.userid 字段。 |
clientIp |
principal.asset.ip,principal.ip |
该值取自原始日志中的 clientIp 字段,并添加到 principal.ip 和 principal.asset.ip 字段中。 |
clientTid |
additional.fields[].value.string_value |
该值取自原始日志中的 clientTid 字段,并分配给键为 clientTid 的 additional.fields 对象。 |
clientTxnId |
additional.fields[].value.string_value |
该值取自原始日志中的 clientTxnId 字段,并分配给键为 clientTxnId 的 additional.fields 对象。 |
contentType |
additional.fields[].value.string_value |
该值取自原始日志中的 contentType 字段,并分配给键为 contentType 的 additional.fields 对象。 |
countryISO |
principal.location.country_or_region |
该值取自原始日志中的 countryISO 字段。 |
eventId |
metadata.product_event_type |
该值取自原始日志中的 eventId 字段。 |
flowStateId |
additional.fields[].value.string_value |
该值取自原始日志中的 flowStateId 字段,并分配给键为 flowStateId 的 additional.fields 对象。 |
geo.city_name |
principal.location.city |
该值取自原始日志中的 geo.city_name 字段。 |
geo.country_name |
principal.location.country_or_region |
该值取自原始日志中的 geo.country_name 字段。 |
geo.location.lat |
principal.location.region_coordinates.latitude |
该值取自原始日志中的 geo.location.lat 字段,转换为浮点数,并重命名为 principal.location.region_coordinates.latitude。 |
geo.location.lon |
principal.location.region_coordinates.longitude |
该值取自原始日志中的 geo.location.lon 字段,转换为浮点数,并重命名为 principal.location.region_coordinates.longitude。 |
guid |
metadata.product_log_id |
该值取自原始日志中的 guid 字段。 |
host |
principal.asset.hostname,principal.hostname |
该值取自原始日志中的 host 字段,去掉了所有引号,并添加到 principal.hostname 和 principal.asset.hostname 字段中。 |
httpMethod |
network.http.method |
该值取自原始日志中的 httpMethod 字段。 |
httpReferrer |
network.http.referral_url |
该值取自原始日志中的 httpReferrer 字段。 |
identitySourceId |
additional.fields[].value.string_value |
该值取自原始日志中的 identitySourceId 字段,并分配给键为 identitySourceId 的 additional.fields 对象。 |
internal-user-sync-ext-resourceGuid |
target.user.userid |
该值取自原始日志中的 internal-user-sync-ext-resourceGuid 字段。 |
internal-user-sync-ext-resourceName |
target.user.email_addresses |
该值取自原始日志中的 internal-user-sync-ext-resourceName 字段,并添加到 target.user.email_addresses 字段。 |
issuerUrl |
target.url |
该值取自原始日志中的 issuerUrl 字段。 |
kubernetes.annotations.cni.projectcalico.org_containerID |
target.resource.product_object_id |
该值取自原始日志中的 kubernetes.annotations.cni.projectcalico.org_containerID 字段。 |
kubernetes.annotations.cni.projectcalico.org_podIP |
target.resource.attribute.labels[].value |
该值取自原始日志中的 kubernetes.annotations.cni.projectcalico.org_podIP 字段,并分配给键为 podIP 的 target.resource.attribute.labels 对象。 |
kubernetes.annotations.cni.projectcalico.org_podIPs |
target.resource.attribute.labels[].value |
该值取自原始日志中的 kubernetes.annotations.cni.projectcalico.org_podIPs 字段,并分配给键为 podIPs 的 target.resource.attribute.labels 对象。 |
kubernetes.container_hash |
target.resource.attribute.labels[].value |
该值取自原始日志中的 kubernetes.container_hash 字段,并分配给键为 container_hash 的 target.resource.attribute.labels 对象。 |
kubernetes.container_image |
target.resource.attribute.labels[].value |
该值取自原始日志中的 kubernetes.container_image 字段,并分配给键为 container_image 的 target.resource.attribute.labels 对象。 |
kubernetes.container_name |
target.resource.attribute.labels[].value |
该值取自原始日志中的 kubernetes.container_name 字段,并分配给键为 container_name 的 target.resource.attribute.labels 对象。 |
kubernetes.docker_id |
target.resource.attribute.labels[].value |
该值取自原始日志中的 kubernetes.docker_id 字段,并分配给键为 docker_id 的 target.resource.attribute.labels 对象。 |
kubernetes.host |
principal.asset.hostname,principal.hostname |
该值取自原始日志中的 kubernetes.host 字段,并添加到 principal.hostname 和 principal.asset.hostname 字段。 |
kubernetes.labels.app |
此字段未映射到 UDM 中的 IDM 对象。 | |
kubernetes.labels.app.kubernetes.io/component |
target.resource.attribute.labels[].value |
该值取自原始日志中的 kubernetes.labels.app.kubernetes.io/component 字段,并分配给键为 io_component 的 target.resource.attribute.labels 对象。 |
kubernetes.labels.app.kubernetes.io/instance |
target.resource.attribute.labels[].value |
该值取自原始日志中的 kubernetes.labels.app.kubernetes.io/instance 字段,并分配给键为 io_instance 的 target.resource.attribute.labels 对象。 |
kubernetes.labels.app.kubernetes.io/managed-by |
target.resource.attribute.labels[].value |
该值取自原始日志中的 kubernetes.labels.app.kubernetes.io/managed-by 字段,并分配给键为 io_managed-by 的 target.resource.attribute.labels 对象。 |
kubernetes.labels.app.kubernetes.io/name |
target.resource.attribute.labels[].value |
该值取自原始日志中的 kubernetes.labels.app.kubernetes.io/name 字段,并分配给键为 io_name 的 target.resource.attribute.labels 对象。 |
kubernetes.labels.app.kubernetes.io/part-of |
target.resource.attribute.labels[].value |
该值取自原始日志中的 kubernetes.labels.app.kubernetes.io/part-of 字段,并分配给键为 io_part-of 的 target.resource.attribute.labels 对象。 |
kubernetes.labels.app.kubernetes.io/version |
target.resource.attribute.labels[].value |
该值取自原始日志中的 kubernetes.labels.app.kubernetes.io/version 字段,并分配给键为 io_version 的 target.resource.attribute.labels 对象。 |
kubernetes.labels.helm.sh/chart |
target.resource.attribute.labels[].value |
该值取自原始日志中的 kubernetes.labels.helm.sh/chart 字段,并分配给键为 helm_sh_chart 的 target.resource.attribute.labels 对象。 |
kubernetes.labels.helmChartName |
target.resource.attribute.labels[].value |
该值取自原始日志中的 kubernetes.labels.helmChartName 字段,并分配给键为 helmChartName 的 target.resource.attribute.labels 对象。 |
kubernetes.labels.imageTag |
target.resource.attribute.labels[].value |
该值取自原始日志中的 kubernetes.labels.imageTag 字段,并分配给键为 imageTag 的 target.resource.attribute.labels 对象。 |
kubernetes.labels.pod-template-hash |
target.resource.attribute.labels[].value |
该值取自原始日志中的 kubernetes.labels.pod-template-hash 字段,并分配给键为 pod-template-hash 的 target.resource.attribute.labels 对象。 |
kubernetes.namespace_name |
target.resource.attribute.labels[].value |
该值取自原始日志中的 kubernetes.namespace_name 字段,并分配给键为 namespace_name 的 target.resource.attribute.labels 对象。 |
kubernetes.pod_id |
target.resource.attribute.labels[].value |
该值取自原始日志中的 kubernetes.pod_id 字段,并分配给键为 pod_id 的 target.resource.attribute.labels 对象。 |
kubernetes.pod_name |
target.resource.attribute.labels[].value |
该值取自原始日志中的 kubernetes.pod_name 字段,并分配给键为 pod_name 的 target.resource.attribute.labels 对象。 |
level |
security_result.severity |
如果原始日志中的 level 字段与 notice 或 info(不区分大小写)匹配,则 security_result.severity 字段设置为 INFORMATIONAL。 |
log |
security_result.description、level、kv_data |
level 和 kv_data 字段是使用 grok 模式从原始日志中的 log 字段提取的。security_result.description 字段会填充整个 log 字段。 |
logtag |
additional.fields[].value.string_value |
该值取自原始日志中的 logtag 字段,并分配给键为 logtag 的 additional.fields 对象。 |
method |
network.http.method |
该值取自原始日志中的 method 字段。 |
msg |
metadata.event_type,security_result.description |
该值取自原始日志中的 msg 字段,用于填充 security_result.description 字段。metadata.event_type 字段根据 msg 字段的内容确定:* 如果 msg 包含 Internal user created or updated,则为 USER_CREATION。* 如果 msg 包含 Authorization Initiated Succesfully、Authentication Initiated Successfully 或 Authentication Successful,则为 USER_LOGIN。* 如果 msg 包含 Token Generated 或 token verified,则为 USER_RESOURCE_ACCESS。* 如果 has_principal 和 has_target 均为 true,则为 NETWORK_CONNECTION。* 如果 has_principal 为 true,则为 STATUS_UPDATE。* 否则为 GENERIC_EVENT。 |
path |
principal.file.full_path |
该值取自原始日志中的 path 字段。 |
principalId |
additional.fields[].value.string_value,principal.user.userid |
该值取自原始日志中的 principalId 字段,并分配给键为 principalId 的 additional.fields 对象。如果 principalId 字段不为 clientId 且不为空,则还会用于填充 principal.user.userid 字段。 |
principalType |
additional.fields[].value.string_value |
该值取自原始日志中的 principalType 字段,并分配给键为 principalType 的 additional.fields 对象。 |
protocol |
network.application_protocol |
如果原始日志中的 protocol 字段与 HTTP(不区分大小写)匹配,则 network.application_protocol 字段设置为 HTTP。 |
referrer |
network.http.referral_url |
该值取自原始日志中的 referrer 字段,去除了所有引号,并分配给 network.http.referral_url 字段。 |
relVersion |
metadata.product_version |
该值取自原始日志中的 relVersion 字段。 |
remoteAddr |
additional.fields[].value.string_value |
该值取自原始日志中的 remoteAddr 字段,并分配给键为 remoteAddr 的 additional.fields 对象。 |
requestId |
additional.fields[].value.string_value |
该值取自原始日志中的 requestId 字段,并分配给键为 requestId 的 additional.fields 对象。 |
requestTime |
additional.fields[].value.string_value |
该值取自原始日志中的 requestTime 字段,并分配给键为 requestTime 的 additional.fields 对象。 |
responseCode |
network.http.response_code |
使用 grok 模式从原始日志的 responseCode 字段中提取数值,将其转换为整数,然后分配给 network.http.response_code 字段。 |
request |
method、path、protocol |
method、path 和 protocol 字段是在去除所有引号后,使用 grok 模式从原始日志中的 request 字段提取的。 |
server |
target.asset.hostname,target.hostname |
该值取自原始日志中的 server 字段,并添加到 target.hostname 和 target.asset.hostname 字段。 |
service |
additional.fields[].value.string_value |
该值取自原始日志中的 service 字段,并分配给键为 service 的 additional.fields 对象。 |
status |
network.http.response_code |
该值取自原始日志中的 status 字段,转换为整数,并分配给 network.http.response_code 字段。 |
stream |
additional.fields[].value.string_value |
该值取自原始日志中的 stream 字段,并分配给键为 stream 的 additional.fields 对象。 |
sub |
additional.fields[].value.string_value |
该值取自原始日志中的 sub 字段,并分配给键为 sub 的 additional.fields 对象。 |
subType |
additional.fields[].value.string_value |
该值取自原始日志中的 subType 字段,并分配给键为 subType 的 additional.fields 对象。 |
tid |
additional.fields[].value.string_value |
该值取自原始日志中的 tid 字段,并分配给键为 tid 的 additional.fields 对象。 |
timestamp |
metadata.event_timestamp |
该值取自原始日志中的 timestamp 字段,并解析为 ISO8601 时间戳。 |
tname |
additional.fields[].value.string_value |
该值取自原始日志中的 tname 字段,并分配给键为 tname 的 additional.fields 对象。 |
txnId |
additional.fields[].value.string_value |
该值取自原始日志中的 txnId 字段,并分配给键为 txnId 的 additional.fields 对象。 |
type |
additional.fields[].value.string_value |
该值取自原始日志中的 type 字段,并分配给键为 type 的 additional.fields 对象。 |
userAgent |
network.http.parsed_user_agent,network.http.user_agent |
该值取自原始日志中的 userAgent 字段,并分配给 network.http.user_agent 和 network.http.parsed_user_agent 字段。然后,系统会将 network.http.parsed_user_agent 字段转换为已解析的用户代理对象。 |
userDN |
additional.fields[].value.string_value |
该值取自原始日志中的 userDN 字段,并分配给键为 userDN 的 additional.fields 对象。 |
userGuid |
additional.fields[].value.string_value |
该值取自原始日志中的 userGuid 字段,并分配给键为 userGuid 的 additional.fields 对象。 |
userIdpGuid |
additional.fields[].value.string_value |
该值取自原始日志中的 userIdpGuid 字段,并分配给键为 userIdpGuid 的 additional.fields 对象。 |
userIP |
principal.asset.ip、principal.ip、target.asset.ip、target.ip、intermediary.ip |
IP 地址使用 grok 模式从原始日志的 userIP 字段中提取。第一个 IP 地址会添加到 principal.ip 和 principal.asset.ip 字段中。第二个 IP 地址会添加到 target.ip 和 target.asset.ip 字段中。第三个 IP 地址会添加到 intermediary.ip 字段中。 |
userLoginId |
target.user.email_addresses |
如果原始日志中的 userLoginId 字段不为空且与电子邮件地址模式匹配,则会添加到 target.user.email_addresses 字段。 |
userLoginIdAttributeMappingName |
target.user.user_display_name |
该值取自原始日志中的 userLoginIdAttributeMappingName 字段。 |
userRiskLevel |
additional.fields[].value.string_value |
该值取自原始日志中的 userRiskLevel 字段,并分配给键为 userRiskLevel 的 additional.fields 对象。 |
userRiskScore |
additional.fields[].value.string_value |
该值取自原始日志中的 userRiskScore 字段,并分配给键为 userRiskScore 的 additional.fields 对象。 |
userIp |
principal.asset.ip,principal.ip |
该值取自原始日志中的 userIp 字段,并添加到 principal.ip 和 principal.asset.ip 字段中。 |
userUniversalId |
additional.fields[].value.string_value |
该值取自原始日志中的 userUniversalId 字段,并分配给键为 userUniversalId 的 additional.fields 对象。 |
vhost |
additional.fields[].value.string_value |
该值取自原始日志中的 vhost 字段,并分配给键为 vhost 的 additional.fields 对象。 |
| 不适用 | extensions.auth.type |
如果 metadata.event_type 字段为 USER_LOGIN,则该值设置为 SSO。 |
| 不适用 | metadata.log_type |
该值设置为 SYMANTEC_VIP_AUTHHUB。 |
azserver-idp-response-verify-cert-ext-idpId", "__THIS_RESOURCE_ID" and "admin-identityprovider-create-ext-resourceGuid |
principal.user.attribute.cloud.project.id |
从更新日志映射 |
thread |
additional.fields |
从更新日志映射 |
remoteUser |
additional.fields |
从更新日志映射 |
kubernetes.labels.app.kubernetes.io_component |
target.resource.attribute.labels |
从更新日志映射 |
kubernetes.labels.app.kubernetes.io_instance |
target.resource.attribute.labels |
从更新日志映射 |
kubernetes.labels.app.kubernetes.io_name |
target.resource.attribute.labels |
从更新日志映射 |
kubernetes.labels.app.kubernetes.io_managed-by |
target.resource.attribute.labels |
从更新日志映射 |
kubernetes.labels.app.kubernetes.io_part-of |
target.resource.attribute.labels |
从更新日志映射 |
kubernetes.labels.app.kubernetes.io_version |
target.resource.attribute.labels |
从更新日志映射 |
kubernetes.labels.helm.sh_chart |
target.resource.attribute.labels |
从更新日志映射 |
reqLength |
additional.fields |
从更新日志映射 |
更新日志
需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。