查询单个漏洞影响的云服务器信息
功能介绍
查询单个漏洞影响的云服务器信息
调用方法
请参见如何调用API。
URI
GET /v5/{project_id}/vulnerability/hosts
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
项目ID 最小长度:1 最大长度:256 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
enterprise_project_id |
否 |
String |
企业项目ID,“0”表示默认企业项目,查询所有企业项目时填写:all_granted_eps 最小长度:0 最大长度:128 |
vul_id |
是 |
String |
漏洞ID 最小长度:0 最大长度:64 |
type |
是 |
String |
漏洞类型
最小长度:0 最大长度:64 |
host_name |
否 |
String |
受影响主机名称 最小长度:0 最大长度:256 |
host_ip |
否 |
String |
受影响主机ip 最小长度:0 最大长度:128 |
status |
否 |
String |
漏洞状态
最小长度:0 最大长度:128 |
limit |
否 |
Integer |
每页条数 最小值:10 最大值:200 缺省值:10 |
offset |
否 |
Integer |
偏移量:指定返回记录的开始位置 最小值:0 最大值:2000000 缺省值:0 |
asset_value |
否 |
String |
资产重要性 important:重要 common:一般 test:测试 最小长度:0 最大长度:32 |
group_name |
否 |
String |
服务器组名称 最小长度:0 最大长度:256 |
handle_status |
否 |
String |
处置状态,包含如下:
最小长度:1 最大长度:32 |
severity_level |
否 |
String |
危险程度 ,Critical,High,Medium,Low 最小长度:0 最大长度:32 |
is_affect_business |
否 |
Boolean |
是否影响业务 |
repair_priority |
否 |
String |
修复优先级,包含如下
最小长度:1 最大长度:10 |
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
X-Auth-Token |
是 |
String |
用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值) 最小长度:1 最大长度:32768 |
响应参数
状态码: 200
参数 |
参数类型 |
描述 |
---|---|---|
total_num |
Integer |
受影响的云服务器总数 最小值:0 最大值:10000 |
data_list |
Array of VulHostInfo objects |
受影响的云服务器列表 数组长度:1 - 10000 |
参数 |
参数类型 |
描述 |
---|---|---|
host_id |
String |
受漏洞影响的服务器id 最小长度:1 最大长度:128 |
severity_level |
String |
危险程度
最小长度:1 最大长度:128 |
host_name |
String |
受影响主机名称 最小长度:1 最大长度:256 |
host_ip |
String |
受影响主机ip 最小长度:1 最大长度:256 |
agent_id |
String |
Agent ID 最小长度:1 最大长度:128 |
version |
String |
主机绑定的配额版本 最小长度:1 最大长度:128 |
cve_num |
Integer |
漏洞cve总数 最小值:0 最大值:10000 |
cve_id_list |
Array of strings |
漏洞对应的cve id列表 最小长度:1 最大长度:64 数组长度:1 - 10000 |
status |
String |
漏洞状态
最小长度:1 最大长度:128 |
repair_cmd |
String |
修复漏洞需要执行的命令行(只有Linux漏洞有该字段) 最小长度:1 最大长度:256 |
app_path |
String |
应用软件的路径(只有应用漏洞有该字段) 最小长度:1 最大长度:512 |
region_name |
String |
地域 最小长度:0 最大长度:128 |
public_ip |
String |
服务器公网ip 最小长度:0 最大长度:128 |
private_ip |
String |
服务器私网ip 最小长度:0 最大长度:128 |
group_id |
String |
服务器组id 最小长度:0 最大长度:128 |
group_name |
String |
服务器组名称 最小长度:0 最大长度:256 |
os_type |
String |
操作系统 最小长度:0 最大长度:32 |
asset_value |
String |
资产重要性,包含如下3种
最小长度:0 最大长度:32 |
is_affect_business |
Boolean |
是否影响业务 |
first_scan_time |
Long |
首次扫描时间 最小值:0 最大值:9223372036854775807 |
scan_time |
Long |
扫描时间,时间戳单位:毫秒 最小值:0 最大值:9223372036854775807 |
support_restore |
Boolean |
是否可以回滚到修复漏洞时创建的备份 |
disabled_operate_types |
Array of disabled_operate_types objects |
漏洞在当前主机上不可进行的操作类型列表 数组长度:1 - 10000 |
repair_priority |
String |
修复优先级,包含如下
最小长度:1 最大长度:10 |
请求示例
查询具有漏洞EulerOS-SA-2021-1894的服务器列表的前10条数据
GET https://{endpoint}/v5/2b31ed520xxxxxxebedb6e57xxxxxxxx/vulnerability/hosts?vul_id=EulerOS-SA-2021-1894&offset=0&limit=10
响应示例
状态码: 200
Vul host info list
{ "total_num" : 1, "data_list" : [ { "host_id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "severity_level" : "Low", "host_name" : "ecs", "host_ip" : "xxx.xxx.xxx.xxx", "agent_id" : "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "version" : "hss.version.enterprise", "cve_num" : 1, "cve_id_list" : [ "CVE-2022-1664" ], "status" : "vul_status_ignored", "repair_cmd" : "zypper update update-alternatives", "app_path" : "/root/apache-tomcat-8.5.15/bin/bootstrap.jar", "support_restore" : true, "disabled_operate_types" : [ { "operate_type" : "immediate_repair", "reason" : "cce机器的内核漏洞不支持自动修复" } ], "repair_priority" : "Critical" } ] }
SDK代码示例
SDK代码示例如下。
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 56 57 58 59 |
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.hss.v5.region.HssRegion; import com.huaweicloud.sdk.hss.v5.*; import com.huaweicloud.sdk.hss.v5.model.*; public class ListVulHostsSolution { 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"); ICredential auth = new BasicCredentials() .withAk(ak) .withSk(sk); HssClient client = HssClient.newBuilder() .withCredential(auth) .withRegion(HssRegion.valueOf("<YOUR REGION>")) .build(); ListVulHostsRequest request = new ListVulHostsRequest(); request.withEnterpriseProjectId("<enterprise_project_id>"); request.withVulId("<vul_id>"); request.withType("<type>"); request.withHostName("<host_name>"); request.withHostIp("<host_ip>"); request.withStatus("<status>"); request.withLimit(<limit>); request.withOffset(<offset>); request.withAssetValue("<asset_value>"); request.withGroupName("<group_name>"); request.withHandleStatus("<handle_status>"); request.withSeverityLevel("<severity_level>"); request.withIsAffectBusiness(<is_affect_business>); request.withRepairPriority("<repair_priority>"); try { ListVulHostsResponse response = client.listVulHosts(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()); } } } |
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 |
# coding: utf-8 import os from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkhss.v5.region.hss_region import HssRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdkhss.v5 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"] credentials = BasicCredentials(ak, sk) client = HssClient.new_builder() \ .with_credentials(credentials) \ .with_region(HssRegion.value_of("<YOUR REGION>")) \ .build() try: request = ListVulHostsRequest() request.enterprise_project_id = "<enterprise_project_id>" request.vul_id = "<vul_id>" request.type = "<type>" request.host_name = "<host_name>" request.host_ip = "<host_ip>" request.status = "<status>" request.limit = <limit> request.offset = <offset> request.asset_value = "<asset_value>" request.group_name = "<group_name>" request.handle_status = "<handle_status>" request.severity_level = "<severity_level>" request.is_affect_business = <IsAffectBusiness> request.repair_priority = "<repair_priority>" response = client.list_vul_hosts(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg) |
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 56 57 58 59 60 61 |
package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" hss "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/hss/v5" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/hss/v5/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/hss/v5/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") auth := basic.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). Build() client := hss.NewHssClient( hss.HssClientBuilder(). WithRegion(region.ValueOf("<YOUR REGION>")). WithCredential(auth). Build()) request := &model.ListVulHostsRequest{} enterpriseProjectIdRequest:= "<enterprise_project_id>" request.EnterpriseProjectId = &enterpriseProjectIdRequest request.VulId = "<vul_id>" request.Type = "<type>" hostNameRequest:= "<host_name>" request.HostName = &hostNameRequest hostIpRequest:= "<host_ip>" request.HostIp = &hostIpRequest statusRequest:= "<status>" request.Status = &statusRequest limitRequest:= int32(<limit>) request.Limit = &limitRequest offsetRequest:= int32(<offset>) request.Offset = &offsetRequest assetValueRequest:= "<asset_value>" request.AssetValue = &assetValueRequest groupNameRequest:= "<group_name>" request.GroupName = &groupNameRequest handleStatusRequest:= "<handle_status>" request.HandleStatus = &handleStatusRequest severityLevelRequest:= "<severity_level>" request.SeverityLevel = &severityLevelRequest isAffectBusinessRequest:= <is_affect_business> request.IsAffectBusiness = &isAffectBusinessRequest repairPriorityRequest:= "<repair_priority>" request.RepairPriority = &repairPriorityRequest response, err := client.ListVulHosts(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } } |
更多编程语言的SDK代码示例,请参见API Explorer的代码示例页签,可生成自动对应的SDK代码示例。
状态码
状态码 |
描述 |
---|---|
200 |
Vul host info list |
错误码
请参见错误码。