云服务器内容精选

  • 调用API获取项目ID 项目ID可以通过调用查询指定条件下的项目信息API获取。 获取项目ID的接口为“GET https://{Endpoint}/v3/projects”,其中{Endpoint}为 IAM 的终端节点,可以从地区和终端节点获取。接口的认证鉴权请参见认证鉴权。 响应示例如下,其中projects下的“id”即为项目ID。 { "projects": [ { "domain_id": "65382450e8f64ac0870cd180d14e684b", "is_domain": false, "parent_id": "65382450e8f64ac0870cd180d14e684b", "name": "xxxxxxxx", "description": "", "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects/a4a5d4098fb4474fa22cd05f897d6b99" }, "id": "a4a5d4098fb4474fa22cd05f897d6b99", "enabled": true } ], "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects" } }
  • 状态码 正常 返回值 说明 200 请求成功。 异常 状态码 编码 说明 400 Bad Request 服务器不能或不会处理该请求。 401 Unauthorized 当前请求需要用户验证。 403 Forbidden 服务器拒绝执行该请求。 404 Not Found 服务器无法找到被请求的资源。 418 I'm a teapot 请求参数错误,服务器无法处理该请求。 500 Internal Server Error 请求失败,服务异常。 父主题: 附录
  • 响应消息体(可选) 响应消息体通常以结构化格式返回,与响应消息头中Content-type对应,传递除响应消息头之外的内容。 对于获取用户Token接口,返回如下消息体。为篇幅起见,这里只展示部分内容。 { "token": { "expires_at": "2019-02-13T06:52:13.855000Z", "methods": [ "password" ], "catalog": [ { "endpoints": [ { "region_id": "xxxxxxxx", ...... 当接口调用出错时,会返回错误码及错误信息说明,错误响应的Body体格式如下所示。 { "error": { "message": "The request you have made requires authentication.", "title": "Unauthorized" } } 其中,error_code表示错误码,error_msg表示错误描述信息。
  • Token认证 Token的有效期为24小时,需要使用一个Token鉴权时,可以先缓存起来,避免频繁调用。 Token在计算机系统中代表令牌(临时)的意思,拥有Token就代表拥有某种权限。Token认证就是在调用API的时候将Token加到请求消息头,从而通过身份认证,获得操作API的权限。 Token可通过调用获取用户Token接口获取,调用本服务API需要project级别的Token,即调用获取用户Token接口时,请求body中auth.scope的取值需要选择project,如下所示。 { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", "password": "********", "domain": { "name": "domainname" } } } }, "scope": { "project": { "name": "xxxxxxxx" } } } } 获取Token 后,再调用其他接口时,您需要在请求消息头中添加“X-Auth-Token”,其值即为Token。例如Token值为“ABCDEFJ....”,则调用接口时将“X-Auth-Token: ABCDEFJ....”加到请求消息头即可,如下所示。 Content-Type: application/json X-Auth-Token: ABCDEFJ....
  • AK/SK认证 AK/SK签名认证方式仅支持消息体大小12MB以内,12MB以上的请求请使用Token认证。 AK/SK认证就是使用AK/SK对请求进行签名,在请求时将签名信息添加到消息头,从而通过身份认证。 AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。 SK(Secret Access Key):与访问密钥ID结合使用的密钥,对请求进行加密签名,可标识发送方,并防止请求被修改。 使用AK/SK认证时,您可以基于签名算法使用AK/SK对请求进行签名,也可以使用专门的签名SDK对请求进行签名。详细的签名方法和SDK使用方法请参见API签名指南。 签名SDK只提供签名功能,与服务提供的SDK不同,使用时请注意。
  • 请求URI 请求URI由如下部分组成。 {URI-scheme} :// {Endpoint} / {resource-path} ? {query-string} 尽管请求URI包含在请求消息头中,但大多数语言或框架都要求您从请求消息中单独传递它,所以在此单独强调。 URI-scheme: 表示用于传输请求的协议,当前所有API均采用HTTPS协议。 Endpoint: 指定承载REST服务端点的服务器 域名 或IP,不同服务不同区域的Endpoint不同,您可以从地区和终端节点获取。 例如IAM服务在“华北-北京一”区域的Endpoint为“iam.cn-north-1.myhuaweicloud.com”。 resource-path: 资源路径,也即API访问路径。从具体API的URI模块获取,例如“获取用户Token”API的resource-path为“/v3/auth/tokens”。 query-string: 查询参数,是可选部分,并不是每个API都有查询参数。查询参数前面需要带一个“?”,形式为“参数名=参数取值”,例如“limit=10”,表示查询不超过10条数据。 例如您需要获取IAM在“华北-北京一”区域的Token,则需使用“华北-北京一”区域的Endpoint(iam.cn-north-1.myhuaweicloud.com),并在获取用户Token的URI部分找到resource-path(/v3/auth/tokens),拼接起来如下所示。 https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens 图1 URI示意图 为查看方便,在每个具体API的URI部分,只给出resource-path部分,并将请求方法写在一起。这是因为URI-scheme都是HTTPS,同一个服务的Endpoint在同一个区域也相同,所以简洁起见将这两部分省略。
  • 请求消息体 请求消息体通常以结构化格式发出,与请求消息头中Content-type对应,传递除请求消息头之外的内容。若请求消息体中参数支持中文,则中文字符必须为UTF-8编码。 每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消息体为空),GET、DELETE操作类型的接口就不需要消息体,消息体具体内容需要根据具体接口而定。 对于获取用户Token接口,您可以从接口的请求部分看到所需的请求参数及参数说明。将消息体加入后的请求如下所示,加粗的斜体字段需要根据实际值填写,其中username为用户名,domainname为用户所属的账号名称,********为用户登录密码,xxxxxxxxxxxxxxxxxx为project的名称,如“cn-north-1”,您可以从地区和终端节点获取,对应地区和终端节点页面的“区域”字段的值。 scope参数定义了Token的作用域,下面示例中获取的Token仅能访问project下的资源。您还可以设置Token作用域为某个账号下所有资源或账号的某个project下的资源,详细定义请参见获取用户Token。 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", "password": "********", "domain": { "name": "domainname" } } } }, "scope": { "project": { "name": "xxxxxxxxxxxxxxxxxx" } } } } 到这里为止这个请求需要的内容就具备齐全了,您可以使用curl、Postman或直接编写代码等方式发送请求调用API。对于获取用户Token接口,返回的响应消息头中“x-subject-token”就是需要获取的用户Token。有了Token之后,您就可以使用Token认证调用其他API。
  • 请求方法 HTTP请求方法(也称为操作或动词),它告诉服务你正在请求什么类型的操作。 GET:请求服务器返回指定资源。 PUT:请求服务器更新指定资源。 POST:请求服务器新增资源或执行特殊操作。 DELETE:请求服务器删除指定资源,如删除对象等。 HEAD:请求服务器资源头部。 PATCH:请求服务器更新资源的部分内容。当资源不存在的时候,PATCH可能会去创建一个新的资源。 在获取用户Token的URI部分,您可以看到其请求方法为“POST”,则其请求为: POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens
  • 请求消息头 附加请求头字段,如指定的URI和HTTP方法所要求的字段。例如定义消息体类型的请求头“Content-Type”,请求鉴权信息等。 如下公共消息头需要添加到请求中。 Content-Type:消息体的类型(格式),必选,默认取值为“application/json”,有其他取值时会在具体接口中专门说明。 X-Auth-Token:用户Token,可选,当使用Token方式认证时,必须填充该字段。用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 API同时支持使用AK/SK认证,AK/SK认证是使用SDK对请求进行签名,签名过程会自动往请求中添加Authorization(签名认证信息)和X-Sdk-Date(请求发送的时间)请求头。 AK/SK认证的详细说明请参见AK/SK认证。 对于获取用户Token接口,由于不需要认证,所以只添加“Content-Type”即可,添加消息头后的请求如下所示。 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json
  • API概览 通过使用漏洞管理服务提供的接口,您可以完整的使用漏洞管理服务的所有功能。 类型 说明 网站域名管理 网站域名相关接口,包含创建域名、获取域名、删除域名,以及更新或获取域名配置。 网站任务管理 网站任务相关接口,包含创建扫描任务并启动、获取扫描任务详情、取消或重启扫描任务和获取域名的历史扫描任务。 网站报告管理 网站报告相关接口,包含获取扫描结果、业务风险扫描结果,以及更新漏洞的误报状态。 主机管理 主机相关接口,包含创建主机,获取主机,删除主机。 主机任务管理 主机任务相关接口,包含启动或停止扫描任务。 主机报告管理 主机报告相关接口,包含主机扫描结果获取。 主机组管理 主机组相关接口,包含主机组创建,获取,删除。
  • 基本概念 账号 用户注册时的账号,账号对其所拥有的资源及云服务具有完全的访问权限,可以重置用户密码、分配用户权限等。由于账号是付费主体,为了确保账号安全,建议您不要直接使用账号进行日常管理工作,而是创建用户并使用他们进行日常管理工作。 用户 由账号在IAM中创建的用户,是云服务的使用人员,具有身份凭证(密码和访问密钥)。 在我的凭证下,您可以查看账号ID和用户ID。通常在调用API的鉴权过程中,您需要用到账号、用户和密码等信息。 区域(Region) 从地理位置和网络时延维度划分,同一个Region内共享弹性计算、块存储、对象存储、VPC网络、弹性公网IP、镜像等公共服务。Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region。 详情请参见区域和可用区。 可用区(AZ,Availability Zone) 一个AZ是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高速光纤相连,以满足用户跨AZ构建高可用性系统的需求。 项目 区域默认对应一个项目,这个项目由系统预置,用来隔离物理区域间的资源(计算资源、存储资源和网络资源),以默认项目为单位进行授权,用户可以访问您账号中该区域的所有资源。如果您希望进行更加精细的权限控制,可以在区域默认的项目中创建子项目,并在子项目中创建资源,然后以子项目为单位进行授权,使得仅能访问特定子项目中资源,使得资源的权限控制更加精确。 图1 项目隔离模型 父主题: 使用前必读
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 items Array of HGHost objects 主机列表 数组长度:0 - 100 total Integer 主机总数 最小值:0 最大值:100 表5 HGHost 参数 参数类型 描述 auth_status Integer 主机授权状态: -1 未知 0 连接成功 1 不可达 2 登录失败 枚举值: -1 0 1 2 group_id String 主机组id 最小长度:0 最大长度:64 id String 主机id 最小长度:0 最大长度:64 ip String 主机ip 最小长度:0 最大长度:15 jumper_server_id String 跳板机id 最小长度:0 最大长度:64 last_scan_id String 最后一次扫描的id 最小长度:0 最大长度:64 last_scan_info ScanInfoDetail object name String 主机名 最小长度:0 最大长度:64 os_type String 主机操作系统类型 最小长度:0 最大长度:50 smb_credential_id String smb_credential_id 最小长度:0 最大长度:64 ssh_credential_id String ssh授权id 最小长度:0 最大长度:64 表6 ScanInfoDetail 参数 参数类型 描述 create_time Long 扫描任务创建时间 最小值:0 最大值:9223372036854775807 enable_weak_passwd Boolean 弱密码检查 end_time Long 扫描任务结束时间 最小值:0 最大值:9223372036854775807 progress Integer 任务进度 最小值:0 最大值:100 reason String 任务描述 最小长度:0 最大长度:10240 status Integer 扫描任务状态: 0 运行中 1 已完成 2 手动取消 3 等待中 4 扫描失败 5 等待定时调度 最小值:0 最大值:5 状态码: 400 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:0 最大长度:50 error_msg String 错误描述 最小长度:0 最大长度:256 状态码: 401 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:0 最大长度:50 error_msg String 错误描述 最小长度:0 最大长度:256 状态码: 418 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:0 最大长度:50 error_msg String 错误描述 最小长度:0 最大长度:256
  • URI GET /v3/{project_id}/hostscan/hosts 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 用户的project_id 最小长度:32 最大长度:32 表2 Query参数 参数 是否必选 参数类型 描述 group_id 否 String 主机组id 最小长度:1 最大长度:64 offset 否 Integer 分页查询,偏移量,表示从此偏移量开始查询 最小值:0 最大值:10000 缺省值:0 limit 否 Integer 分页查询,每页显示的条目数量 最小值:1 最大值:100 缺省值:5
  • 响应示例 状态码: 200 OK { "total" : 1, "items" : [ { "type" : "protocolvuln", "port" : "general-tcp", "title" : "Apache Log4j2 Remote Code Execution Vulnerability", "sa_id" : "Apache Log4j2 Remote Code Execution Vulnerability", "vuln_id" : "1.3.6.1.4.1.25623.1.0.301012-general-tcp", "severity" : "high", "topic" : "Apache Log4j2 Remote Code Execution Vulnerability", "description" : "Apache Log4j2 2.0-beta9 through 2.15.0 (excluding security releases 2.12.2, 2.12.3) JNDI features used in configuration, log messages, and parameters do not protect against attacker controlled LDAP and other JNDI related endpoints. \\nAn attacker who can control log messages or log message parameters can execute arbitrary code loaded from LDAP servers when message lookup substitution is enabled.\\nhttps://www.huaweicloud.com/notice/2021/20211210001621800.html\\n", "fix_advisory" : "Update log4j to 2.12.2, 2.16.0 or later. Ask application vendor for a fix.\\nPlease refer to https://www.huaweicloud.com/notice/2021/20211210001621800.html", "cve_list" : [ { "id" : "CVE-2021-44228", "link" : "" } ], "ref_link_list" : [ "" ], "vul_detect_result" : "/var/lib/docker/overlay2/54e1e225d711d77afc0e8cf6fa3dda0274c56659b21d214715ee53f18565789f/diff/root/sdkrend/log4j-core-2.8.2.jar\\n", "cvss_score" : "9.3", "cvss_version" : "", "cvss_vector" : "AV:N/AC:M/Au:N/C:C/I:C/A:C", "is_ignore" : false } ] }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 total Integer 主机漏洞总数 最小值:0 最大值:1000 items Array of HostVulnItem objects 主机漏洞信息列表 数组长度:0 - 1000 表5 HostVulnItem 参数 参数类型 描述 type String 漏洞类型 最小长度:0 最大长度:100 port String 扫描端口号 最小长度:0 最大长度:100 title String 漏洞标题 最小长度:0 最大长度:1000 sa_id String 漏洞公告ID 最小长度:0 最大长度:100 vuln_id String 漏洞ID 最小长度:1 最大长度:100 severity String 漏洞风险等级: high - 高风险 medium - 中风险 low - 低风险 hint - 提示 枚举值: high medium low hint topic String 漏洞摘要 最小长度:0 最大长度:1024 description String 漏洞描述 最小长度:0 最大长度:10240 solution String 漏洞提示建议 最小长度:0 最大长度:10240 fix_advisory String 漏洞修复建议 最小长度:0 最大长度:10240 fix_cmd String 漏洞修复指令 最小长度:0 最大长度:10240 cve_list Array of cve_list objects CVE漏洞列表 数组长度:0 - 100 ref_link_list Array of strings 参考信息链接列表 最小长度:0 最大长度:10000 数组长度:0 - 1000 component_list Array of component_list objects 内容列表 数组长度:0 - 1000 vul_detect_result String 检查结果 最小长度:0 最大长度:10240 cvss_score String CVSS分数信息 最小长度:0 最大长度:5 cvss_version String CVSS版本信息 最小长度:0 最大长度:5 cvss_vector String CVSS向量信息 最小长度:0 最大长度:100 is_ignore Boolean 是否误报 表6 cve_list 参数 参数类型 描述 id String CVE漏洞ID 最小长度:0 最大长度:100 link String CVE漏洞链接 最小长度:0 最大长度:100 表7 component_list 参数 参数类型 描述 componentName String 内容名称 最小长度:0 最大长度:1000 componentInstallVersion String 安装版本 最小长度:0 最大长度:1000 componentFixedVersion String 已经修复版本 最小长度:0 最大长度:1000 状态码: 400 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:0 最大长度:50 error_msg String 错误描述 最小长度:0 最大长度:256 状态码: 401 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:0 最大长度:50 error_msg String 错误描述 最小长度:0 最大长度:256 状态码: 418 表10 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:0 最大长度:50 error_msg String 错误描述 最小长度:0 最大长度:256