创建ACL规则
功能介绍
创建ACL规则
调用方法
请参见如何调用API。
URI
POST /v1/{project_id}/acl-rule
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
参数解释: 项目ID,用于明确项目归属,配置后可通过该ID查询项目下资产,可以从调API处获取,也可以从控制台获取。项目ID获取方式 约束限制: 不涉及 取值范围: 32位UUID 默认取值: 不涉及 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
enterprise_project_id |
否 |
String |
参数解释: 企业项目ID,用户根据组织规划企业项目,对应的ID为企业项目ID,配置后可根据企业项目过滤不同企业项目下的资产,可通过如何获取企业项目ID获取 约束限制: 不涉及 取值范围: 不涉及 默认取值: 0 |
fw_instance_id |
否 |
String |
参数解释: 防火墙ID,用户创建防火墙实例后产生的唯一ID,配置后可区分不同防火墙,可通过防火墙ID获取方式获取 约束限制: 不涉及 取值范围: 32位UUID 默认取值: 不涉及 |
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
X-Auth-Token |
是 |
String |
参数解释: 用户Token,用于携带用户身份信息,配置后可通过接口鉴权,可通过如何获取用户Token获取。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
object_id |
是 |
String |
参数解释: 防护对象ID,是创建云防火墙后用于区分互联网边界防护和VPC边界防护的标志ID,可通过调用查询防火墙实例接口获得,通过返回值中的data.records.protect_objects.object_id(.表示各对象之间层级的区分)获得 约束限制: type为0时,object_id为互联网边界防护对象ID,type为1时,object_id为VPC边界防护对象ID,type可通过data.records.protect_objects.type(.表示各对象之间层级的区分)获得 取值范围: 32位UUID 默认取值: 不涉及 |
type |
是 |
Integer |
参数解释: 规则类型,用于区分不同防护对象设置规则类型。 约束限制: 不涉及 取值范围: 0:互联网边界规则,源(source)和目的(destination)地址需要为公网IP或域名; 1:VPC间规则,源(source)和目的(destination)地址需要为私有ip; 2:NAT规则,源(source)地址需要为私网IP,目的地址为公网IP或域名。 默认取值: 不涉及 |
rules |
是 |
Array of rules objects |
参数解释: 添加规则请求规则列表 约束限制: 不涉及 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
name |
是 |
String |
参数解释: 规则名称,由用户定义,用于标识规则 约束限制: 字符串长度为0到255 取值范围: 不涉及 默认取值: 不涉及 |
sequence |
是 |
OrderRuleAclDto object |
参数解释: 修改规则的顺序 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
address_type |
是 |
Integer |
参数解释: IP地址的互联网协议类型,用于指定IP地址的互联网协议,由客户指定 约束限制: 不涉及 取值范围: 0表示IPv4,1表示IPv6 默认取值: 不涉及 |
action_type |
是 |
Integer |
参数解释: 规则动作类型,用于区分规则对流量的动作 约束限制: 仅能使用数字0和1 取值范围: 0表示允许通行(permit),1表示拒绝通行(deny) 默认取值: 不涉及 |
status |
是 |
Integer |
参数解释: 规则启用状态,用于区分规则是否启用 约束限制: 仅能使用数字0和1 取值范围: 0表示启用,1表示禁用 默认取值: 不涉及 |
applications |
否 |
Array of strings |
参数解释: 规则应用协议列表 约束限制: 不涉及 取值范围: 规则应用类型包括:“HTTP”,"HTTPS","TLS1",“DNS”,“SSH”,“MYSQL”,“SMTP”,“RDP”,“RDPS”,“VNC”,“POP3”,“IMAP4”,“SMTPS”,“POP3S”,“FTPS”,“ANY”,“BGP”等。 默认取值: 不涉及 |
long_connect_time |
否 |
Long |
参数解释: 长连接时长(s),用于表示流量产生会话保持的最大时长。 约束限制: 仅能为数字 取值范围: 1-86400000。 默认取值: 不涉及 |
long_connect_time_hour |
否 |
Long |
参数解释: 长连接时长对应小时数(h)。 约束限制: 仅能为数字 取值范围: 0-24000。 默认取值: 不涉及 |
long_connect_time_minute |
否 |
Long |
参数解释: 长连接时长对应分钟数(min)。 约束限制: 仅能为数字 取值范围: 0-60。 默认取值: 不涉及 |
long_connect_time_second |
否 |
Long |
参数解释: 长连接时长对应秒数(s)。 约束限制: 仅能为数字 取值范围: 0-60。 默认取值: 不涉及 |
long_connect_enable |
是 |
Integer |
参数解释: 用于表示是否支持长连接。 约束限制: 不涉及 取值范围: 0表示不支持,1表示支持 默认取值: 不涉及 |
description |
否 |
String |
参数解释: 规则描述,用于描述规则的用途。 约束限制: 不涉及 取值范围: 长度在0-255之间 默认取值: 不涉及 |
direction |
否 |
Integer |
参数解释: 规则方向,用于指定规则是从云上至云下,还是云下至云上 约束限制: 当规则type=0(互联网规则)或者type= 2(NAT规则)时方向值必填 取值范围: 0表示外到内(云下到云上),1表示内到外(云上到云下), 默认取值: 不涉及 |
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 |
参数解释: 源或目的地址的输入类型,用于区分不同的输入类型 约束限制: 当规则type=0(互联网规则)或者type= 2(NAT规则)时方向值(direction)必填 取值范围: 0手动输入,1关联IP地址组,2域名,3地理位置,4域名组,5多对象,6域名组-网络型,7域名组-应用型。 默认取值: 不涉及 |
address_type |
否 |
Integer |
参数解释: IP地址互联网协议类型,用于区分不同互联网协议 约束限制: 当type为0手动输入时,此处不能为空 取值范围: 地址类型0 IPv4,1 IPv6。 默认取值: 不涉及 |
address |
否 |
String |
参数解释: IP地址信息,用于明确规则IP地址 约束限制: 当type为0手动输入时,此处不能为空 取值范围: 不涉及 默认取值: 不涉及 |
address_set_id |
否 |
String |
参数解释: 关联IP地址组ID,用于明确规则IP地址组id,可通过查询地址组列表接口查询获得,通过返回值中的data.records.set_id(.表示各对象之间层级的区分)获得。 约束限制: 当type为1关联IP地址组时,此处不能为空 取值范围: 不涉及 默认取值: 不涉及 |
address_set_name |
否 |
String |
参数解释: 关联IP地址组名称,用于明确规则IP地址组名称,可通过查询地址组列表接口查询获得,通过返回值中的data.records.name(.表示各对象之间层级的区分)获得。 约束限制: 当type为1关联IP地址组时,此处不能为空 取值范围: 不涉及 默认取值: 不涉及 |
domain_address_name |
否 |
String |
参数解释: 域名名称或引用域名组名称,用于明确规则引用域名或域名组名称 约束限制: 当type为2(域名)或7(域名组-应用型)时,此处不能为空,长度为0-255 取值范围: 不涉及 默认取值: 不涉及 |
region_list_json |
否 |
String |
参数解释: 规则地域列表json值,用于明确规则引用地域名称列表 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
region_list |
否 |
Array of IpRegionDto objects |
参数解释: 规则地域列表传输值 约束限制: 不涉及 |
domain_set_id |
否 |
String |
参数解释: 域名组ID,用于明确规则引用域名组。可通过查询域名组列表接口查询获得,通过返回值中的data.records.set_id(.表示各对象之间层级的区分)获得。 约束限制: type为4(域名组)或7(域名组-应用型)时不能为空。 取值范围: 不涉及 默认取值: 不涉及 |
domain_set_name |
否 |
String |
参数解释: 域名组名称,用于明确规则引用域名组。可通过查询域名组列表接口查询获得,通过返回值中的data.records.name(.表示各对象之间层级的区分)获得。 约束限制: type为4(域名组)或7(域名组-应用型)时不能为空。 取值范围: 不涉及 默认取值: 不涉及 |
ip_address |
否 |
Array of strings |
参数解释: IP地址列表,用于明确规则引用IP地址列表。 约束限制: 当type为5(多对象)时不能为空。 取值范围: 不涉及 默认取值: 不涉及 |
address_set_type |
否 |
Integer |
参数解释: 地址组类型,用于明确规则引用地址组类型。 约束限制: 当address的type为1(关联IP地址组)时,此处不能为空。 取值范围: 0表示自定义地址组,1表示WAF回源IP地址组,3表示NAT64转换地址组 默认取值: 不涉及 |
predefined_group |
否 |
Array of strings |
参数解释: 预定义地址组ID列表,用于明确规则引用预定义地址组id列表。地址组ID可通过查询地址组列表接口查询获得,通过返回值中的data.records.set_id(.表示各对象之间层级的区分)获得。查询条件中query_address_set_type需要设置为1预定义地址组。 约束限制: 当type为5(多对象)时不能为空。 取值范围: 0表示自定义地址组,1表示WAF回源IP地址组,2表示DDoS回源IP地址组,3表示NAT64转换地址组 默认取值: 不涉及 |
address_group |
否 |
Array of strings |
参数解释: 地址组id列表,用于明确规则引用地址组id列表。地址组id可通过查询地址组列表接口查询获得,通过返回值中的data.records.set_id(.表示各对象之间层级的区分)获得。查询条件中query_address_set_type需要设置为0自定义地址组。 约束限制: 当type为5(多对象)时不能为空。 取值范围: 不涉及 默认取值: 不涉及 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
region_id |
否 |
String |
参数解释: 区域ID,用于明确规则引用地域,可通过获取账号、IAM用户、项目、用户组、区域、委托的名称和ID获取。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
description_cn |
否 |
String |
参数解释: 区域中文描述,仅当区域为中国区域时使用,可通过地域信息表获取 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
description_en |
否 |
String |
参数解释: 区域英文描述,仅当区域为非中国区域时使用,可通过地域信息表获取。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
region_type |
否 |
Integer |
参数解释: 区域类型 约束限制: 不涉及 取值范围: 0表示国家,1表示省份,2表示大洲 默认取值: 不涉及 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
type |
是 |
Integer |
参数解释: 服务输入类型,用于明确规则的服务输入类型。 约束限制: 不涉及 取值范围: 0为手动输入类型,1为自动输入类型 默认取值: 不涉及 |
protocol |
否 |
Integer |
参数解释: 服务协议类型,用于明确规则引用服务协议类型。 约束限制: type为0(手动类型)时,此处不能为空。 取值范围: 协议类型:TCP为6,UDP为17,ICMP为1,ICMPv6为58,Any为-1 默认取值: 不涉及 |
protocols |
否 |
Array of integers |
参数解释: 协议列表,用于明确规则引用协议列表。 约束限制: type为0(手动类型)时,此处不能为空。 取值范围: 协议类型:TCP为6,UDP为17,ICMP为1,ICMPv6为58,Any为-1 默认取值: 不涉及 |
source_port |
否 |
String |
参数解释: 源端口,会话发起方的端口。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
dest_port |
否 |
String |
参数解释: 目的端口,会话接收方的端口。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
service_set_id |
否 |
String |
参数解释: 服务组ID,用于明确规则引用服务组,可通过获取服务组列表接口查询获得,通过返回值中的data.records.set_id(.表示各对象之间层级的区分)获得。 约束限制: 当address的type为1(关联IP地址组)时,此处不能为空 取值范围: 不涉及 默认取值: 不涉及 |
service_set_name |
否 |
String |
参数解释: 服务(协议、源端口、目的端口)组的名称,用于明确规则引用服务组,可通过获取服务组列表接口查询获得,通过返回值中的data.records.name(.表示各对象之间层级的区分)获得。 约束限制: 当address的type为1(关联IP地址组)时,此处不能为空 取值范围: 不涉及 默认取值: 不涉及 |
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 |
参数解释: 协议类型,用于明确规则网络协议 约束限制: RuleServiceDto.type为0时,此处不能为空。 取值范围: TCP为6,UDP为17,ICMP为1,ICMPv6为58,Any为-1 默认取值: 不涉及 |
source_port |
否 |
String |
参数解释: 源端口,会话发起方的端口。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
dest_port |
否 |
String |
参数解释: 目的端口,会话接收方的端口。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
description |
否 |
String |
参数解释: 服务(协议、源端口、目的端口)成员 约束限制: 字符串长度0-255 取值范围: 不涉及 默认取值: 不涉及 |
name |
否 |
String |
参数解释: 服务(协议、源端口、目的端口)成员 约束限制: 字符串长度0-255 取值范围: 不涉及 默认取值: 不涉及 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
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 |
参数解释: 创建规则返回值数据 约束限制: 不涉及 |
状态码: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 |
错误码
请参见错误码。