收集 Microsoft Azure 资源日志

支持的平台:

本文档介绍了如何使用 Microsoft Azure Blob Storage V2 设置 Google Security Operations Feed 来收集 Microsoft Azure 资源日志。

Azure 资源日志可提供对 Azure 资源中执行的操作的深入了解。这些日志会捕获有关资源操作、状态和性能指标的详细信息。内容因资源类型而异,包括身份验证事件、配置更改、访问尝试和运营指标等数据。

准备工作

确保您满足以下前提条件:

  • Google SecOps 实例
  • Microsoft Azure 门户的特权访问权限,包括:

    • 创建存储账号
    • 为 Azure 资源配置诊断设置
    • 管理访问密钥

配置 Azure 存储账号

创建存储账号

  1. Azure 门户中,搜索存储账号
  2. 点击 + 创建
  3. 提供以下配置详细信息:

    设置
    订阅 选择您的 Azure 订阅
    资源组 选择现有组或创建新组
    存储账号名称 输入唯一名称(例如 azureresourcelogs
    区域 选择区域(例如 East US
    性能 标准(推荐)
    冗余 GRS(地理位置冗余存储)或 LRS(本地冗余存储)
  4. 点击检查 + 创建

  5. 查看账号概览,然后点击创建

  6. 等待部署完成。

获取存储账号凭据

  1. 前往您刚刚创建的存储账号
  2. 在左侧导航栏中,选择安全性 + 网络下的访问密钥
  3. 点击显示密钥
  4. 复制并保存以下内容以供日后使用:

    • 存储账号名称azureresourcelogs
    • 密钥 1密钥 2:共享访问密钥(采用 base-64 编码的 512 位随机字符串)

获取 Blob 服务端点

  1. 在同一存储账号中,从左侧导航栏中选择端点
  2. 复制并保存 Blob 服务端点网址。
    • 示例:https://azureresourcelogs.blob.core.windows.net/

配置 Azure 资源诊断设置

默认情况下,系统不会收集 Azure 资源日志。您必须为每个 Azure 资源创建诊断设置,以便将日志路由到存储账号。

  1. Azure 门户中,导航到要监控的 Azure 资源。
  2. 在左侧导航栏中,选择监控下的诊断设置
  3. 点击 + 添加诊断设置
  4. 提供以下配置详细信息:
    • 诊断设置名称:输入一个描述性名称(例如 export-to-secops)。
    • 日志部分,选择要收集的日志类别。可用类别因资源类型而异。常见类别包括:
      • 管理(适用于活动日志)
      • 安全性(针对活动日志)
      • AuditEvent(适用于 Key Vault)
      • ApplicationGatewayAccessLog(适用于 Application Gateway)
      • ApplicationGatewayFirewallLog(适用于 Application Gateway)
      • NetworkSecurityGroupEvent(适用于网络安全组)
    • 指标部分(可选)中,选择 AllMetrics 以将平台指标发送到存储账号。
    • 目标详细信息部分中,选中归档到存储账号复选框。
    • 订阅:选择包含您的存储空间的订阅。
    • 存储账号:选择您创建的存储账号(例如 azureresourcelogs)。
  5. 点击保存

配置完成后,日志会自动导出到存储账号中的容器。Azure 会使用 insights-logs-<log-category-name> 的命名模式创建容器。例如:

  • Key Vault 审核日志:insights-logs-auditevent
  • Application Gateway 访问日志:insights-logs-applicationgatewayaccesslog
  • Application Gateway 防火墙日志:insights-logs-applicationgatewayfirewalllog
  • 网络安全组事件:insights-logs-networksecuritygroupevent

在 Google SecOps 中配置 Feed 以注入 Azure 资源日志

  1. 依次前往 SIEM 设置 > Feed
  2. 点击添加新 Feed
  3. 在下一页上,点击配置单个 Feed
  4. Feed 名称字段中,输入 Feed 的名称(例如 Azure Resource Logs - Key Vault)。
  5. 选择 Microsoft Azure Blob Storage V2 作为来源类型
  6. 选择 Microsoft Azure 资源作为日志类型
  7. 点击下一步
  8. 为以下输入参数指定值:

    • Azure URI:输入包含容器路径的 Blob 服务端点网址:

      https://azureresourcelogs.blob.core.windows.net/insights-logs-auditevent/
      
    • 替换以下内容:

      • azureresourcelogs:您的 Azure 存储账号名称。
      • insights-logs-auditevent:存储日志的 Blob 容器名称(因资源类型和日志类别而异)。

    • 来源删除选项:根据您的偏好选择删除选项:

      • 永不:转移后永不删除任何文件。
      • 删除已转移的文件:在成功转移后删除文件。
      • 删除已转移的文件和空目录:成功转移后删除文件和空目录。

    • 文件存在时间上限:包含在过去指定天数内修改的文件。默认值为 180 天。

    • 共享密钥:输入您在第 3 步中从存储账号捕获的共享密钥值(访问密钥)。

    • 资产命名空间资产命名空间

    • 提取标签:要应用于相应 Feed 中事件的标签。

  9. 点击下一步

  10. 最终确定界面中查看新的 Feed 配置,然后点击提交

配置 Azure 存储防火墙(如果已启用)

如果您的 Azure 存储账号使用防火墙,则必须添加 Google SecOps IP 范围。

  1. Azure 门户中,前往您的存储账号(例如 azureresourcelogs)。
  2. 安全性 + 网络下,选择网络
  3. 防火墙和虚拟网络下,选择从所选虚拟网络和 IP 地址启用
  4. 防火墙部分的地址范围下,点击 + 添加 IP 范围
  5. 以 CIDR 表示法添加每个 Google SecOps IP 范围。

  6. 点击保存

支持的 Microsoft Azure 活动日志示例

  • 标准 Azure Active Directory

    {
      "time": "2023-11-23T11:27:52.4984929Z",
      "resourceId": "/tenants/00000000-0000-0000-0000-000000000000/providers/Microsoft.aadiam",
      "operationName": "Sign-in activity",
      "operationVersion": "1.0",
      "category": "NonInteractiveUserSignInLogs",
      "tenantId": "00000000-0000-0000-0000-000000000000",
      "resultType": "0",
      "resultSignature": "None",
      "durationMs": 0,
      "callerIpAddress": "0.0.0.0",
      "correlationId": "00000000-0000-0000-0000-000000000000",
      "identity": "Masked User",
      "Level": 4,
      "location": "OM",
      "properties": {
        "id": "00000000-0000-0000-0000-000000000000",
        "createdDateTime": "2023-11-23T11:26:02.4737491+00:00",
        "userDisplayName": "Masked User",
        "userPrincipalName": "user@example.com",
        "userId": "00000000-0000-0000-0000-000000000000",
        "appId": "00000000-0000-0000-0000-000000000000",
        "appDisplayName": "QuestProd",
        "ipAddress": "0.0.0.0",
        "status": {
          "errorCode": 0
        },
        "clientAppUsed": "Browser",
        "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36",
        "deviceDetail": {
          "deviceId": "00000000-0000-0000-0000-000000000000",
          "displayName": "MASKED-DEVICE",
          "operatingSystem": "Windows10",
          "browser": "Chrome 119.0.0",
          "isManaged": true,
          "trustType": "Hybrid Azure AD joined"
        },
        "location": {
          "city": "Masked City",
          "state": "Masked State",
          "countryOrRegion": "OM",
          "geoCoordinates": {
            "latitude": 0.0,
            "longitude": 0.0
          }
        },
        "correlationId": "00000000-0000-0000-0000-000000000000",
        "conditionalAccessStatus": "success"
      }
    }
    
  • 包含嵌入式 JSON 的 Azure 诊断

    {
      "operationName": "Microsoft.ContainerService/managedClusters/diagnosticLogs/Read",
      "category": "kube-audit-admin",
      "ccpNamespace": "62608a387c46f70001a06545",
      "resourceId": "/SUBSCRIPTIONS/00000000-0000-0000-0000-000000000000/RESOURCEGROUPS/MASKED-RG/PROVIDERS/MICROSOFT.CONTAINERSERVICE/MANAGEDCLUSTERS/MASKED-CLUSTER",
      "properties": {
        "log": {
          "kind": "Event",
          "apiVersion": "audit.k8s.io/v1",
          "level": "Metadata",
          "auditID": "00000000-0000-0000-0000-000000000000",
          "stage": "ResponseComplete",
          "requestURI": "/api/v1/namespaces/external-secrets/configmaps/external-secrets-controller",
          "verb": "update",
          "user": {
            "username": "system:serviceaccount:external-secrets:external-secrets",
            "uid": "00000000-0000-0000-0000-000000000000",
            "groups": [
              "system:serviceaccounts",
              "system:serviceaccounts:external-secrets",
              "system:authenticated"
            ],
            "extra": {
              "authentication.kubernetes.io/pod-name": [
                "external-secrets-56f8d94c7b-mp66g"
              ],
              "authentication.kubernetes.io/pod-uid": [
                "00000000-0000-0000-0000-000000000000"
              ]
            }
          },
          "sourceIPs": [
            "0.0.0.0"
          ],
          "userAgent": "external-secrets/v0.0.0 (linux/amd64) kubernetes/$Format/leader-election",
          "objectRef": {
            "resource": "configmaps",
            "namespace": "external-secrets",
            "name": "external-secrets-controller",
            "uid": "00000000-0000-0000-0000-000000000000",
            "apiVersion": "v1",
            "resourceVersion": "11942456"
          },
          "responseStatus": {
            "metadata": {},
            "code": 200
          },
          "requestReceivedTimestamp": "2022-05-20T11:31:45.398328Z",
          "stageTimestamp": "2022-05-20T11:31:45.449142Z",
          "annotations": {
            "authorization.k8s.io/decision": "allow",
            "authorization.k8s.io/reason": "RBAC: allowed by RoleBinding \"external-secrets-leaderelection/external-secrets\" of Role \"external-secrets-leaderelection\" to ServiceAccount \"external-secrets/external-secrets\""
          }
        },
        "stream": "stdout",
        "pod": "kube-apiserver-776c8d479f-xgsg4"
      },
      "time": "2022-05-20T11:31:45.0000000Z",
      "Cloud": "AzureCloud",
      "Environment": "prod",
      "UnderlayClass": "hcp-underlay",
      "UnderlayName": "hcp-underlay-southcentralus-cx-75"
    }
    
  • 第三方封装容器

    {
      "_time": 1722359281.368,
      "_raw": {
        "time": "2024-07-30T17:08:01.3688943Z",
        "resourceId": "/SUBSCRIPTIONS/00000000-0000-0000-0000-000000000000/RESOURCEGROUPS/MASKED-RG/PROVIDERS/"
          + "MICROSOFT.DOCUMENTDB/DATABASEACCOUNTS/MASKED-COSMOS-DB",
        "category": "DataPlaneRequests",
        "operationName": "Create",
        "properties": {
          "activityId": "8e78e651-e6da-4f09-b8bf-c5d605ae8161",
          "requestResourceType": "Document",
          "requestResourceId": "/dbs/cdb-main01-prod/colls/Notifications/docs",
          "collectionRid": "",
          "databaseRid": "",
          "statusCode": "200",
          "duration": "0.583700",
          "userAgent": "cosmos-netstandard-sdk/3.9.1|3.9.0|01|X86|Microsoft Windows 10.0.20348|"
            + ".NET Core 3.1.32|",
          "clientIpAddress": "0.0.0.0",
          "requestCharge": "0.000000",
          "requestLength": "803",
          "responseLength": "1163",
          "resourceTokenPermissionId": "",
          "resourceTokenPermissionMode": "",
          "resourceTokenUserRid": "",
          "region": "East US",
          "partitionId": "",
          "aadAppliedRoleAssignmentId": "",
          "aadPrincipalId": "",
          "authTokenType": "PrimaryMasterKey",
          "keyType": "PrimaryMasterKey",
          "connectionMode": "Gateway",
          "subscriptionId": "00000000-0000-0000-0000-000000000000",
          "databaseName": "cdb-main01-prod",
          "collectionName": "Notifications"
        }
      },
      "cribl_pipe": [
        "pfe_azure_resource_logs_pre_unroll",
        "passthru"
      ]
    }
    
  • Azure Firewall

    {
      "category": "AzureFirewallNetworkRule",
      "time": "2023-10-01T12:00:00.000Z",
      "resourceId": "/SUBSCRIPTIONS/00000000-0000-0000-0000-000000000000/RESOURCEGROUPS/MASKED-RG/PROVIDERS/"
          + "MICROSOFT.NETWORK/AZUREFIREWALLS/MASKED-FW",
      "operationName": "AzureFirewallNetworkRuleLog",
      "properties": {
        "msg": "TCP request from 0.0.0.0:12345 to 0.0.0.0:443. Action: Deny. "
          + "Rule Collection: Block-Internet. Rule: Block-All",
        "Action": "Deny",
        "Protocol": "TCP",
        "SourceIp": "0.0.0.0",
        "SourcePort": "12345",
        "DestinationIp": "0.0.0.0",
        "DestinationPort": "443",
        "Policy": "Block-Internet"
      }
    }
    

UDM 映射表

日志字段 UDM 映射 逻辑
各种额外的字段*_label 字段 additional.fields 从各种额外的字段*_label 字段合并
authenticationMethod extensions.auth.mechanism 如果 authenticationMethod 为 Password,则设置为 USERNAME_PASSWORD
category、event_type extensions.auth.type 对于 SQLSecurityAuditEvents,设置为 MACHINE;对于特定类别,设置为 SSO;对于其他类别,设置为 AUTHTYPE_UNSPECIFIED
properties.partialipaddress intermediary.ip 如果 properties.partialipaddress 不为空,则使用该值
properties.event_time、stage_time、risk_time、last_update_time、time metadata.collected_timestamp 使用 ISO8601 从 properties.event_time、stage_time、risk_time、last_update_time 或 time(使用后备 grok)转换而来
properties.message、properties.activity、properties.log.stage metadata.description 如果 properties.message 不为空,则取其值;否则取 properties.activity 的值;否则取 properties.log.stage 的值
event_type metadata.event_type 如果 event_type 不为空,则为 event_type 中的值;否则为 GENERIC_EVENT
category, record.category metadata.product_event_type 直接从类别或 record.category 复制的值
properties.event_id, properties.log.auditID metadata.product_log_id 如果 properties.event_id 不为空,则取自该属性;否则,取自 properties.log.auditID
properties.log.apiVersion metadata.product_version 直接从 properties.log.apiVersion 复制的值
协议 network.application_protocol 直接从协议复制的值
properties.log.verb network.dhcp.opcode 直接从 properties.log.verb 复制的值(大写)
properties.CsMethod、record.properties.CsMethod network.http.method 直接从 properties.CsMethod 或 record.properties.CsMethod 复制的值
user_agent network.http.parsed_user_agent 从 user_agent 转换
properties.Referer、uri network.http.referral_url 来自属性的值。如果非空,则为 Referer;否则,来自 URI
properties.ScStatus、record.properties.ScStatus、properties.statusCode、record.properties.statusCode、responseStatus.code network.http.response_code 从属性(ScStatus、record.properties.ScStatus、properties.statusCode、record.properties.statusCode 或 responseStatus.code)转换为整数
user_agent network.http.user_agent 直接从 user_agent 复制的值
properties.ScBytes、record.properties.ScBytes、properties.responseLength network.received_bytes 从 properties.ScBytes、record.properties.ScBytes 或 properties.responseLength 转换为 uinteger
properties.CsBytes、record.properties.CsBytes、properties.requestLength network.sent_bytes 从 properties.CsBytes、record.properties.CsBytes 或 properties.requestLength 转换为 uinteger
properties.session_id network.session_id 直接从 properties.session_id 复制的值(已转换为字符串)
properties.tlsVersion network.tls.version 直接从 properties.tlsVersion 复制的值
domain_name_value principal.administrative_domain 直接从 domain_name_value 复制的值
properties.clientAppUsed, target_application principal.application 如果 properties.clientAppUsed 不为空,则取自该属性;否则取自 target_application
prop_device_id principal.asset.asset_id 设置为“设备 ID:”后跟 prop_device_id(如果不为 null)
硬件 principal.asset.hardware 从硬件合并
properties.host_name、properties.CIp、record.properties.CIp、properties.ComputerName、record.properties.ComputerName、properties.CsHost、record.properties.CsHost、properties.server_instance_name、record.properties.server_instance_name、server_name principal.asset.hostname 如果 properties.host_name 不为空,则取自该属性;否则取自 properties.CIp(grok IP)、record.properties.CIp(grok IP)、properties.ComputerName、record.properties.ComputerName、properties.CsHost、record.properties.CsHost、properties.server_instance_name、record.properties.server_instance_name 或 server_name
src_ip、src_ip1、properties.client_ip、record.properties.clientIpAddress、properties.clientIpAddress、callerIpAddress、properties.ipAddress、ip principal.asset.ip 来自 src_ip、src_ip1、properties.client_ip(Grok IP)、record.properties.clientIpAddress、properties.clientIpAddress(Grok IP)、record.properties.clientIpAddress、callerIpAddress(Grok IP)、properties.ipAddress 或 ip 的值
properties.host_name、properties.CsHost、record.properties.CsHost principal.hostname 如果 properties.host_name 不为空,则取自该属性;否则取自 properties.CsHost 或 record.properties.CsHost
src_ip、src_ip1、properties.client_ip、record.properties.clientIpAddress、properties.clientIpAddress、callerIpAddress、properties.ipAddress、ip principal.ip 来自 src_ip、src_ip1、properties.client_ip(Grok IP)、record.properties.clientIpAddress、properties.clientIpAddress(Grok IP)、record.properties.clientIpAddress、callerIpAddress(Grok IP)、properties.ipAddress 或 ip 的值
properties.location.city, provisioning_steps_city principal.location.city 如果 properties.location.city 不为空,则取该值;否则取 provisioning_steps_city 的值
properties.location.countryOrRegion, provisioning_steps_country, location, Region principal.location.country_or_region 如果 properties.location.countryOrRegion 不为空,则取自该属性;否则取自 provisioning_steps_country;否则取自 location;否则取自 Region
properties.location.geoCoordinates.latitude principal.location.region_latitude 直接从 properties.location.geoCoordinates.latitude 复制的值
properties.location.geoCoordinates.longitude principal.location.region_longitude 直接从 properties.location.geoCoordinates.longitude 复制的值
properties.location.state principal.location.state 直接从 properties.location.state 复制的值
prop_os principal.platform 如果 prop_os 与 (?i)Win 匹配,则设置为 WINDOWS;如果与 (?i)Lin 匹配,则设置为 LINUX;如果与 (?i)Mac 匹配,则设置为 MAC
properties.deviceDetail.operatingSystem principal.platform_version 直接从 properties.deviceDetail.operatingSystem 复制的值
src_port principal.port 从 src_port 转换为整数
is_compliant_label、is_managed_label、serice_type_label、serice_credential_label principal.resource.attribute.labels 已合并自 is_compliant_label、is_managed_label、serice_type_label、serice_credential_label
properties.sourceSystem.Name principal.resource.name 直接从 properties.sourceSystem.Name 复制的值
properties.sourceSystem.Id principal.resource.product_object_id 直接从 properties.sourceSystem.Id 复制的值
properties.server_principal_name、source_user_principal_name、user_principal_name、local_account_username_value principal.user.email_addresses 从 properties.server_principal_name(如果与电子邮件地址匹配)、source_user_principal_name(如果与电子邮件地址匹配)、user_principal_name(如果与电子邮件地址匹配)或 local_account_username_value(如果与电子邮件地址匹配)合并而来
properties.sequence_group_id, grpname, properties.log.user.groups principal.user.group_identifiers 从 properties.sequence_group_id、grpname 或 properties.log.user.groups 合并
properties.sourceIdentity.details.id、properties.userId、details_id_not_present principal.user.product_object_id 如果 properties.sourceIdentity.details.id 不为空,则返回该值;否则,返回 properties.userId;否则,返回 details_id_not_present
properties.ServicePrincipalDisplayName、properties.servicePrincipalName、properties.sourceIdentity.details.DisplayName、properties.userDisplayName、record.properties.log.user.username principal.user.user_display_name 如果 properties.ServicePrincipalDisplayName 不为空,则取该属性的值;否则,取 properties.servicePrincipalName 的值;否则,取 properties.sourceIdentity.details.DisplayName 的值;否则,取 properties.userDisplayName 的值;否则,取 record.properties.log.user.username 的值
properties.servicePrincipalId、user_userPrincipalName、source_user_principal_name、details_user_principal_name、user_principal_name、properties.accountName、record.properties.log.user.uid principal.user.userid 如果 properties.servicePrincipalId 不为空,则返回该值;否则,返回 user_userPrincipalName 的值;否则,返回 source_user_principal_name 的值;否则,返回 details_user_principal_name 的值;否则,返回 user_principal_name 的值;否则,返回 properties.accountName 的值;否则,返回 record.properties.log.user.uid 的值
security_action、succeeded、statusText、resultType security_result.action 如果 security_action 为 allow,则设置为 ALLOW;否则,如果 succeeded 为 true 或 statusText 为 Success 或 resultType 为 success,则设置为 ALLOW;否则,如果 succeeded 为 false 或 statusText 为 failed 或 resultType 为 failed,则设置为 BLOCK
properties.action_name security_result.action_details 直接从 properties.action_name 复制的值
status_label security_result.about.resource.attribute.labels 已从 status_label 合并
properties_log_label、corr_key_label、resultType_label、resultSignature_label、networkName_label、networkType_label、method_label、authentication_step_requirement_label、authentication_step_result_detail_label、stepdate_label、initiatedby_name_label、initiatedby_id_label、initiatedby_type_label、targetSystem_id_label、targetSystem_name_label、containerID_label、pod_label、authentication_label、api_name_label、scale_unit_label、namespace_name_label、subscription_id_label、activity_id_label_1、task_name_label、environment_label、cookie、additional_field_event_ip、additional_field_event_primary_stamp、additional_field_event_stamp_type、source、correlationId_field、activityDateTime_field、detectedDateTime_field、lastUpdatedDateTime_field、count_label、total_label、minimum_label、maximum_label、average_label、metricName_label、timeGrain_label、ApiName_label、Authentication_label、GeoType_label、old_label、new_label、add_label、keyId_label、sr_result.rule_name、sr_result.rule_id、resultField、sr_result.detection_fields security_result.detection_fields 合并自 properties_log_label、corr_key_label、resultType_label、resultSignature_label、networkName_label、networkType_label、method_label、authentication_step_requirement_label、authentication_step_result_detail_label、stepdate_label、initiatedby_name_label、initiatedby_id_label、initiatedby_type_label、targetSystem_id_label、targetSystem_name_label、containerID_label、pod_label、authentication_label、api_name_label、scale_unit_label、namespace_name_label、subscription_id_label、activity_id_label_1、task_name_label、environment_label、cookie、additional_field_event_ip、additional_field_event_primary_stamp、additional_field_event_stamp_type、source、correlationId_field、activityDateTime_field、detectedDateTime_field、lastUpdatedDateTime_field、count_label、total_label、minimum_label、maximum_label、average_label、metricName_label、timeGrain_label、ApiName_label、Authentication_label、GeoType_label、old_label、new_label、add_label、keyId_label、sr_result.rule_name、sr_result.rule_id、resultField、sr_result.detection_fields
resultDescription, sec_result.description, properties.queryexecutionstatus security_result.description 来自 resultDescription 的值(替换换行符);否则来自 sec_result.description;否则来自 properties.queryexecutionstatus
policy_id_value security_result.rule_id 直接从 policy_id_value 复制的值
properties.Result、statusText、properties.queryexecutionstatus security_result.summary 如果属性中的值不为空,则返回该值;否则,返回 statusText 中的值;否则,返回属性中的 queryexecutionstatus
target_application target.application 来自 target_application 的值
properties.ComputerName、record.properties.ComputerName、properties.server_instance_name、record.properties.server_instance_name target.asset.hostname 来自 properties.ComputerName、record.properties.ComputerName、properties.server_instance_name 或 record.properties.server_instance_name 的值
(硬编码) target.cloud.environment 设置为“MICROSOFT_AZURE”
properties.SPort, record.properties.SPort target.port 从 properties.SPort 或 record.properties.SPort 转换为整数
properties.querytext.query target.process.command_line 直接从 properties.querytext.query 复制的值
properties.processId target.process.pid 从 properties.processId 转换为字符串
subscription_id_label、resource_group_label、request_resource_type_label、request_resource_id_label、additional_objectKey、additional_clientRequestId、additional_RiskEventType、additional_tokenIssuerType、keyId_label、appid_label target.resource.attribute.labels 合并自 subscription_id_label、resource_group_label、request_resource_type_label、request_resource_id_label、additional_objectKey、additional_clientRequestId、additional_RiskEventType、additional_tokenIssuerType、keyId_label、appid_label
properties_databasename、properties.resourceDisplayName、record.properties.databasename、record.properties.databaseName target.resource.name 如果 properties_databasename 不为空,则取自该属性;否则取自 properties.resourceDisplayName;否则取自 record.properties.databasename;否则取自 record.properties.databaseName
resourceId、properties.resourceId target.resource.product_object_id 如果 resourceId 不为空,则为来自 resourceId 的值;否则为来自 properties.resourceId 的值
properties_collectionname, properties.resourceDisplayName, record.properties.collectionname, record.properties.collectionName, properties.log.objectRef.resource target.resource.resource_subtype 如果 properties_collectionname 不为空,则取自该属性;否则,取自 properties.resourceDisplayName;否则,取自 record.properties.collectionname;否则,取自 record.properties.collectionName;否则,取自 properties.log.objectRef.resource
resourceId、message target.resource.resource_type 如果 resourceId 与模式匹配,则设置为 DATABASE;否则,如果消息与 MANAGEDCLUSTERS 匹配,则设置为 CLUSTER;否则,如果消息与 MANAGEDINSTANCES 匹配,则设置为 VIRTUAL_MACHINE;否则,如果消息与 DATABASEACCOUNTS 匹配,则设置为 DATABASE
resourceType target.resource.type 直接从 resourceType 复制的值
properties.CsUriStem、properties.log.requestURI、value(来自 additionalInfo) target.url 如果 properties.CsUriStem 不为空,则返回该值;否则,返回 properties.log.requestURI;否则,返回值(来自 additionalInfo)
user_principal_name target.user.email_addresses 从 user_principal_name 合并(如果与电子邮件地址匹配)
properties.userId target.user.product_object_id 直接从 properties.userId 复制的值
properties.userDisplayName target.user.user_display_name 直接从 properties.userDisplayName 复制的值
user_principal_name, properties.userPrincipalName target.user.userid 如果 user_principal_name 不为空,则返回该值;否则,返回 properties.userPrincipalName 中的值
(硬编码) metadata.product_name 设置为“Azure 资源日志”
(硬编码) metadata.vendor_name 设置为“Microsoft”
properties.roleInstance target.resource.attribute.labels 从变更日志映射
reason security_result.summary 从变更日志映射
Environment", "TaskName", "ActivityId", "subscriptionId", and "namespaceName security_result.detection_fields 从变更日志映射
count", "total", "minimum", "ApiName", "Authentication", "ScaleUnit", "pod", and "containerID security_result.detection_fields 从变更日志映射
Region principal.location.name 从变更日志映射
processId principal.process.pid 从变更日志映射
Role.DisplayName", "Role.TemplateId security_result.detection_fields 从变更日志映射
properties.correlationId security_result.detection_fields 从变更日志映射
properties.requestId", "properties.riskEventType", "properties.tokenIssuerType" and "properties.keyIds target.resource.attribute.labels 从变更日志映射
properties.detectionTimingType additional.fields 从变更日志映射
properties.appliedConditionalAccessPolicies about.labels 从变更日志映射
properties.authenticationProcessingDetails security_result.detection_fields 从变更日志映射
properties.additionalInfo.userAgent network.http.user_agent 从变更日志映射
properties.additionalInfo.alertUrl target.url 从变更日志映射
properties.initiatedBy.user.userPrincipalName principal.user.userid 从变更日志映射
properties.userAgentHeader network.http.user_agent 从变更日志映射
properties.objectKey target.resource.attribute.labels 从变更日志映射
properties.clientRequestId target.resource.attribute.labels 从变更日志映射
properties.responseMd5 target.resource.attribute.labels 从变更日志映射
properties.deviceDetail.displayName principal.asset.hardware.model 从变更日志映射
properties.riskType event.idm.read_only_udm.additional.fields 从变更日志映射
properties.riskLevelDuringSignIn event.idm.read_only_udm.additional.fields 从变更日志映射
properties.riskLevelAggregated event.idm.read_only_udm.additional.fields 从变更日志映射
properties.originalRequestId event.idm.read_only_udm.additional.fields 从变更日志映射
Level","tenantId event.idm.read_only_udm.additional.fields 从变更日志映射
properties.conditionalAccessStatus security_result.about.labels 从变更日志映射
properties.userType target.user.attribute.labels 从变更日志映射
properties.provisioningSteps.0.details.city principal.location.city 从变更日志映射
properties.provisioningSteps.0.details.country principal.location.country_or_region 从变更日志映射
properties.accountEnabled","properties.isProcessing","properties.isGuest","properties.isDeleted event.idm.read_only_udm.additional.fields 从变更日志映射
properties.authenticationRequirement", "properties.status.errorCode", "properties.statusInfo.Status event.idm.read_only_udm.additional.fields 从变更日志映射
properties.sourceIdentity.details.odatatype", "properties.provisioningSteps.0.details.appRoleAssignments principal.user.attribute.labels 从变更日志映射
properties.sourceIdentity.details.UserPrincipalName", "properties.ServicePrincipalId principal.user.userid 从变更日志映射
properties.source","correlationId", "properties.activityDateTime", "properties.detectedDateTime","properties.lastUpdatedDateTime security_result.detection_fields 从变更日志映射
properties.sourceIdentity.details.DisplayName", "properties.ServicePrincipalDisplayName", "properties.servicePrincipalName principal.user.user_display_name 从变更日志映射
properties.servicePrincipalType", "properties.servicePrincipalCredentialKeyId principal.resource.attribute.labels 从变更日志映射
properties.deviceDetail.isCompliant", "properties.deviceDetail.isManaged principal.asset.attribute.labels 从变更日志映射
properties.id metadata.product_log_id 从变更日志映射
properties.displayName target.application 从变更日志映射
properties.appId target.resource.attribute.labels 从变更日志映射
properties.deviceDetail.browser network.http.user_agent 从变更日志映射
properties.deviceDetail.deviceId principal.asset.asset_id 从变更日志映射
properties.deviceDetail.displayName principal.asset.hostname 从变更日志映射
properties.authenticationDetails.0.authenticationMethodDetail security_result.about.labels 从变更日志映射
properties.riskLevel", "properties.riskState", "properties.riskDetail event.idm.read_only_udm.additional.fields 从变更日志映射
properties.deviceDetail.trustType event.idm.read_only_udm.additional.fields 从变更日志映射
properties.additionalInfo.Value network.http.user_agent 从变更日志映射

更新日志

查看相应解析器的更改日志

需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。