所有文档

          DDoS防护服务

          概述

          简介

          自有高防调度,是指用自有高防实例为遭受攻击的IP进行DNS调度。首先,用户在百度智能云管理控制台购买高防实例,并配置好转发规则;在IP遭受攻击时,用户手动调用触发调度接口,将流量调度到高防机房,经高防机房清洗攻击流量后,根据已有高防实例配置好的转发规则,将正常流量回源到指定目标;攻击结束时,用户手动调用解除调度动作接口,流量正常到达IP。该场景配置时,需要指定调度IP、private区域、高防实例。

          如果您是初次调用百度智能云产品的API,可以观看API入门视频指南,快速掌握调用API的能力。

          服务域名

          产品是全局产品,服务域名为adas.baidubce.com。

          通用说明

          API调用遵循HTTP协议,数据交换格式为JSON,所有request/response body内容均采用UTF-8编码。URL参数中所使用的IP均使用点分十进制表示。

          API认证机制

          所有API的安全认证一律采用Access Key与请求签名机制。 Access Key由Access Key ID和Secret Access Key组成,均为字符串。 对于每个HTTP请求,使用下面所描述的算法生成一个认证字符串。提交认证字符串放在Authorization头域里。服务端根据生成算法验证认证字符串的正确性。 认证字符串的格式为bce-auth-v{version}/{accessKeyId}/{timestamp}/{expirationPeriodInSeconds}/{signedHeaders}/{signature}

          • version是正整数。
          • timestamp是生成签名时的UTC时间。
          • expirationPeriodInSeconds表示签名有效期限。
          • signedHeaders是签名算法中涉及到的头域列表。头域名之间用分号(;)分隔,如host;x-bce-date。列表按照字典序排列。(本API签名仅使用host和x-bce-date两个header)
          • signature是256位签名的十六进制表示,由64个小写字母组成。

          当百度智能云接收到用户的请求后,系统将使用相同的SK和同样的认证机制生成认证字符串,并与用户请求中包含的认证字符串进行比对。如果认证字符串相同,系统认为用户拥有指定的操作权限,并执行相关操作;如果认证字符串不同,系统将忽略该操作并返回错误码。

          鉴权认证机制的详细内容请参见鉴权认证

          幂等性

          当调用某些接口时如果遇到了请求超时或服务器内部错误,用户可能会尝试重发请求,这时用户通过clientToken参数避免创建出比预期要多的资源,即保证请求的幂等性。

          幂等性基于clientToken,clientToken是一个长度不超过64位的ASCII字符串,通常放在query string里,如http://bcc.bj.baidubce.com/v1/instance?clientToken=be31b98c-5e41-4838-9830-9be700de5a20

          如果用户使用同一个clientToken值调用创建接口,则服务端会返回相同的请求结果。因此用户在遇到错误进行重试的时候,可以通过提供相同的clientToken值,来确保只创建一个资源;如果用户提供了一个已经使用过的clientToken,但其他请求参数(包括queryString和requestBody)不同甚至url Path不同,则会返回IdempotentParameterMismatch的错误代码。

          clientToken的有效期为24小时,以服务端最后一次收到该clientToken为准。也就是说,如果客户端不断发送同一个clientToken,那么该clientToken将长期有效。

          日期与时间规范

          日期与时间的表示有多种方式。为统一起见,除非是约定俗成或者有相应规范的,凡需要日期时间表示的地方一律采用UTC时间,遵循ISO 8601,并做以下约束:

          1. 表示日期一律采用YYYY-MM-DD方式,例如2014-06-01表示2014年6月1日
          2. 表示时间一律采用hh:mm:ss方式,并在最后加一个大写字母Z表示UTC时间。例如23:00:10Z表示UTC时间23点0分10秒。
          3. 凡涉及日期和时间合并表示时,在两者中间加大写字母T,例如2014-06-01T23:00:10Z表示UTC时间2014年6月1日23点0分10秒。

          请求参数

          请求参数包括如下4种:

          参数类型 说明
          URI 通常用于指明操作实体,如:PUT /v1/schedule/{scheduleId}
          Query参数 URL中携带的请求参数
          HEADER 通过HTTP头域传入,如:x-bce-date
          Requestbody 通过JSON格式组织的请求数据体

          返回值说明

          返回值分为两种形式:

          返回内容 说明
          HTTP STATUS CODE 如200,400,403,404等
          ResponseBody JSON格式组织的响应数据体

          公共请求头

          下表列出了所有AdasSchedule API所携带的公共头域。HTTP协议的标准头域不在此处列出

          头域(HEADER) 是否必须 说明
          Authorization 包含Access Key与请求签名
          Content-Type application/json; charset=utf-8
          x-bce-date 表示日期的字符串,符合BCE API规范

          公共响应头

          下表列出了所有AdasSchedule API的公共响应头域。HTTP协议的标准响应头域不在此处列出

          头域(HEADER) 说明
          Content-Type 只支持JSON格式,application/json; charset=utf-8
          x-bce-request-id AdasSchedule后端生成,并自动设置到响应头域中

          错误码

          请求发生错误时通过respone body返回详细错误信息,遵循如下格式:

          参数名 类型 说明
          code String 错误码
          message String 错误描述
          requestId String 本次请求的requestId

          示例:

          {
          	"requestId" : "ae2225f7-1c2e-427a-a1ad-5413b762957d",
          	"code" : "NoSuchKey",
          	"message" : "The resource you requested does not exist"
          }

          公共错误码

          错误码 消息 HTTP状态码 语义
          AccessDenied Access denied. 403 Forbidden 无权限访问对应的资源
          InappropriateJSON The JSON you provided was well-formed and valid, but not appropriate for this operation. 400 Bad Request 请求中的JSON格式正确,但语义上不符合要求。如缺少某个必需项,或者值类型不匹配等。出于兼容性考虑,对于所有无法识别的项应直接忽略,不应该返回这个错误。
          InternalError We encountered an internal error. Please try again. 500Internal Server Error 所有未定义的其他错误。在有明确对应的其他类型的错误时(包括通用的和服务自定义的)不应该使用。
          InvalidAccessKeyId The Access Key ID you provided does not exist in our records. 403 Forbidden Access Key ID不存在
          InvalidHTTPAuthHeader The HTTP authorization header is invalid. Consult the service documentation for details. 400 Bad Request Authorization头域格式错误
          InvalidHTTPRequest There was an error in the body of your HTTP request. 400 Bad Request HTTP body格式错误。例如不符合指定的Encoding等
          InvalidURI Could not parse the specified URI. 400 Bad Request URI形式不正确。例如一些服务定义的关键词不匹配等。对于ID不匹配等问题,应定义更加具体的错误码,例如NoSuchKey。
          MalformedJSON The JSON you provided was not well-formed. 400 Bad Request JSON格式不合法
          InvalidVersion The API version specified was invalid. 404 Not Found URI的版本号不合法
          OptInRequired A subscription for the service is required. 403 Forbidden 没有开通对应的服务
          PreconditionFailed The specified If-Match header doesn't match the ETag header. 412 Precondition Failed 详见ETag
          RequestExpired Request has expired. Timestamp date is XXX. 400 Bad Request 请求超时。XXX要改成x-bce-date的值。如果请求中只有Date,则需要将Date转换为datetime。
          IdempotentParameterMismatch The request uses the same client token as a previous, but non-identical request. 403 Forbidden clientToken对应的API参数不一样。
          SignatureDoesNotMatch The request signature we calculated does not match the signature you provided. Check your Secret Access Key and signing method. Consult the service documentation for details. 400 Bad Request Authorization头域中附带的签名和服务端验证不一致

          AdasSchedule业务错误码

          错误码 错误描述 HTTP状态码 语义
          ScheduleInstanceNotFound The specified schedule instance does not exist. 404 调度实例不存在
          UnsupportedScheduleInstanceOperation The status of specified schedule instance does not support this operation. 400 指定的调度实例状态不支持此类型操作
          AdasInstanceIsInvalid The specified adas instance is invalid. 400 高防实例不合理
          ScheduleNatAlreadyExist The specified schedule nat already exist. 400 调度nat已经存在
          ScheduleNatNotFound The specified schedule nat does not exist. 404 调度nat不存在
          VpcInstanceNotFound The specified vpc instance does not exist. 404 vpc实例不存在
          NatInstanceNotFound The specified nat instance does not exist. 404 nat实例不存在

          名词解释

          下表列出了所有AdasSchedule API的涉及到的关键名词及解释。

          名词 解释
          调度实例IP 需要配置调度服务的IP,为用户自有IP
          高防实例IP 用户预先配置的高防实例IP
          高防回源IP 调度发生后,高防回源到用户后端服务器的流量的源IP
          高防调度域名 正常情况下,解析到调度实例IP;调度发生后,解析到高防实例IP
          上一篇
          高防自动化调度API参考
          下一篇
          调度实例相关接口