更新时间:2024-12-13 GMT+08:00

查询关联Dataobject列表

功能介绍

查询关联Dataobject列表

调用方法

请参见如何调用API

URI

POST /v1/{project_id}/workspaces/{workspace_id}/soc/{dataclass_type}/{data_object_id}/{related_dataclass_type}/search

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目id

workspace_id

String

工作空间id

dataclass_type

String

关联主体dataobject所属数据类,小写复数,如告警为alerts,事件为incidents

data_object_id

String

关联主体dataobject的id

related_dataclass_type

String

被关联的dataobject所属数据类,小写复数,如告警为alerts,事件为incidents

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。

通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)

content-type

String

内容类型

表3 请求Body参数

参数

是否必选

参数类型

描述

limit

Integer

分页大小

offset

Integer

偏移量

sort_by

String

排序字段:create_time | update_time

order

String

排序方式:DESC | ASC

from_date

String

搜索开始时间,例如:2023-02-20T00:00:00.000Z

to_date

String

搜索结束时间,例如:2023-02-27T23:59:59.999Z

condition

condition object

搜索条件表达式

表4 condition

参数

是否必选

参数类型

描述

conditions

Array of conditions objects

表达式列表

logics

Array of strings

表达式名称列表

表5 conditions

参数

是否必选

参数类型

描述

name

String

表达式名称

data

Array of strings

表达式内容列表

响应参数

状态码: 200

表6 响应Header参数

参数

参数类型

描述

X-request-id

String

请求ID,格式为:request_uuid-timestamp-hostname

表7 响应Body参数

参数

参数类型

描述

code

String

错误码

message

String

错误信息

total

Integer

告警总数

limit

Integer

分页大小

offset

Integer

偏移量

success

Boolean

是否成功

data

Array of DataObjectDetail objects

告警列表

表8 DataObjectDetail

参数

参数类型

描述

create_time

String

记录时间,格式ISO8601:YYYY-MM-DDTHH:mm:ss.ms+timezone。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区

data_object

DataObject object

告警实体信息

dataclass_ref

dataclass_ref object

数据类对象

format_version

Integer

格式版本

id

String

事件唯一标识,UUID格式,最大36个字符

project_id

String

当前项目的id

update_time

String

更新时间,格式ISO8601:YYYY-MM-DDTHH:mm:ss.ms+timezone。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区

version

Integer

版本

workspace_id

String

当前的工作空间id

表9 DataObject

参数

参数类型

描述

version

String

告警对象的版本,该字段的值必须为云SSA服务确定的官方发布版本之一

id

String

事件唯一标识,UUID格式,最大36个字符

domain_id

String

数据投递后,被委托用户的domain_id

region_id

String

数据投递后,被委托用户的region_id

workspace_id

String

当前的工作空间id

environment

environment object

告警产生的环境坐标信息

datasource

datasource object

首次上报数据源

first_observed_time

String

首次发现时间,格式ISO8601:YYYY-MM-DDTHH:mm:ss.ms+timezone。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区

last_observed_time

String

最近发现时间,格式ISO8601:YYYY-MM-DDTHH:mm:ss.ms+timezone。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区

create_time

String

记录时间,格式ISO8601:YYYY-MM-DDTHH:mm:ss.ms+timezone。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区

arrive_time

String

接收时间,格式ISO8601:YYYY-MM-DDTHH:mm:ss.ms+timezone。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区

title

String

告警标题

description

String

告警描述信息

source_url

String

告警URL链接,指向数据源产品中有关当前事件说明的页面

count

Integer

事件发生次数

confidence

Integer

事件的置信度。置信度的定义旨在说明识别的行为或问题的可能性。

取值范围:0-100,0表示置信度为0%,100表示置信度为100%

severity

String

严重性等级,取值范围:Tips | Low | Medium | High | Fatal

说明:

0: Tips – 未发现任何问题。

1: Low – 无需针对问题执行任何操作。

2: Medium – 问题需要处理,但不紧急。

3: High – 问题必须优先处理。

4: Fatal – 问题必须立即处理,以防止产生进一步的损害

criticality

Integer

关键性,是指事件涉及的资源的重要性级别。

取值范围:0-100,0表示资源不关键,100表示最关键资源

alert_type

alert_type object

告警分类,详细定义参考《告警类型定义》

network_list

Array of network_list objects

网络信息

resource_list

Array of resource_list objects

受影响资源

remediation

remediation object

补救措施

verification_state

String

验证状态,标识事件的准确性。可选类型如下:

Unknown – 未知

True_Positive – 确认

False_Positive – 误报

默认填写Unknown

handle_status

String

事件处理状态,可选类型如下:

Open – 打开,默认

Block – 阻塞

Closed – 关闭

默认填写Open

sla

Integer

约束闭环时间:设置风险接受持续时间。单位:小时

update_time

String

更新时间,格式ISO8601:YYYY-MM-DDTHH:mm:ss.ms+timezone。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区

close_time

String

关闭时间,格式ISO8601:YYYY-MM-DDTHH:mm:ss.ms+timezone。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区

ipdrr_phase

String

周期/处置阶段编号

Prepartion|Detection and Analysis|Containm,Eradication& Recovery|Post-Incident-Activity

simulation

String

调试字段

actor

String

告警调查员

owner

String

责任人、服务责任人

creator

String

创建人

close_reason

String

关闭原因:

误检 - False detection

已解决 - Resolved

重复 - Repeated

其他 - Other

close_comment

String

关闭评论

malware

malware object

恶意软件

system_info

Object

系统信息

process

Array of process objects

进程信息

user_info

Array of user_info objects

用户信息

file_info

Array of file_info objects

文件信息

表10 environment

参数

参数类型

描述

vendor_type

String

环境供应商

domain_id

String

租户id

region_id

String

区域id,全局服务global

cross_workspace_id

String

数据投递前的源工作空间id,在源空间下值为null,投递后为被委托用户的id

project_id

String

项目id, 全局服务默认null

表11 datasource

参数

参数类型

描述

source_type

Integer

数据源类型,取值范围如下:

1 - 云上产品

2 - 第三方产品

3 - 租户私有产品

domain_id

String

数据源产品所属账号的id

project_id

String

数据源产品所属项目的id

region_id

String

数据源产品所在区域,具体取值范围查看云地区和终端节点定义,例如cn-north-1

company_name

String

数据源产品所属公司的名称

product_name

String

数据源产品的名称

product_feature

String

产品功能特性名称,用来指明检测到当前事件的产品的功能特性

product_module

String

检测模块列表

表12 alert_type

参数

参数类型

描述

category

String

类别

alert_type

String

告警类型

表13 network_list

参数

参数类型

描述

direction

String

方向,取值范围:IN | OUT

protocol

String

协议,包含7层和4层的协议

参考:IANA registered name

https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml

src_ip

String

源IP地址

src_port

Integer

源端口,0–65535

src_domain

String

源域名

src_geo

src_geo object

源IP的地理位置信息

dest_ip

String

目的IP地址

dest_port

String

目的端口,0–65535

dest_domain

String

目的域名

dest_geo

dest_geo object

目标IP的地理位置信息

表14 src_geo

参数

参数类型

描述

latitude

Number

纬度

longitude

Number

经度

city_code

String

城市编码,Beijing | Shanghai

country_code

String

国家简码,参考ISO 3166-1 alpha-2,例如:CN | US | DE | IT | SG

表15 dest_geo

参数

参数类型

描述

latitude

Number

纬度

longitude

Number

经度

city_code

String

城市编码,Beijing | Shanghai

country_code

String

国家简码,参考ISO 3166-1 alpha-2,例如:CN | US | DE | IT | SG

表16 resource_list

参数

参数类型

描述

id

String

云服务资源id

name

String

资源名称

type

String

资源类型;引用云RMS type字段

provider

String

云服务名称;引用云RMS provider字段

region_id

String

区域;按照云regionId填写,如cn-north-1等

domain_id

String

资源所属账号ID,UUID格式

project_id

String

资源所属项目ID,UUID格式

ep_id

String

企业项目id

ep_name

String

企业项目名称

tags

String

资源标签

1、最多50个key/values对

2、values:最大255字符,取值范围:字母数字,空格,+, -, =, ., _, :, /,@

表17 remediation

参数

参数类型

描述

recommendation

String

推荐处理方法

url

String

链接,指向该事件的一般修复信息。该URL必须可以从公网访问,不需要提供凭证

表18 malware

参数

参数类型

描述

malware_family

String

恶意家族

malware_class

String

恶意软件分类

表19 process

参数

参数类型

描述

process_name

String

进程名

process_path

String

进程执行文件路径

process_pid

Integer

进程id

process_uid

Integer

进程用户id

process_cmdline

String

进程命令行

process_parent_name

String

父进程名称

process_parent_path

String

父进程执行文件路径

process_parent_pid

Integer

父进程id

process_parent_uid

Integer

父进程用户id

process_parent_cmdline

String

父进程命令行

process_child_name

String

子进程名称

process_child_path

String

子进程执行文件路径

process_child_pid

Integer

子进程id

process_child_uid

Integer

子进程用户id

process_child_cmdline

String

子进程命令行

process_launche_time

String

进程启动时间,格式ISO8601:YYYY-MM-DDTHH:mm:ss.ms+timezone。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区

process_terminate_time

String

进程结束时间,格式ISO8601:YYYY-MM-DDTHH:mm:ss.ms+timezone。时区信息为事件发生时区,无法解析时区的时间,默认时区填东八区

表20 user_info

参数

参数类型

描述

user_id

String

用户uid

user_name

String

用户名称

表21 file_info

参数

参数类型

描述

file_path

String

文件路径/名称

file_content

String

文件内容

file_new_path

String

文件新路径/名称

file_hash

String

文件hash

file_md5

String

文件md5

file_sha256

String

文件sha256

file_attr

String

文件属性

表22 dataclass_ref

参数

参数类型

描述

id

String

数据类唯一标识,UUID格式,最大36个字符

name

String

数据类名称

状态码: 400

表23 响应Header参数

参数

参数类型

描述

X-request-id

String

请求ID,格式为:request_uuid-timestamp-hostname

表24 响应Body参数

参数

参数类型

描述

code

String

错误码

message

String

错误描述

请求示例

查询数据对象的关系列表,偏移量为10,查询3条

{
  "limit" : 3,
  "offset" : 10
}

响应示例

状态码: 200

查询关联Dataobject列表返回body体

{
  "code" : "909494e3-558e-46b6-a9eb-07a8e18ca62f",
  "message" : "Error message",
  "total" : 41,
  "limit" : 3,
  "offset" : 10,
  "data" : null
}

SDK代码示例

SDK代码示例如下。

Java

查询数据对象的关系列表,偏移量为10,查询3条

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package com.huaweicloud.sdk.test;

import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.secmaster.v2.region.SecMasterRegion;
import com.huaweicloud.sdk.secmaster.v2.*;
import com.huaweicloud.sdk.secmaster.v2.model.*;


public class ListDataobjectRelationsSolution {

    public static void main(String[] args) {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        String ak = System.getenv("CLOUD_SDK_AK");
        String sk = System.getenv("CLOUD_SDK_SK");
        String projectId = "{project_id}";

        ICredential auth = new BasicCredentials()
                .withProjectId(projectId)
                .withAk(ak)
                .withSk(sk);

        SecMasterClient client = SecMasterClient.newBuilder()
                .withCredential(auth)
                .withRegion(SecMasterRegion.valueOf("<YOUR REGION>"))
                .build();
        ListDataobjectRelationsRequest request = new ListDataobjectRelationsRequest();
        request.withWorkspaceId("{workspace_id}");
        request.withDataclassType("{dataclass_type}");
        request.withDataObjectId("{data_object_id}");
        request.withRelatedDataclassType("{related_dataclass_type}");
        DataobjectSearch body = new DataobjectSearch();
        body.withOffset(10);
        body.withLimit(3);
        request.withBody(body);
        try {
            ListDataobjectRelationsResponse response = client.listDataobjectRelations(request);
            System.out.println(response.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getRequestId());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}

Python

查询数据对象的关系列表,偏移量为10,查询3条

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# coding: utf-8

import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdksecmaster.v2.region.secmaster_region import SecMasterRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdksecmaster.v2 import *

if __name__ == "__main__":
    # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak = os.environ["CLOUD_SDK_AK"]
    sk = os.environ["CLOUD_SDK_SK"]
    projectId = "{project_id}"

    credentials = BasicCredentials(ak, sk, projectId)

    client = SecMasterClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(SecMasterRegion.value_of("<YOUR REGION>")) \
        .build()

    try:
        request = ListDataobjectRelationsRequest()
        request.workspace_id = "{workspace_id}"
        request.dataclass_type = "{dataclass_type}"
        request.data_object_id = "{data_object_id}"
        request.related_dataclass_type = "{related_dataclass_type}"
        request.body = DataobjectSearch(
            offset=10,
            limit=3
        )
        response = client.list_dataobject_relations(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)

Go

查询数据对象的关系列表,偏移量为10,查询3条

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    secmaster "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/secmaster/v2"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/secmaster/v2/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/secmaster/v2/region"
)

func main() {
    // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak := os.Getenv("CLOUD_SDK_AK")
    sk := os.Getenv("CLOUD_SDK_SK")
    projectId := "{project_id}"

    auth := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        WithProjectId(projectId).
        Build()

    client := secmaster.NewSecMasterClient(
        secmaster.SecMasterClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            WithCredential(auth).
            Build())

    request := &model.ListDataobjectRelationsRequest{}
	request.WorkspaceId = "{workspace_id}"
	request.DataclassType = "{dataclass_type}"
	request.DataObjectId = "{data_object_id}"
	request.RelatedDataclassType = "{related_dataclass_type}"
	offsetDataobjectSearch:= int32(10)
	limitDataobjectSearch:= int32(3)
	request.Body = &model.DataobjectSearch{
		Offset: &offsetDataobjectSearch,
		Limit: &limitDataobjectSearch,
	}
	response, err := client.ListDataobjectRelations(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

更多

更多编程语言的SDK代码示例,请参见API Explorer的代码示例页签,可生成自动对应的SDK代码示例。

状态码

状态码

描述

200

查询关联Dataobject列表返回body体

400

查询关联Dataobject列表错误返回body体

错误码

请参见错误码