更新云模式防护域名的配置
功能介绍
更新云模式防护域名配置,在没有填入源站信息server的原始数据的情况下,则新的源站信息server会覆盖源站信息,而不是新增源站。此外,请求体可只传需要更新的部分。
URI
PATCH /v1/{project_id}/waf/instance/{instance_id}
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| project_id | 是 | String | 项目ID,对应控制台用户名->我的凭证->项目列表->项目ID |
| instance_id | 是 | String | 域名id,您可以通过调用查询云模式防护域名列表(ListHost)获取域名id |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| enterprise_project_id | 否 | String | 您可以通过调用企业项目管理服务(EPS)的查询企业项目列表接口(ListEnterpriseProject)查询企业项目id |
请求参数
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| X-Auth-Token | 是 | String | 用户Token,通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 |
| Content-Type | 是 | String | 内容类型 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| proxy | 否 | Boolean | 防护域名是否使用代理 |
| certificateid | 否 | String | 证书id,通过查询证书列表接口(ListCertificates)接口获取证书id |
| certificatename | 否 | String | 证书名 |
| server | 否 | Array of CloudWafServer objects | 防护域名的源站服务器配置信息 |
| tls | 否 | String | 配置的最低TLS版本(TLS v1.0/TLS v1.1/TLS v1.2),默认为TLS v1.0版本,对于低于最低TLS版本的请求,将无法正常访问网站 |
| cipher | 否 | String | 加密套件(cipher_1,cipher_2,cipher_3,cipher_4,cipher_default):
|
| http2_enable | 否 | Boolean | 是否支持http2 |
| ipv6_enable | 否 | Boolean | 是否开启IPv6防护,仅专业版(原企业版)和铂金版(原旗舰版)支持IPv6防护。 |
| web_tag | 否 | String | 网站名称,对应WAF控制台域名详情中的网站名称 |
| exclusive_ip | 否 | Boolean | 是否使用用户独享的引擎公网ip,该参数为预留参数,用于后续功能扩展,用户可忽略 |
| paid_type | 否 | String | 套餐付费模式,postPaid:按需模式。 |
| block_page | 否 | BlockPage object | 告警页面配置 |
| traffic_mark | 否 | TrafficMark object | 流量标识 |
| flag | 否 | Flag object | 特殊标识,用于前端使用 |
| extend | 否 | Map<String,String> | 扩展字段,用于保存防护域名的一些配置信息。 |
| circuit_breaker | 否 | CircuitBreaker object | 熔断配置 |
| timeout_config | 否 | TimeoutConfig object | 超时配置 |
| forward_header_map | 否 | Map<String,String> | 字段转发配置,WAF会将添加的字段插到header中,转给源站;Key不能跟nginx原生字段重复。Value支持的值包括: |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| front_protocol | 是 | String | 客户端请求访问防护域名源站服务器的协议 |
| back_protocol | 是 | String | WAF转发客户端请求到防护域名源站服务器的协议 |
| weight | 否 | Integer | 源站权重,负载均衡算法将按该权重将请求分配给源站,默认值是1,云模式的冗余字段 |
| address | 是 | String | 客户端访问的源站服务器的IP地址 |
| port | 是 | Integer | WAF转发客户端请求到源站服务的业务端口 |
| type | 是 | String | 源站地址为ipv4或ipv6 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| template | 是 | String | 模板名称 |
| custom_page | 否 | CustomPage object | 自定义告警页面 |
| redirect_url | 否 | String | “重定向”页面URL |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| status_code | 是 | String | 返回状态码 |
| content_type | 是 | String | “自定义”告警页面内容类型,可选择text/html、text/xml和application/json三种类型 |
| content | 是 | String | 根据选择的“页面类型”配置对应的页面内容,具体示例可以参考“Web应用防火墙 WAF”用户手册 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| sip | 否 | Array of strings | IP标记,客户端最原始的IP地址的HTTP请求头字段。 |
| cookie | 否 | String | Session标记,用于Cookie恶意请求的攻击惩罚功能。在选择Cookie拦截的攻击惩罚功能前,必须配置该标识 |
| params | 否 | String | User标记,用于Params恶意请求的攻击惩罚功能。在选择Params拦截的攻击惩罚功能前,必须配置该标识。 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| pci_3ds | 否 | String | 是否开启pci_3ds合规认证 |
| pci_dss | 否 | String | 是否开启pci_dss合规认证 |
| cname | 否 | String | old:代表域名使用的老的cname,new:代表域名使用新的cname |
| is_dual_az | 否 | String | 是否支持双AZ模式 |
| ipv6 | 否 | String | 域名是否开启ipv6 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| switch | 否 | Boolean | 熔断开关,是否开启连接保护 |
| dead_num | 否 | Integer | 502/504数量阈值,每30s累加的502/504数量阈值 |
| dead_ratio | 否 | Number | 502/504数量占比(%),总请求数量中502/504数量占比达到所设定值,并且与数量阈值同时满足时触发宕机保护 |
| block_time | 否 | Integer | 初次触发宕机的保护时间,即WAF将停止转发用户请求的时间。 |
| superposition_num | 否 | Integer | 连续触发时,保护时间延长最大倍数,叠加周期为3600s。例如,“初次保护时间”设置为180s,“连续触发叠加系数”设置为3。 |
| suspend_num | 否 | Integer | 读等待URL请求数量阈值,读等待URL请求数量到达设定值即触发连接保护 |
| sus_block_time | 否 | Integer | 读等待URL请求数量超过阈值后的熔断时间,达到数量阈值所触发的保护时间,即WAF将停止转发用户请求的时间。 |
响应参数
状态码:200
| 参数 | 参数类型 | 描述 |
|---|---|---|
| id | String | 域名id |
| hostname | String | 创建的云模式防护域名 |
| policyid | String | 防护域名的防护策略id |
| domainid | String | 账号ID,对应控制台用户名->我的凭证->账号ID |
| projectid | String | 项目ID,对应控制台用户名->我的凭证->项目列表->项目ID |
| enterprise_project_id | String | 企业项目ID,对应控制台用户名->企业->项目管理->点击项目名称->ID |
| protocol | String | 后端包含的协议类型:HTTPS、HTTP、HTTP&HTTPS |
| server | Array of CloudWafServer objects | 防护域名的源站服务器配置信息 |
| proxy | Boolean | 防护域名是否使用代理 |
| protect_status | Integer | 域名防护状态: |
| access_status | Integer | 域名接入状态,0表示未接入,1表示已接入 |
| access_code | String | cname前缀 |
| locked | Integer | 预留参数,用于后期设计冻结域名,解锁域名功能,目前暂不支持 |
| timestamp | Long | 创建防护域名的时间戳(毫秒) |
| certificateid | String | https证书id |
| certificatename | String | 证书名称 |
| tls | String | 配置的最低TLS版本(TLS v1.0/TLS v1.1/TLS v1.2),默认为TLS v1.0版本,对于低于最低TLS版本的请求,将无法正常访问网站 |
| cipher | String | 加密套件(cipher_1,cipher_2,cipher_3,cipher_4,cipher_default):
|
| block_page | BlockPage object | 告警页面配置 |
| extend | Map<String,String> | 扩展字段,用于保存防护域名的一些配置信息。 |
| web_tag | String | 网站名称,对应WAF控制台域名详情中的网站名称 |
| traffic_mark | TrafficMark object | 流量标识 |
| circuit_breaker | CircuitBreaker object | 熔断配置 |
| lb_algorithm | String | LB负载均衡,仅专业版(原企业版)和铂金版(原旗舰版)支持配置负载均衡算法 |
| timeout_config | TimeoutConfig object | 超时配置 |
| flag | Flag object | 特殊标识,用于前端使用 |
| description | String | 网站备注 |
| http2_enable | Boolean | 是否支持http2 |
| exclusive_ip | Boolean | 是否使用用户独享的引擎公网ip,该参数为预留参数,用于后续功能扩展,用户可忽略 |
| access_progress | Array of Access_progress objects | 接入进度,仅用于新版console(前端)使用 |
| forward_header_map | Map<String,String> | 字段转发配置,WAF会将添加的字段插到header中,转给源站;Key不能跟nginx原生字段重复。Value支持的值包括: -$origin_uri |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| front_protocol | String | 客户端请求访问防护域名源站服务器的协议 |
| back_protocol | String | WAF转发客户端请求到防护域名源站服务器的协议 |
| weight | Integer | 源站权重,负载均衡算法将按该权重将请求分配给源站,默认值是1,云模式的冗余字段 |
| address | String | 客户端访问的源站服务器的IP地址 |
| port | Integer | WAF转发客户端请求到源站服务的业务端口 |
| type | String | 源站地址为ipv4或ipv6 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| template | String | 模板名称 |
| custom_page | CustomPage object | 自定义告警页面 |
| redirect_url | String | “重定向”页面URL |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| status_code | String | 返回状态码 |
| content_type | String | “自定义”告警页面内容类型,可选择text/html、text/xml和application/json三种类型 |
| content | String | 根据选择的“页面类型”配置对应的页面内容,具体示例可以参考“Web应用防火墙 WAF”用户手册 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| sip | Array of strings | IP标记,客户端最原始的IP地址的HTTP请求头字段。 |
| cookie | String | Session标记,用于Cookie恶意请求的攻击惩罚功能。在选择Cookie拦截的攻击惩罚功能前,必须配置该标识 |
| params | String | User标记,用于Params恶意请求的攻击惩罚功能。在选择Params拦截的攻击惩罚功能前,必须配置该标识。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| switch | Boolean | 熔断开关,是否开启连接保护 |
| dead_num | Integer | 502/504数量阈值,每30s累加的502/504数量阈值 |
| dead_ratio | Number | 502/504数量占比(%),总请求数量中502/504数量占比达到所设定值,并且与数量阈值同时满足时触发宕机保护 |
| block_time | Integer | 初次触发宕机的保护时间,即WAF将停止转发用户请求的时间。 |
| superposition_num | Integer | 连续触发时,保护时间延长最大倍数,叠加周期为3600s。例如,“初次保护时间”设置为180s,“连续触发叠加系数”设置为3。 |
| suspend_num | Integer | 读等待URL请求数量阈值,读等待URL请求数量到达设定值即触发连接保护 |
| sus_block_time | Integer | 读等待URL请求数量超过阈值后的熔断时间,达到数量阈值所触发的保护时间,即WAF将停止转发用户请求的时间。 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| connect_timeout | Integer | WAF连接源站超时配置 |
| send_timeout | Integer | WAF发送请求到源站超时配置 |
| read_timeout | Integer | WAF接收源站响应超时配置 |
| 参数 | 参数类型 | 描述 |
|---|---|---|
| pci_3ds | String | 是否开启pci_3ds合规认证 |
| pci_dss | String | 是否开启pci_dss合规认证 |
| cname | String | old:代表域名使用的老的cname,new:代表域名使用新的cname |
| is_dual_az | String | 是否支持双AZ模式 |
| ipv6 | String | 域名是否开启ipv6 |
状态码:400
| 参数 | 参数类型 | 描述 |
|---|---|---|
| error_code | String | 错误码 |
| error_msg | String | 错误信息 |
状态码:401
| 参数 | 参数类型 | 描述 |
|---|---|---|
| error_code | String | 错误码 |
| error_msg | String | 错误信息 |
状态码:500
| 参数 | 参数类型 | 描述 |
|---|---|---|
| error_code | String | 错误码 |
| error_msg | String | 错误信息 |
请求示例
更新项目id为project_id,域名id是instance_id的域名下的两个源站服务器,第一个源站服务器的IP地址是x.x.x.x,端口号是80,源站地址是ipv4的,源站权重是1,客户端请求访问防护域名源站服务器的协议和WAF转发客户端请求到防护域名源站服务器的协议都是HTTP协议;第二个源站服务器的IP地址是x.x.x.x,端口号是80,源站地址是ipv4的,客户端请求访问防护域名源站服务器的协议和WAF转发客户端请求到防护域名源站服务器的协议都是HTTP协议;域名关闭了ipv6防护。
PATCH https://{Endpoint}/v1/{project_id}/waf/instance/{instance_id}?enterprise_project_id=0
{
"server" : [ {
"address" : "x.x.x.x",
"port" : "80",
"type" : "ipv4",
"weight" : 1,
"front_protocol" : "HTTP",
"back_protocol" : "HTTP"
}, {
"front_protocol" : "HTTP",
"back_protocol" : "HTTP",
"type" : "ipv4",
"address" : "x.x.x.x",
"port" : "80"
} ],
"ipv6_enable" : false
} 响应示例
状态码:200
OK
{
"id" : "e91ad96e379b4bea84f8fcda3d153370",
"hostname" : "www.demo.com",
"protocol" : "HTTP",
"server" : [ {
"address" : "x.x.x.x",
"port" : 80,
"type" : "ipv4",
"weight" : 1,
"front_protocol" : "HTTP",
"back_protocol" : "HTTP"
}, {
"address" : "1.1.1.4",
"port" : 80,
"type" : "ipv4",
"weight" : 1,
"front_protocol" : "HTTP",
"back_protocol" : "HTTP"
} ],
"proxy" : false,
"locked" : 0,
"timestamp" : 1650423573577,
"flag" : {
"pci_3ds" : "false",
"pci_dss" : "false",
"ipv6" : "false",
"cname" : "new",
"is_dual_az" : "true"
},
"description" : "",
"policyid" : "f385eceedf7c4c34a4d1def19eafbe85",
"domainid" : "d4ecb00b031941ce9171b7bc3386883f",
"projectid" : "0456cf04d6f64725ab02ed5bd2efdfa4",
"enterprise_project_id" : "0",
"protect_status" : 1,
"access_status" : 0,
"access_code" : "4f5372610cdc44f7970759fcca138c81",
"block_page" : {
"template" : "default"
},
"web_tag" : "we",
"exclusive_ip" : false,
"http2_enable" : false
} 状态码
| 状态码 | 描述 |
|---|---|
| 200 | OK |
| 400 | 请求失败 |
| 401 | token权限不足 |
| 500 | 服务器内部错误 |
错误码
请参见错误码。