为保护API网关下的云原生API网关(简称APIG)实例免受Web攻击,可为其开启Web应用防火墙(Web Application Firewall,简称WAF)防护。该方案在不变更现有网络架构与DNS配置的前提下,为应用提供低延迟、高可用的Web安全防护能力。
接入原理
云产品接入云原生API网关实例时,通过 SDK 集成的方式。SDK 内嵌于云产品,负责流量提取、检测与防护。WAF 不参与流量转发,避免引入额外转发层导致的兼容性与稳定性问题。
适用范围
若云原生API网关实例不满足以下要求,请使用CNAME接入。
账号要求:APIG实例与WAF实例必须属于同一阿里云账号(已配置企业多账号统一管理除外)。
地域要求:仅支持为华东1(杭州)、华东2(上海)、华北2(北京)、华南1(深圳)、华北6(乌兰察布)、华北3(张家口)、华北1(青岛)、西南1(成都)、中国香港、新加坡、印度尼西亚(雅加达)、日本(东京)、德国(法兰克福)、美国(硅谷)、美国(弗吉尼亚)地域的APIG实例开启WAF防护。
操作步骤
首次为APIG实例启用WAF防护时,可能触发网关服务自动重启,导致长连接中断,进而引发业务中断或性能下降。建议在业务低峰期执行此操作。WAF防护规则将在启用后约5分钟生效。
进入控制台:
登录Web应用防火墙3.0控制台。在顶部菜单栏,选择WAF实例的资源组和地域(中国内地)。在左侧导航栏,单击接入管理。选择云产品接入页签,在左侧云产品类型列表,选择云原生API网关 APIG。
云产品授权(仅限未完成授权用户):
根据页面提示,单击立即授权,完成云产品授权。可以在RAM控制台的页面,查看创建的服务关联角色AliyunServiceRoleForWAF。
接入云原生API网关 APIG实例:
单击接入,页面跳转至云原生APIG网关控制台。
在左侧导航栏单击实例,开启WAF防护。
开启实例级防护
在实例页面中,单击实例ID/名称列的目标网关。
在基本信息页签的网络信息区域中,单击开启WAF防护,并在弹出的面板中选择继续,开启实例级 WAF 防护(推荐)。
开启路由级防护
在实例页面中,单击目标网关操作列的API管理。
在API页面中,单击API名称列的目标API,选择策略配置页签。
在入站处理区域,单击启用策略/插件。选择Waf策略卡片。
单击开启路由级 WAF 防护(推荐),然后在弹出的对话框单击确定。
验证防护效果:
当目标实例基本信息页WAF防护显示已开启,或目标路由策略配置页Waf显示已启用时,表示接入成功。此时在浏览器输入您的域名和Web攻击代码进行验证(例如
<您的域名>/alert(xss),alert(xss)为用作测试的跨站脚本攻击代码),如果返回405拦截提示页面,表示攻击已被成功拦截,WAF防护已生效。
后续步骤
查看并配置防护规则
完成接入后,WAF将自动创建一个后缀为-apig的防护对象,并为该防护对象默认启用Web核心防护规则等模块的防护规则,可以在WAF控制台的页面查看。如果默认的防护规则不满足您的业务需求,可以新建或编辑防护规则。更多信息,请参见防护配置概述。

接入回滚(取消接入)
临时关闭WAF防护:若在接入后出现问题,例如出现大量误拦截,需要临时关闭WAF防护时,可以在WAF控制台的防护对象页面中,关闭WAF防护状态开关。更多信息,请参见一键关闭WAF防护功能。
取消接入:若不再希望使用WAF对APIG实例进行防护,可以前往云原生APIG网关控制台,在左侧导航栏单击实例,关闭WAF防护。
关闭实例级防护
在实例页面中,单击实例ID/名称列的目标网关。
在基本信息页签的网络信息区域中,单击关闭WAF防护,并在弹出的面板中选择继续,关闭实例级 WAF 防护(不推荐)。
关闭路由级防护
在实例页面中,单击目标网关操作列的API管理。
在API页面中,单击API名称列的目标API,选择策略配置页签。
在入站处理区域,单击Waf后的
图标,然后在弹出的对话框单击删除。
重要取消接入后,业务流量将不再受WAF防护,安全报表中也不再包含相关业务流量的防护数据。
若您的WAF实例为按量付费,取消接入后不会产生请求处理费,但由于WAF实例本身及其他防护规则的存在,仍会产生功能费。若不再希望继续使用WAF并停止WAF计费,请参见关闭WAF。
配额与限制
接入的实例数量:未超过 WAF 实例规格的上限。
WAF包年包月实例:基础版最多300个;高级版最多600个;企业版最多2,500个;旗舰版最多10,000个。
WAF按量付费实例:最多10,000个。
不支持的功能:
网页防篡改。
信息泄露防护。
Bot管理网页防爬场景化防护中的自动集成Web SDK。
常见问题
WAF的云产品接入和CNAME接入有什么区别?能否一起使用?
WAF 支持两种接入方式:云产品接入和 CNAME 接入。
云产品接入(本文所述方式):快速接入本账号阿里云云产品实例。
CNAME接入:接入域名,适用场景广泛,支持跨账号、跨云场景。
两种方式不可同时使用。每个域名仅可选择其中一种接入方式,重复配置将导致流量转发冲突,使防护功能失效。详细区别请参见接入概述文档。