云服务器内容精选

  • 响应示例 { "firewall_policies": [ { "description": "", "firewall_rules": [ "6c6803e0-ca8c-4aa9-afb3-4f89275b6c32" ], "tenant_id": "23c8a121505047b6869edf39f3062712", "public": false, "id": "6b70e321-0c21-4b83-bb8a-a886d1414a5f", "audited": false, "name": "fwp1", "project_id": "23c8a121505047b6869edf39f3062712" }, { "description": "", "firewall_rules": [ "6c6803e0-ca8c-4aa9-afb3-4f89275b6c32" ], "tenant_id": "23c8a121505047b6869edf39f3062712", "public": false, "id": "fce92002-5a15-465d-aaca-9b44453bb738", "audited": false, "name": "fwp2", "project_id": "23c8a121505047b6869edf39f3062712" } ], "firewall_policies_links": [ { "rel": "previous", "href": "https://{Endpoint}/v2.0/fwaas/firewall_policies?marker=6b70e321-0c21-4b83-bb8a-a886d1414a5f&page_reverse=True" } ] }
  • 响应参数 表2 响应参数 参数名称 类型 说明 firewall_policies Array of firewall Policy object firewall policy对象列表。请参见表3。 firewall_policies_links Array of firewall_policies_link object firewall_policies_link对象。请参见表4。 只有在使用limit过滤,并且资源个数超过limit或者资源个数超过2000时(limit默认值),该参数的rel和href取值才会显示为next和其对应的link。 表3 firewall_Policy对象 属性 类型 说明 id String 网络ACL策略uuid标识。 name String 网络ACL策略名称。 description String 网络ACL策略描述。 tenant_id String 项目ID firewall_rules Array of strings 策略引用的网络ACL规则链。 audited Boolean 审计标记。 public Boolean 是否支持跨租户共享。 project_id String 项目ID,请参见获取项目ID。 表4 firewall_policies_link对象 名称 参数类型 说明 href String API链接 rel String API链接与该API版本的关系
  • URI GET /v2.0/fwaas/firewall_policies 分页查询样例: GET https://{Endpoint}/v2.0/fwaas/firewall_policies?limit=2&marker=6b70e321-0c21-4b83-bb8a-a886d1414a5f&page_reverse=False 参数说明请参见表1 表1 参数说明 名称 是否必选 参数类型 说明 id 否 String 按照网络ACL策略对应的ID过滤查询 name 否 String 按照网络ACL策略的名称过滤查询 description 否 String 按照网络ACL策略的描述过滤查询 tenant_id 否 String 按照网络ACL策略所属的项目ID过滤查询 marker 否 String 分页查询的起始资源ID,表示从指定资源的下一条记录开始查询。 marker需要和limit配合使用: 若不传入marker和limit参数,查询结果返回第一页全部资源记录。 若不传入marker参数,limit为10,查询结果返回第1~10条资源记录。 若marker为第10条记录的资源ID,limit为10,查询结果返回第11~20条资源记录。 若marker为第10条记录的资源ID,不传入limit参数,查询结果返回第11条及之后的所有资源记录。 limit 否 Integer 分页查询每页返回的记录个数,取值范围为0~intmax(2^31-1),默认值2000。 limit需要和marker配合使用,详细规则请见marker的参数说明。
  • 响应示例 { "firewall_group": { "status": "ACTIVE", "public": false, "egress_firewall_policy_id": null, "name": "bobby_fwg1", "admin_state_up": true, "ports": [ "16e6d779-15e9-48fb-abc5-b86457792a15" ], "tenant_id": "23c8a121505047b6869edf39f3062712", "id": "a504a4cf-9300-40e0-b2d4-649bd157c55a", "ingress_firewall_policy_id": "fed2d88f-d0e7-4cc5-bd7e-c495f67037b6", "description": "test", "project_id": "23c8a121505047b6869edf39f3062712", "created_at": "2018-09-12T08:24:14", "updated_at": "2018-09-12T08:24:14" } }
  • 响应参数 表2 响应参数 参数名称 类型 说明 firewall_group firewall_group object firewall group对象。请参见表3。 表3 Firewall Group对象 属性 类型 说明 id String 网络ACL组的uuid标识。 name String 网络ACL组名称。 description String 网络ACL组描述。 tenant_id String 项目ID ingress_firewall_policy_id String 入方向网络ACL策略。 egress_firewall_policy_id String 出方向网络ACL策略。 ports Array of strings 网络ACL组绑定的端口列表。 public Boolean 是否支持跨租户共享。 status String 网络ACL策略的状态。 取值范围: ACTIVE:正常 INACTIVE:未激活 ERROR:错误 PENDING_CREATE:创建中 PENDING_UPDATE:更新中 PENDING_DELETE:删除中 admin_state_up Boolean 网络ACL的管理状态。 project_id String 项目ID,请参见获取项目ID。 created_at String 资源创建时间,UTC时间 格式:yyyy-MM-ddTHH:mm:ss updated_at String 资源更新时间,UTC时间 格式:yyyy-MM-ddTHH:mm:ss
  • 响应示例 状态码: 201 POST操作正常返回,更多状态码请参见状态码。 { "firewall" : { "id" : "e9a7731d-5bd9-4250-a524-b9a076fd5629", "name" : "network_acl_test1", "description" : "network_acl_test1", "project_id" : "9476ea5a8a9849c38358e43c0c3a9e12", "created_at" : "2022-04-07T07:30:46.000+00:00", "updated_at" : "2022-04-07T07:30:46.000+00:00", "admin_state_up" : true, "enterprise_project_id" : "158ad39a-dab7-45a3-9b5a-2836b3cf93f9", "status" : "ACTIVE", "tags" : [ ], "ingress_rules" : [ ], "egress_rules" : [ ], "associations" : [ ] } }
  • 请求示例 创建网络ACL,命名为network_acl_test1。 POST https://{Endpoint}/v3/{project_id}/vpc/firewalls { "firewall" : { "name" : "network_acl_test1", "description" : "network_acl_test1", "enterprise_project_id" : "158ad39a-dab7-45a3-9b5a-2836b3cf93f9" } }
  • 响应参数 状态码: 400 表2 响应Body参数 参数 参数类型 描述 request_id String 请求ID。 error_msg String 错误消息。 error_code String 错误码。 状态码: 401 表3 响应Body参数 参数 参数类型 描述 request_id String 请求ID。 error_msg String 错误消息。 error_code String 错误码。 状态码: 403 表4 响应Body参数 参数 参数类型 描述 request_id String 请求ID。 error_msg String 错误消息。 error_code String 错误码。 状态码: 404 表5 响应Body参数 参数 参数类型 描述 request_id String 请求ID。 error_msg String 错误消息。 error_code String 错误码。 状态码: 500 表6 响应Body参数 参数 参数类型 描述 request_id String 请求ID。 error_msg String 错误消息。 error_code String 错误码。
  • URI DELETE /v3/{project_id}/firewalls/{firewall_id}/tags/{tag_key} 表1 路径参数 参数 是否必选 参数类型 描述 firewall_id 是 String 功能说明:ACL唯一标识 取值范围:合法UUID 约束:ID对应的ACL必须存在 project_id 是 String 项目ID tag_key 是 String 功能说明:标签键
  • 流量匹配网络ACL规则的顺序 一个子网只能绑定一个网络ACL,当网络ACL存在多条规则时,流量按照规则的优先级进行匹配。优先级的数字越小,优先级越高,越先执行该规则。默认规则优先级的值为“*”,优先级最低。 以入方向的流量为例,子网的网络流量将按照以下原则匹配网络ACL规则,入方向和出方向的流量匹配顺序相同。 当流量匹配上自定义规则,则根据规则策略决定流量走向。 当策略为拒绝时,则拒绝该流量流入子网。 当策略为允许时,则允许该流量流入子网。 当流量未匹配上任何自定义规则,则执行默认规则,拒绝流量流入子网。 图2 网络ACL匹配顺序
  • 应用场景 由于应用层需要对外提供服务,因此入方向规则必须放通所有地址,如何防止恶意用户的非正常访问呢? 解决方案:通过网络ACL添加拒绝规则,拒绝恶意IP的访问。 隔离具有漏洞的应用端口,比如Wanna Cry,关闭445端口。 解决方案:通过网络ACL添加拒绝规则,拒绝恶意协议和端口,比如TCP:445端口。 子网内的通信无防护诉求,仅有子网间的访问限制。 解决方案:通过网络ACL设置子网间的访问规则 对访问频繁的应用,调整安全规则顺序,提高性能。 解决方案:网络ACL支持规则编排,可以把访问频繁的规则置顶。
  • 网络ACL默认规则 每个网络ACL都包含一组默认规则,如下所示: 默认放通同一子网内的流量。 默认放通目的IP地址为255.255.255.255/32的广播报文。用于配置主机的启动信息。 默认放通目的网段为224.0.0.0/24的组播报文。供路由协议使用。 默认放通目的IP地址为169.254.169.254/32,TCP端口为80的metadata报文。用于获取元数据。 默认放通公共服务预留网段资源的报文,例如目的网段为100.125.0.0/16的报文。 除上述默认放通的流量外,其余出入子网的流量全部拒绝,如表1所示。该规则不能修改和删除。 表1 网络ACL默认规则 方向 优先级 动作 协议 源地址 目的地址 说明 入方向 * 拒绝 全部 0.0.0.0/0 0.0.0.0/0 拒绝所有入站流量 出方向 * 拒绝 全部 0.0.0.0/0 0.0.0.0/0 拒绝所有出站流量
  • 网络ACL基本信息 您的VPC默认没有网络ACL。当您需要时,可以创建自定义的网络ACL并将其与子网关联。关联子网后,网络ACL默认拒绝所有出入子网的流量,直至添加放通规则。 网络ACL可以同时关联多个子网,但一个子网只能关联一个网络ACL。 每个新创建的网络ACL最初都为未激活状态,直至您关联子网为止。 网络ACL是有状态的。如果您从实例发送一个出站请求,且该网络ACL的出方向规则是放通的话,那么无论其入方向规则如何,都将允许该出站请求的响应流量流入。同理,如果该网络ACL的入方向规则是放通的,那无论出方向规则如何,都将允许该入站请求的响应流量可以流出。 网络ACL使用连接跟踪来标识进出实例的流量信息,入方向和出方向网络ACL规则配置变更,对原有流量不会立即生效。 当您在网络ACL内增加、删除、更新规则,或者在网络ACL内添加、移出子网时,由入方向/出方向流量建立的连接,已建立的长连接不会断开,依旧遵循原有网络ACL规则。入方向/出方向流量新建立的连接,将会匹配新的网络ACL出方向规则。 对于已建立的长连接,流量断开后,不会立即建立新的连接,需要超过连接跟踪的老化时间后,才会新建立连接并匹配新的规则。比如,对于已建立的ICMP协议长连接,当流量中断后,需要超过老化时间30s后,将会新建立连接并匹配新的规则,详细说明如下: 不同协议的连接跟踪老化时间不同,比如已建立连接状态的TCP协议连接老化时间是600s,ICMP协议老化时间是30s。对于除TCP和ICMP的其他协议,如果两个方向都收到了报文,连接老化时间是180s,如果只是单方向收到了报文,另一个方向没有收到报文,则连接老化时间是30s。 TCP协议处于不同状态下的连接老化时间也不相同,比如TCP连接处于ESTABLISHED(连接已建立)状态时,老化时间是600s,处于FIN-WAIT(连接即将关闭)状态时,老化时间是30s。
  • 响应示例 状态码: 200 OK { "firewall" : { "id" : "ce1ce0c8-d714-11ea-a863-fa16408859a1", "domain_id" : "2b76febbe5d34eac85d26435c1f15809", "name" : "fw-nhsr", "description" : "xx", "admin_state_up" : true, "status" : "INACTIVE", "ingress_firewall_policy" : { "id" : "ff15fc0e-b80d-4d00-89d0-0c1fbb3d98b9" }, "egress_firewall_policy" : { "id" : "b0ea29d4-6350-5e79-9605-89e3837480d7" }, "ingress_firewall_rule_count" : 0, "egress_firewall_rule_count" : 0 } }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 firewall Firewall object 网络ACL对象。 表5 Firewall 参数 参数类型 描述 id String 网络ACL ID name String 网络ACL名称。 最小长度:1 最大长度:64 admin_state_up Boolean 网络ACL使能开关。 取值范围:true(开启),false(关闭)。默认为true 缺省值:true status String 网络ACL状态。 取值范围:INACTIVE description String 网络ACL描述。 最小长度:0 最大长度:64 domain_id String 租户domainID 最小长度:0 最大长度:36 egress_firewall_policy FirewallPolicyResp object 出方向网络ACL策略。 创建或查询防火墙列表时只返回ACL策略ID。 egress_firewall_rule_count Integer 出方向网络ACL规则个数。 ingress_firewall_policy FirewallPolicyResp object 入方向网络ACL策略。 创建或查询防火墙列表时只返回ACL策略ID。 ingress_firewall_rule_count Integer 入方向网络ACL规则个数。 表6 FirewallPolicyResp 参数 参数类型 描述 id String 网络ACL策略ID。 name String 网络ACL策略名称。 最小长度:0 最大长度:64 firewall_rules Array of FirewallRuleResp objects 网络ACL规则列表对象。 数组长度:0 - 1 insert_after String ACL规则ID,表示在此ACL规则之后添加ACL规则 insert_before String ACL规则ID,表示在此ACL规则之前添加ACL规则 表7 FirewallRuleResp 参数 参数类型 描述 action String 策略是否允许 取值范围:allow,deny,reject description String 网络ACL规则描述。 最小长度:0 最大长度:64 destination_ip_address String 目的地IP地址,IPv4或IPv6的CIDR格式 destination_port String 目的地端口范围 取值范围:整数,比如80,或者以"-"隔开的范围,比如80-90 enabled Boolean 网络ACL规则使能开关。 取值范围:true,false 缺省值:true id String 网络ACL规则ID。 进行更新规则时,如果operate_type为add,则该值为空。 ip_version Integer IP协议版本 取值范围:4, 表示ipv4;6, 表示ipv6 name String 网络ACL规则名称。 最小长度:0 最大长度:64 operate_type String 网络ACL规则操作状态,作为请求时取值为"add"/"modify"/"delete",作为返回值时为"normal"。 当请求更新规则时,本参数值为delete时,除id之外,本请求体其他参数均可为空。 protocol String IP协议,为any时代表所有协议 取值范围: icmp,tcp,udp,icmpv6,any source_ip_address String 源IP地址,IPv4或IPv6的CIDR格式 source_port String 源地端口范围 取值范围:整数,比如80,或者以"-"隔开的范围,比如80-90