查询单个漏洞影响的云服务器信息
功能介绍
查询单个漏洞影响的云服务器信息
调用方法
请参见如何调用API。
URI
GET /v5/{project_id}/vulnerability/hosts
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
项目ID |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
enterprise_project_id |
否 |
String |
企业项目ID,“0”表示默认企业项目,查询所有企业项目时填写:all_granted_eps |
vul_id |
是 |
String |
漏洞ID |
type |
是 |
String |
漏洞类型
|
host_name |
否 |
String |
受影响主机名称 |
host_ip |
否 |
String |
受影响主机ip |
status |
否 |
String |
漏洞状态
|
limit |
否 |
Integer |
每页条数 |
offset |
否 |
Integer |
偏移量:指定返回记录的开始位置 |
asset_value |
否 |
String |
资产重要性 important:重要 common:一般 test:测试 |
group_name |
否 |
String |
服务器组名称 |
handle_status |
否 |
String |
处置状态,包含如下:
|
severity_level |
否 |
String |
危险程度 ,Critical,High,Medium,Low |
is_affect_business |
否 |
Boolean |
是否影响业务 |
repair_priority |
否 |
String |
修复优先级,包含如下
|
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
X-Auth-Token |
是 |
String |
用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值) |
响应参数
状态码: 200
参数 |
参数类型 |
描述 |
---|---|---|
total_num |
Integer |
受影响的云服务器总数 |
data_list |
Array of VulHostInfo objects |
受影响的云服务器列表 |
参数 |
参数类型 |
描述 |
---|---|---|
host_id |
String |
受漏洞影响的服务器id |
severity_level |
String |
危险程度
|
host_name |
String |
受影响主机名称 |
host_ip |
String |
受影响主机ip |
agent_id |
String |
Agent ID |
version |
String |
主机绑定的配额版本 |
cve_num |
Integer |
漏洞cve总数 |
cve_id_list |
Array of strings |
漏洞对应的cve id列表 |
status |
String |
漏洞状态
|
repair_cmd |
String |
修复漏洞需要执行的命令行(只有Linux漏洞有该字段) |
app_path |
String |
应用软件的路径(只有应用漏洞有该字段) |
region_name |
String |
地域 |
public_ip |
String |
服务器公网ip |
private_ip |
String |
服务器私网ip |
group_id |
String |
服务器组id |
group_name |
String |
服务器组名称 |
os_type |
String |
操作系统 |
asset_value |
String |
资产重要性,包含如下3种
|
is_affect_business |
Boolean |
是否影响业务 |
first_scan_time |
Long |
首次扫描时间 |
scan_time |
Long |
扫描时间,时间戳单位:毫秒 |
support_restore |
Boolean |
是否可以回滚到修复漏洞时创建的备份 |
disabled_operate_types |
Array of disabled_operate_types objects |
漏洞在当前主机上不可进行的操作类型列表 |
repair_priority |
String |
修复优先级,包含如下
|
请求示例
查询具有漏洞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 |
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"); String projectId = "{project_id}"; ICredential auth = new BasicCredentials() .withProjectId(projectId) .withAk(ak) .withSk(sk); HssClient client = HssClient.newBuilder() .withCredential(auth) .withRegion(HssRegion.valueOf("<YOUR REGION>")) .build(); ListVulHostsRequest request = new ListVulHostsRequest(); 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 |
# 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"] projectId = "{project_id}" credentials = BasicCredentials(ak, sk, projectId) client = HssClient.new_builder() \ .with_credentials(credentials) \ .with_region(HssRegion.value_of("<YOUR REGION>")) \ .build() try: request = ListVulHostsRequest() 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 |
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") projectId := "{project_id}" auth := basic.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). WithProjectId(projectId). Build() client := hss.NewHssClient( hss.HssClientBuilder(). WithRegion(region.ValueOf("<YOUR REGION>")). WithCredential(auth). Build()) request := &model.ListVulHostsRequest{} 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 |
错误码
请参见错误码。