华为云用户手册

  • 混合云容灾约束与限制 支持容灾上云的VMware版本包括VMware vSphere 6.7和VMware vSphere 7.0。 当前仅支持对接ESXi实现VMware主机容灾上云,且暂不支持容灾回切。 为了获得更优的性能和操作体验,仅支持表2所列经过兼容性测试的操作系统执行容灾恢复。 暂时只支持系统盘组了单盘LVM的服务器云上恢复,暂不支持多盘LVM。 容灾带宽建议不低于100Mbits,VMware容灾上云的主机对应磁盘大小建议是整十数GB。 操作系统类型为Linux,需要设置虚拟机参数:disk.EnableUUID TRUE。 VMware的虚拟机磁盘只支持S CS I类型。 表2 恢复至云上服务器支持的操作系统 操作系统类型 版本范围 Windows Windows Server 2016 Windows Server 2019 CentOS CentOS 7.2 CentOS 7.6
  • 异步复制 表1 异步复制支持的操作系统版本 OS类型 OS版本 内核版本 位数 CentOS 7.2 3.10.0-327.el7.x86_64 3.10.0-1127.19.1.el7.x86_64 3.10.0-1160.6.1.el7.x86_64 64 7.3 3.10.0-514.el7.x86 64 64 7.4 3.10.0-693.el7.x86 64 64 7.5 3.10.0-862.el7.x86 64 64 7.6 3.10.0-957.el7.x86_64 3.10.0-1160.6.1.el7.x86_64 64 7.7 3.10.0-1062.el7.x86_64 64 7.9 3.10.0-1160.el7.x86_64 64 Redhat 7.4 3.10.0-693.el7.x86_64 64 7.9 3.10.0-1160.el7.x86_64 64 8.6 4.18.0-372.9.1.el8.x86_64 64 8.8 4.18.0-477.10.1.el8_8.x86_64 64 Windows windows server 2016 - 64 windows server 2019 - 64
  • 同步复制 表3 同步复制支持的操作系统版本 OS类型 OS版本 位数 Windows Windows Server 2008 R2 64 Windows Server 2012 R2 64 Windows Server 2016 64 RedHat Red Hat Enterprise Linux 6.10 64 Red Hat Enterprise Linux 7.5 64 CentOS CentOS 6.5 64 CentOS 6.8 64 CentOS 6.9 64 CentOS 7.2 64 CentOS 7.3 64 CentOS 7.4 64 SUSE SUSE Enterprise 12 SP2 64 Ubuntu Ubuntu 16.04 server 64
  • 产品基本概念 表1 公共概念 概念 说明 生产站点 正常情况下承载业务的数据中心机房,可以独立运行,对业务的正常运作起到直接支持作用。对于异步复制,生产站点指的是用户的本地数据中心、租户的服务器云主机所在的位置。对于同步复制,生产站点在创建保护组时指定,即租户的服务器所在的位置。 容灾站点 正常情况下不直接承载业务的机房,主要用于数据实时备份,在生产站点发生故障(计划性和非计划性)时可以通过执行容灾切换来接管业务,地理上不一定与业务管理中心接近,可以在同一个城市,也可以在不同的城市。 保护组 用于管理一组需要复制的服务器。一个保护组可以管理一个虚拟私有云下的服务器,租户拥有多个虚拟私有云时则需要创建多个保护组。 保护实例 一对拥有复制关系的服务器。保护实例仅属于一个特定的保护组,因此这对服务器所在位置与保护组的生产站点或容灾站点相同。 VBD VBD(Virtual Block Device)是云硬盘磁盘模式的一种。云硬盘的磁盘模式默认为VBD类型。VBD类型的云硬盘只支持简单的SCSI读写命令。适用于企业的日常办公应用以及开发测试等场景。 SCSI SCSI(Small Computer System Interface)是云硬盘磁盘模式的一种。SCSI类型的云硬盘支持SCSI指令透传,允许云服务器操作系统直接访问底层存储介质。除了简单的SCSI读写命令,SCSI类型的云硬盘还可以支持更高级的SCSI命令,例如持久锁预留,适用于通过锁机制保障数据安全的集群应用场景。 RPO 恢复点目标,一种业务切换策略,是数据丢失最少的容灾切换策略。以数据恢复点为目标,确保容灾切换所使用的数据为最新的备份数据。 RTO 恢复时间目标,为使中断对业务所带来的冲击最小化,关键业务从中断时间点恢复到预定可接受水平上的目标时间。具体体现为,从生产站点发起切换或故障切换操作起,至容灾站点的服务器开始运行为止的一段时间,不包括手动操作DNS配置,安全组配置或执行客户脚本等任何时间,RTO小于30分钟。 容灾演练 为了确保一旦发生故障切换后,容灾机能够正常接管业务而进行的操作。 通过容灾演练,模拟真实故障恢复场景,制定应急恢复预案,当真实故障发生时,通过预案快速恢复业务,提高业务连续性。 表2 异步复制 概念 说明 站点复制对 一对拥有复制关系的生产站点和容灾站点。 云容灾网关 云容灾网关将生产站点所有被容灾的服务器上的数据进行汇聚压缩,并同步到容灾站点。 代理客户端 代理客户端将所在服务器上的数据传输到云容灾网关。 开启保护 生产业务位于生产站点时,数据同步停止后可执行此操作,用来开始数据同步。 切换 将业务从用户的生产站点切换到容灾站点。切换后数据同步中断,保护实例的状态是切换完成。 切回 切换完成后,当前生产业务位于容灾站点,通过切回操作,可将生产业务从容灾站点切回到生产站点。切回完成后,数据不再进行同步。 反向重保护 切换完成后,数据不会自动反向同步(容灾站点到生产站点),保护实例处于停止保护状态,如需开始反向数据同步,需要进行反向重保护操作。 重保护 切回完成后,数据不会自动同步(生产站点到容灾站点),保护实例处于停止保护状态,如需开始数据同步,需要进行重保护操作。 停止保护 生产业务位于生产站点时,数据同步中或者同步完成后可执行此操作,用来停止数据同步。 表3 同步复制概念 概念 说明 复制对 一对拥有复制关系的云硬盘。复制对仅属于一个特定的保护组,且可以挂载给同一个保护组下的保护实例。 切换 临时关闭生产站点服务器进行计划性迁移,可将业务从生产站点可用区切换到容灾站点可用区。切换后容灾方向更改为从容灾站点到生产站点,容灾站点可用区内的服务器和云硬盘等资源可启动。 故障切换 系统将生产站点的业务强制置为不可启动,将容灾站点的业务设置为可启动。该动作影响保护组内的所有保护实例,故障切换后,租户需要启动容灾站点的服务器。故障切换后,保护组进入故障切换状态,并中断数据同步,需要通过重保护来恢复数据同步。 开启保护 在保护组创建后、数据同步停止后可执行此操作,用来开始数据复制,此时界面上有复制进度的提示,该动作影响保护组内的所有保护实例、复制对。 单击“开启保护”,保护组状态变为“同步中”,此时,保护组不允许停止保护。 重保护 在故障切换后可执行此操作,用来开始数据复制,此时界面上有复制进度的提示,该动作影响保护组内的所有保护实例、复制对。 故障切换操作后,单击“重保护”,保护组的状态变为“重新开启保护中”,此时,保护组不允许停止保护。 停止保护 在保护组的数据同步完成后可执行此操作,用来停止数据复制。停止完成后,保护状态变为可用。 挂载复制对 将一个复制对挂载给一个保护实例,等价于同时为保护实例中的两个服务器挂载复制对中的两个云硬盘。 卸载复制对 从一个保护实例中卸载一个复制对,等价于同时从保护实例中的两个服务器中卸载复制对中的两个云硬盘。 容灾方向 创建保护组时,选择的生产站点可用区到容灾站点可用区的数据复制方向。 切换操作会改变保护组的容灾方向,将生产站点可用区的业务切换到容灾站点可用区,容灾站点可用区的业务切换到生产站点可用区。 保护组状态 同步复制对某一个保护组进行创建、删除、开启保护、停止保护、切换、故障切换等操作之后的状态,表示该保护组资源的状态。 具体请参见《存储容灾服务接口参考》附录中的“保护组状态”。 同步状态 保护组的生产站点可用区与容灾站点可用区之间的数据复制状态。 所属VPC VPC即虚拟私有云,可以方便地管理、配置内部网络,进行安全、快捷的网络变更,不同虚拟私有云里面的服务器网络默认不通。所属VPC即保护组所在的虚拟私有云。 父主题: 基本概念
  • 状态码 状态码4xx:由于明显的客户端错误(例如,格式错误的请求语法、参数错误等),华为云会返回4xx错误码,请及时检查请求消息的正确性,重新发起请求。 状态码5xx:由于华为云系统原因,导致无法完成明显有效请求的处理,可及时联系华为云客服处理。 HTTP状态码 错误码 错误描述 400 CBC.0100 参数错误。 请根据“请求消息”中请求参数的描述检查输入的参数是否满足条件。 400 CBC.0101 参数无效。 400 CBC.50010059 一级经销商不允许关联子客户。 400 CBC.50010065 该伙伴是云经销商,其关联的总经销商已经摘牌退出,无法拓客创建关联关系。 400 CBC.99000038 客户登录名已经存在。 400 CBC.99000029 客户手机号已经存在。 400 CBC.99000031 客户登录名格式不合法。 400 CBC.5017 客户手机号格式不合法。 400 CBC.99000039 xaccountId重复。 400 CBC.99000004 客户向伙伴授权时发生异常。 400 CBC.99000030 手机号注册数量超过上限。 400 CBC.99000036 客户密码格式不合法。 400 CBC.99000037 您没有操作该云经销商的权限。 500 CBC.99000050 伙伴和子客户关联结果查询超时,请使用查询客户列表确认最终关联结果。 400 CBC.99000051 该手机号/邮箱已被华为报备,无法创建客户。 400 CBC.99004008 有验证码,但是已经失效。 400 CBC.99004009 有验证码,但是校验失败次数已经大于3。 400 CBC.99004010 校验客户端输入的验证码错误。 400 CBC.99005035 测试伙伴账号不能使用该接口。 401 CBC.0154 token非法/过期。 403 CBC.0151 访问拒绝。 500 CBC.0999 其他错误。 400 CBC.50010085 该伙伴企业目前处于受限状态,无法拓客创建关联关系。 400 CBC.50010086 该伙伴是云经销商,其关联的总经销商企业目前处于受限状态,无法拓客创建关联关系。
  • 响应消息 响应参数 参数 参数类型 取值范围 描述 error_code String 最大长度:16 状态码。具体请参考状态码。只有失败才会返回这个参数。 error_msg String 最大长度:1024 错误描述信息。只有失败才会返回这个参数。 domain_id String 最大长度:64 客户ID。 只有成功或者错误码在CBC.99000050时才会返回。 domain_name String 最大长度:64 客户的华为云账号名。 若请求参数中传递了此参数值,此处返回的响应值与请求参数中取值一致。 若请求参数中未传递此参数值,此处返回的响应值为系统随机生成的32位字符串。 只有成功时或者错误码在CBC.99000050时才会返回。 响应示例 HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 Content-Length: length Date: response time { "domain_id": "06a7969058802f0c0f01c00b91846780", "domain_name": "a0d736359ada40aab6502d1a828c1809" }
  • 请求消息 请求参数 参数 是否必选 参数类型 取值范围 描述 xaccount_id 是 String 最大长度:128 伙伴销售平台的用户唯一标识,该标识的具体值由伙伴分配。 xaccount_type 是 String 最大长度:64 华为分给合作伙伴的平台标识。 该标识的具体值由华为分配。获取方法请参见如何获取xaccountType的取值。 domain_name 否 String [5-32] 客户的华为云账号名。 如果为空,随机生成。 不能以“op_”或“shadow_”开头且不能全为数字。 校验长度(5到32位)和规则^([a-zA-Z_-]([a-zA-Z0-9_-])*)$。 此参数不携带或携带值为空串或携带值为null时,随机生成。 mobile_phone 否 String 最大长度:32 手机号。 目前系统只支持中国的手机号。 示例:13XXXXXXXXX 此参数不携带或携带值为null时,不被赋值;携带值为空串时,赋值为空串。 verification_code 否 String [6] 验证码。 请调用“发送验证码”接口获取。 如果手机号不存在,则不需要输入验证码。 此参数不携带或携带值为null时,不做处理;不支持携带值为空串。 password 否 String 长度:[8-32] 密码规则如下: 至少包含以下四种字符中的两种: 大写字母、小写字母、数字、特殊字符; 不能和账号名或倒序的账号名相同; 不能包含手机号。 如果为空,用户没有密码,则不能直接在华为云登录,只能通过伙伴系统SSO方式跳转到华为云。 此参数不携带或携带值为null时,密码随机生成;不支持携带值为空串。 is_close_market_ms 否 String 最大长度:10 是否关闭营销消息的发送。 true:关闭 false:不关闭(默认) 此参数不携带或携带值为空串或携带值为null时,赋值为false。 indirect_partner_id 否 String 最大长度:64 云经销商ID。获取方法请参见查询云经销商列表。 如果需要创建云经销商的子客户,必须携带该字段。除此之外,此参数不携带或携带值为空串或携带值为null,不做处理。 include_association_result 否 Boolean - 是否返回子客户的关联结果。 true:返回子客户和伙伴的关联结果 false:不返回子客户和伙伴的关联结果 默认值为false。 此参数不携带或携带值为空串或携带值为null时,赋值为false。 请求示例 POST https://bss.myhuaweicloud.com/v2/partners/sub-customers HTTP/1.1 Content-Type: application/json X-Auth-Token:MIIPAgYJKoZIhvcNAQcCo...ggg1BBIINPXsidG9rZ { "domain_name": "test", "mobile_phone": "188****8888", "verification_code": "253***", "xaccount_id": "35rey****", "xaccount_type": "***_IDP", "password": "*******", "is_close_market_ms": "true", "indirect_partner_id": "a0d736********aab6502d1a828c1809", "include_association_result": "false" }
  • 接口约束 该接口只允许使用合作伙伴AK/SK或者Token调用。 合作伙伴销售平台创建客户的页面必须体现华为云用户协议和隐私政策声明。 此接口会为客户创建委托授权,用于将合作伙伴的Token置换成客户Token,即允许合作伙伴以客户的身份做资源开通、查询等相关操作。因此合作伙伴销售平台在调用此接口前请先获得客户授权说明。 如果创建客户的时候输入手机号,在调用该接口前,请先调用“发送验证码”接口获取验证码。 自2022年8月1日起,密码长度至少为8个字符。
  • 功能介绍 在伙伴销售平台创建客户时同步创建华为云账号,并将客户在伙伴销售平台上的账号与华为云账号进行映射。同时,创建的华为云账号与伙伴账号关联绑定。 华为云总经销商(一级经销商)可以注册云经销商(二级经销商)的子客户。注册完成后,子客户可以自动和云经销商绑定。 调用该接口为客户创建华为云账号后,如果想从合作伙伴销售平台跳转至华为云官网,还需要进行SAML认证,具体请参见“Web UI方式”中的“SAML认证”。 如果创建的时候不输入手机号,那么客户将无法收到华为云发出的任何提醒短信,需要客户自己登录到华为云平台补充手机号。 调用“创建客户”接口时,华为云会同步创建华为云客户账号,将客户ID及账号名返回给伙伴平台,然后华为云异步完成客户与伙伴的关联。伙伴与客户的关联结果可通过“查询客户列表”查询。 默认会创建代售模式的客户。
  • 调用API获取项目ID 项目ID可以通过调用查询指定条件下的项目信息API获取。 获取项目ID的接口为“GET https://{Endpoint}/v3/projects”,其中{Endpoint}为 IAM 的终端节点,可以从地区和终端节点获取。 响应示例如下,例如DataArts Insight服务部署的区域为“cn-north-4”,应消息体中查找“name”为“cn-north-4”,其中projects下的“id”即为项目ID。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。通过调用IAM服务获取IAM用户Token接口,接口返回的响应消息头中“X-Subject-Token”就是需要获取的用户Token。 最小长度:0 最大长度:8192 表3 请求Body参数 参数 是否必选 参数类型 描述 user_name_list 是 Array of strings 用户名称列表。 最小长度:0 最大长度:512 数组长度:1-128 sys_role 是 Integer 通行证角色: 0未激活; 1通用用户; 2只读用户。 最小值:0 最大值:128
  • 调用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不同,使用时请注意。
  • 请求方法 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
  • 请求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。
  • 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
  • URI GET /v3/{project_id}/hostscan/hosts/{host_id}/sys-vulns 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 用户的project_id 最小长度:32 最大长度:32 host_id 是 String 主机ID 最小长度:1 最大长度:64 表2 Query参数 参数 是否必选 参数类型 描述 scan_id 是 String 扫描ID 最小长度:1 最大长度:64 offset 否 Integer 分页查询,偏移量,表示从此偏移量开始查询 最小值:0 最大值:10000 缺省值:0 limit 否 Integer 分页查询,每页显示的条目数量 最小值:1 最大值:100 缺省值:5
  • URI GET /v3/{project_id}/hostscan/groups 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String project_id 最小长度:32 最大长度:32 表2 Query参数 参数 是否必选 参数类型 描述 offset 否 Integer 分页查询,偏移量,表示从此偏移量开始查询 最小值:0 最大值:200 缺省值:0 limit 否 Integer 分页查询,每页显示的条目数量 最小值:1 最大值:100 缺省值:5
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 total Integer 群组总数 最小值:0 最大值:1000 items Array of Group objects 群组列表 数组长度:0 - 1000 表5 Group 参数 参数类型 描述 id String 群组ID 最小长度:1 最大长度:64 name String 群组名称 最小长度:1 最大长度:24 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:0 最大长度:50 error_msg String 错误描述 最小长度:0 最大长度:256 状态码: 401 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:0 最大长度:50 error_msg String 错误描述 最小长度:0 最大长度:256 状态码: 418 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:0 最大长度:50 error_msg String 错误描述 最小长度:0 最大长度:256
  • 错误码 当您调用API时,如果遇到“APIGW”开头的错误码,请参见API网关错误码进行处理。 状态码 错误码 错误信息 描述 处理措施 418 VSS.00002002 Failed to create a job. 任务创建失败 请检查任务信息 418 VSS.00002003 Failed to start a job, please try again later. 任务启动失败,请稍后重试 请稍后重试 418 VSS.00002004 Failed to restart a job. 任务重启失败 请检查任务信息 418 VSS.00002008 The task does not exist. 任务不存在 请检查任务ID 418 VSS.00002009 The number of scan jobs per day has reached the maximum allowed limit. 一天内扫描任务的数量达到最大值 请升级套餐 418 VSS.00002011 Generating report, please do not repeat the operation. 报告正在生成中,请勿重复操作 请勿重复操作 418 VSS.00002012 The report has not been generated, please download it after generating the report. 报告未生成,请生成报告后下载 请生成报告后下载 418 VSS.00002013 The report has expired, please regenerate and download later. 报告已过期,请重新生成后下载 请重新生成报告后下载 418 VSS.00002014 Report download failed, please regenerate and download later. 报告下载失败,请重新生成后下载 请重新生成报告后下载 418 VSS.00002023 The task has ended, the task cannot be canceled. 任务已经结束,不能取消任务 请检查任务信息 418 VSS.00002024 The task is running, the task cannot be restarted. 任务正在运行,不能重启任务 请检查任务信息 418 VSS.00002025 Scanning the same site is not allowed. 不能同时扫描同一个站点 请检查任务信息 418 VSS.00003100 The vulnerability does not exist. 漏洞不存在或者没有权限查看 请检查漏洞ID 418 VSS.00006001 No domain information found. 找不到域名信息 请检查域名信息 418 VSS.00006002 Incorrect request parameter. 错误的请求参数 请检查请求参数 418 VSS.00006004 The maximum number of domain names has been reached. 域名数量超过限制 请检查创建的域名数量 418 VSS.00006005 File authentication is offline, please use other methods to verify the domain name. 文件认证已下线,请使用其他认证方式 请使用其他认证方式 418 VSS.00006009 Failed to add the domain name. 创建域名失败 请检查域名配置 418 VSS.00006010 Failed to update the domain information. 更新域名失败 请检查域名配置 418 VSS.00006012 The domain name ownership is not verified. 域名未认证 请对域名所有权进行认证 418 VSS.00006015 Failed to modify the domain name. 修改域名名称失败 请检查域名名称 418 VSS.00006016 Invalid domain parameter. 无效的域名参数 请检查域名 418 VSS.00006017 Failed to delete the domain name. Check whether there are running jobs for the domain name. 删除域名失败 请检查该域名下是否有任务正在运行 418 VSS.00006018 The domain name already exists. 域名已存在 请检查域名 418 VSS.00006020 Failed to verify the ownership of your domain name on HUAWEI CLOUD. 云上租户域名认证失败 请检查云上租户域名 418 VSS.00006021 The domain name cannot be deleted because a scan job is running. 该域名下有任务正在运行,暂时不能删除该域名 请检查正在运行的扫描任务 418 VSS.00006022 The domain name does not exist. 域名不存在 请检查域名 418 VSS.00006024 This function is not supported in your region now. 该地区暂不支持此功能 请使用其他认证方式 418 VSS.00006028 The address of verified domain name cannot be changed. 不能更改已认证域名的地址 请重新输入域名 418 VSS.00006029 Quick verification is not supported. 不支持快捷认证 请使用其他认证方式 418 VSS.00006030 Real name verification not finished. 用户未实名 请使用其他认证方式 418 VSS.00006031 Violations found. 用户存在违规情况 请使用其他认证方式 418 VSS.00006032 Domain name has been verified. 域名已认证 无需重复认证 父主题: 附录
共100000条