创建ACL规则
功能介绍
创建ACL规则
URI
POST /v1/{project_id}/acl-rule
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
project_id | 是 | String | 项目ID, 可以从调API处获取,也可以从控制台获取。项目ID获取方式 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
enterprise_project_id | 否 | String | 企业项目ID,用户根据组织规划企业项目,对应的ID为企业项目ID,可通过如何获取企业项目ID获取,用户未开启企业项目时为0 |
fw_instance_id | 否 | String | 防火墙id,可通过防火墙ID获取方式获取 |
请求参数
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
X-Auth-Token | 是 | String | 用户Token。可通过如何获取用户Token获取。 |
Content-Type | 是 | String | 内容类型,只有application/json的值是适用的 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
object_id | 是 | String | 防护对象id,是创建云防火墙后用于区分互联网边界防护和VPC边界防护的标志id,可通过调用查询防火墙实例接口获得,通过返回值中的data.records.protect_objects.object_id(.表示各对象之间层级的区分)获得,注意type为0的为互联网边界防护对象id,type为1的为VPC边界防护对象id,type可通过data.records.protect_objects.type(.表示各对象之间层级的区分)获得 |
type | 是 | Integer | 规则类型,0:互联网边界规则,1:vpc间规则,2:nat规则,当type取0时,规则源和目的地址需要为公网ip或域名,vpc间规则需要源和目的地址为私有ip,nat规则需要源地址为私网ip,目的地址为公网ip或域名。 |
rules | 是 | Array of rules objects | 添加规则请求规则列表 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
name | 是 | String | 规则名称 |
sequence | 是 | OrderRuleAclDto object | 修改规则顺序请求体 |
address_type | 是 | Integer | 地址Internet协议类型0 ipv4,1 ipv6 |
action_type | 是 | Integer | 规则动作,0表示允许通行(permit),1表示拒绝通行(deny) |
status | 是 | Integer | 规则启用状态,0表示禁用,1表示启用 |
applications | 否 | Array of strings | 规则应用列表,规则应用类型包括:“HTTP”,"HTTPS","TLS1",“DNS”,“SSH”,“MYSQL”,“SMTP”,“RDP”,“RDPS”,“VNC”,“POP3”,“IMAP4”,“SMTPS”,“POP3S”,“FTPS”,“ANY”,“BGP”等。 |
applicationsJsonString | 否 | String | 应用列表applications字段转化的json字符串。 |
long_connect_time | 否 | Long | 长连接时长 |
long_connect_time_hour | 否 | Long | 长连接时长对应小时 |
long_connect_time_minute | 否 | Long | 长连接时长对应分钟 |
long_connect_time_second | 否 | Long | 长连接时长秒 |
long_connect_enable | 是 | Integer | 是否支持长连接,0表示不支持长连接,1表示支持长连接 |
description | 否 | String | 描述 |
direction | 否 | Integer | 方向:0表示外到内,1表示内到外,规则type=0(互联网规则)或者type=2(nat规则)时方向值必填 |
source | 是 | RuleAddressDtoForRequest object | 源地址传输对象 |
destination | 是 | RuleAddressDtoForRequest object | 目的地址传输对象 |
service | 是 | RuleServiceDto object | 服务对象 |
tag | 否 | TagsVO object | 规则附带标签对象 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
dest_rule_id | 否 | String | 目标规则id,添加规则位于此规则之后,非置顶时不能为空,置顶时为空,目标规则id可以通过查询防护规则接口获得,通过返回值中的data.records.rule_id(.表示各对象之间层级的区分)获得。 |
top | 否 | Integer | 是否置顶,0代表非置顶,1代表置顶 |
bottom | 否 | Integer | 是否置底,0代表非置底,1代表置底 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
type | 是 | Integer | 地址类型0手工输入,1关联IP地址组,2域名,3地理位置,4域名组,5多对象,6域名组-网络型,7域名组-应用型。 |
address_type | 否 | Integer | 地址Internet协议类型0 ipv4,1 ipv6,当type为0手动输入类型时不能为空 |
address | 否 | String | IP地址信息,当type为0手动输入类型时不能为空 |
address_set_id | 否 | String | 关联IP地址组ID,当type为1关联IP地址组类型时不能为空,可通过查询地址组列表接口查询获得,通过返回值中的data.records.set_id(.表示各对象之间层级的区分)获得。 |
address_set_name | 否 | String | 关联IP地址组名称,当type为1关联IP地址组类型时不能为空,可通过查询地址组列表接口查询获得,通过返回值中的data.records.name(.表示各对象之间层级的区分)获得。 |
domain_address_name | 否 | String | type为2(域名)和7(应用域名组)具体内容根据type中7修改后的类型名称 |
region_list_json | 否 | String | 规则地域列表json值 |
region_list | 否 | Array of IpRegionDto objects | 规则地域列表 |
domain_set_id | 否 | String | 域名组id,type为4(域名组)或7(域名组-应用型)时不能为空。可通过查询域名组列表接口查询获得,通过返回值中的data.records.set_id(.表示各对象之间层级的区分)获得。 |
domain_set_name | 否 | String | 域名组名称,type为4(域名组)或7(域名组-应用型)时不能为空。可通过查询域名组列表接口查询获得,通过返回值中的data.records.name(.表示各对象之间层级的区分)获得。 |
ip_address | 否 | Array of strings | IP地址列表,当type为5(多对象)时不能为空。 |
address_set_type | 否 | Integer | 地址组类型,当type为1(关联IP地址组)时不能为空。0表示自定义地址组,1表示WAF回源IP地址组,2表示DDoS回源IP地址组,3表示NAT64转换地址组 |
predefined_group | 否 | Array of strings | 预定义地址组id列表,当type为5(多对象)时不能为空。地址组id可通过查询地址组列表接口查询获得,通过返回值中的data.records.set_id(.表示各对象之间层级的区分)获得。查询条件中query_address_set_type需要设置为1预定义地址组。 |
address_group | 否 | Array of strings | 地址组id列表,当type为5(多对象)时不能为空。地址组id可通过查询地址组列表接口查询获得,通过返回值中的data.records.set_id(.表示各对象之间层级的区分)获得。查询条件中query_address_set_type需要设置为0自定义地址组。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
region_id | 否 | String | 区域id,可通过获取账号、IAM用户、项目、用户组、区域、委托的名称和ID获取。 |
region_type | 否 | Integer | 区域类型,0表示国家,1表示省份,2表示大洲,可通过地域信息表获取。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
type | 是 | Integer | 服务输入类型,0为手动输入类型,1为自动输入类型 |
protocol | 否 | Integer | 协议类型:TCP为6,UDP为17,ICMP为1,ICMPV6为58,ANY为-1,type为0手动类型时不能为空。 |
protocols | 否 | Array of integers | 协议列表,协议类型:TCP为6,UDP为17,ICMP为1,ICMPV6为58,ANY为-1,type为0手动类型时不能为空。 |
source_port | 否 | String | 源端口 |
dest_port | 否 | String | 目的端口 |
service_set_id | 否 | String | 服务组id,当type为1(关联IP地址组)时不能为空,可通过获取服务组列表接口查询获得,通过返回值中的data.records.set_id(.表示各对象之间层级的区分)获得。 |
service_set_name | 否 | String | 服务组名称,当type为1(关联IP地址组)时不能为空,可通过获取服务组列表接口查询获得,通过返回值中的data.records.name(.表示各对象之间层级的区分)获得。 |
custom_service | 否 | Array of ServiceItem objects | 自定义服务 |
predefined_group | 否 | Array of strings | 预定义服务组id列表,服务组id可通过获取服务组列表接口查询获得,通过返回值中的data.records.set_id(.表示各对象之间层级的区分)获得。查询条件中query_service_set_type需要设置为1预定义服务组。 |
service_group | 否 | Array of strings | 服务组id列表,服务组id可通过获取服务组列表接口查询获得,通过返回值中的data.records.set_id(.表示各对象之间层级的区分)获得。查询条件中query_service_set_type需要设置为0自定义服务组。 |
service_group_names | 否 | Array of ServiceGroupVO objects | 服务组名称列表 |
service_set_type | 否 | Integer | 服务组类型,0表示自定义服务组,1表示常用WEB服务,2表示常用远程登录和PING,3表示常用数据库 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
protocol | 否 | Integer | 协议类型:TCP为6,UDP为17,ICMP为1,ICMPV6为58,ANY为-1,RuleServiceDto.type为0时不能为空。 |
source_port | 否 | String | 源端口 |
dest_port | 否 | String | 目的端口 |
description | 否 | String | 服务成员描述 |
name | 否 | String | 服务成员名称 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
name | 否 | String | 服务组名称 |
protocols | 否 | Array of integers | 协议列表,协议类型:TCP为6,UDP为17,ICMP为1,ICMPV6为58,ANY为-1 |
service_set_type | 否 | Integer | 服务组类型,0表示自定义服务组,1表示预定义服务组 |
set_id | 否 | String | 服务组id,可通过获取服务组列表接口查询获得,通过返回值中的data.records.set_id(.表示各对象之间层级的区分)获得。 |
响应参数
状态码:200
参数 | 参数类型 | 描述 |
|---|---|---|
data | RuleIdList object | 创建规则返回值data数据 |
状态码:400
参数 | 参数类型 | 描述 |
|---|---|---|
error_code | String | 错误码 |
error_msg | String | 错误描述 |
请求示例
示例为添加一个IPv4类型的外到内的规则,名称为测试规则,源类型为IP地址,地址为1.1.1.1,目的类型为IP地址,目的地址为2.2.2.2,服务类型为服务,协议类型为TCP,源端口为0,目的端口为0,不支持长连接,动作为放行,启用状态为启用
https://{Endpoint}/v1/9d80d070b6d44942af73c9c3d38e0429/acl-rule
{
"object_id" : "ae42418e-f077-41a0-9d3b-5b2f5ad9102b",
"rules" : [ {
"name" : "测试规则",
"status" : 1,
"action_type" : 0,
"description" : "",
"source" : {
"type" : 0,
"address" : "1.1.1.1"
},
"destination" : {
"type" : 0,
"address" : "2.2.2.2"
},
"service" : {
"type" : 0,
"protocol" : 6,
"source_port" : "0",
"dest_port" : "0"
},
"address_type" : 0,
"tag" : {
"tag_key" : "",
"tag_value" : ""
},
"long_connect_enable" : 0,
"direction" : 0,
"sequence" : {
"top" : 1,
"dest_rule_id" : null
}
} ],
"type" : 0
} 响应示例
状态码:200
添加acl响应
{
"data" : {
"rules" : [ {
"id" : "0475c516-0e41-4caf-990b-0c504eebd73f",
"name" : "testName"
} ]
}
} 状态码:400
Bad Request
{
"error_code" : "CFW.00900016",
"error_msg" : "导入任务进行中,请任务结束后再操作"
} 状态码
状态码 | 描述 |
|---|---|
200 | 添加acl响应 |
400 | Bad Request |
401 | Unauthorized |
403 | Forbidden |
404 | Not Found |
500 | Internal Server Error |
错误码
请参见错误码。

