为保护暴露在公网的应用型负载均衡(ALB)实例免受Web攻击,可为其开启Web应用防火墙(WAF 3.0)防护。该方案将ALB实例以原生集成方式升级为“WAF增强版”,在不变更现有网络架构与DNS配置的前提下,为应用提供低延迟、高可用的Web安全防护能力。
接入原理
ALB实例开启WAF防护后,将自动升级为WAF增强版。WAF 3.0基于SDK内嵌架构,将安全检测能力直接集成至ALB的数据平面。当业务流量到达ALB时,内嵌的SDK在转发路径上实时执行流量分析与威胁检测,自动拦截恶意请求,合法请求则正常转发至后端服务器。
适用范围
若ALB 实例不满足以下要求,请使用CNAME接入。
账号要求:ALB实例与WAF实例必须属于同一阿里云账号(已配置企业多账号统一管理除外)。
实例地域要求:
区域 | 地域 |
中国 | 西南1(成都)、华北1(青岛)、华北2(北京)、华南3(广州)、华东1(杭州)、华北6(乌兰察布)、华东2(上海)、华南1(深圳)、华北3(张家口)、中国香港、华东6(福州-本地地域) |
亚太 | 菲律宾(马尼拉)、印度尼西亚(雅加达)、日本(东京)、马来西亚(吉隆坡)、新加坡、泰国(曼谷)、韩国(首尔) |
欧洲与美洲 | 德国(法兰克福)、美国(硅谷)、美国(弗吉尼亚)、墨西哥 |
操作步骤
进入控制台:
登录Web应用防火墙3.0控制台。在顶部菜单栏,选择WAF实例的资源组和地域(中国内地、非中国内地)。在左侧导航栏,单击接入管理。选择云产品接入页签,在左侧云产品类型列表,选择应用型负载均衡 ALB。
云产品授权(仅限未完成授权用户):
根据页面提示,单击立即授权,完成云产品授权。您可以在RAM控制台的 页面,查看创建的服务关联角色AliyunServiceRoleForWAF。
接入ALB实例:
在右侧列表,查看ALB实例及其WAF防护状态,找到希望接入WAF的ALB实例,在操作列单击立即接入,如果找不到目标实例,请单击页面右上角同步资产,若仍无法找到,说明实例不满足适用范围。
重要ALB实例接入WAF后,将自动升级为ALB WAF增强版,这将在ALB侧产生额外费用,详细信息请参见ALB计费规则。
说明您也可以勾选多个ALB实例批量接入,或点击一键全量接入,一键为所有实例接入WAF。
验证防护效果:
当WAF防护状态显示全部防护时,表示接入成功。此时在浏览器输入您的网站域名和Web攻击代码进行验证(例如
<您的网站域名>/alert(xss)
,alert(xss)
为用作测试的跨站脚本攻击代码),如果返回405拦截提示页面,表示攻击已被成功拦截,WAF防护已生效。
后续步骤
查看并配置防护规则
完成接入后,WAF将自动创建一个后缀为-alb
的防护对象,并为该防护对象默认启用Web核心防护规则等模块的防护规则,可以在 页面查看。如果默认的防护规则不满足您的业务需求,可以新建或编辑防护规则。更多信息,请参见防护配置概述。
若您有多个域名解析指向了同一ALB实例,并且希望在接入后单独为这些域名配置不同的防护规则,则还需要手动将域名添加为防护对象,详细信息,请参见手动添加防护对象。
相关操作
接入回滚(取消接入)
临时关闭WAF防护:如果您在接入后出现问题,例如出现大量误拦截,需要临时关闭WAF防护时,可以在WAF控制台的防护对象页面中,关闭WAF防护状态开关。更多信息,请参见一键关闭WAF防护功能。
取消接入:如果您不再希望使用WAF对ALB实例进行防护,可以在云产品接入页签,从左侧云产品类型列表中选择应用型负载均衡 ALB,在实例列表单击目标实例操作列的取消接入,在弹出的对话框,单击确定。
重要取消接入后,ALB实例上的业务流量将不再受WAF防护,安全报表中也不再包含相关业务流量的防护数据。
如果您的WAF实例为按量付费,取消接入ALB实例后不会产生请求处理费,但由于WAF实例本身及其他防护规则的存在,仍会产生功能费。若您不再希望继续使用WAF并停止WAF计费,请参见关闭WAF。
在ALB侧接入并管理WAF防护
除了本文提供的接入与管理方式,您也可以参考以下文档,在ALB侧为ALB实例开启WAF防护。
在ALB控制台为实例开通WAF防护,请参见在ALB侧接入WAF防护。
在ALB控制台为已开通防护的实例进行管理,请参见在ALB侧管理WAF防护。
通过API变更ALB实例功能版本,请参见UpdateLoadBalancerEdition - 变更负载均衡版本。
应用于生产环境
接入和取消接入ALB实例的过程对业务无影响。但接入ALB实例时,您仍需关注日志与监控,确保业务可用性。
灰度策略:优先在业务低峰期接入非生产环境的ALB实例,运行一段时间以确认业务正常后,再接入生产环境的ALB实例。
检查业务:接入完成后,您可以通过如下方式确认业务是否正常。
后续运维:生产环境接入完成后,需进行持续的运维工作,关注攻击与误拦截事件。
配额与限制
实名认证:购买ALB WAF增强版实例前,请先完成实名认证。具体操作,请参见如何选择实名认证方式。
实例状态:
仅当ALB基础版、标准版实例状态为运行中时,才支持升级至WAF增强版。
如需在容器服务 Kubernetes 版(ACK)中为 ALB 接入 WAF,请参考使用ALB WAF增强版实例保护服务。
接入的实例数量:未超过 WAF 实例规格的上限。
WAF包年包月实例:基础版最多300个;高级版最多600个;企业版最多2,500个;旗舰版最多10,000个。
WAF按量付费实例:最多10,000个。
不支持的功能:信息泄露防护、Bot管理网页防爬场景化防护中的自动集成Web SDK。
常见问题
为什么找不到需接入的ALB实例?
请先尝试单击接入管理页面右上角同步资产。
若仍无法找到,说明实例不满足适用范围。例如非中国内地地域的ALB实例需要通过购买非中国内地WAF进行云产品接入,或使用CNAME接入。
同一个域名解析指向了多个ALB实例,该如何接入?
使用云产品接入:需要同时接入这些ALB实例,实现WAF对这几个实例进行防护。
使用CNAME接入:CNAME接入此域名并配置源站为多个ALB实例的CNAME。
多个域名解析指向了同一个ALB实例,该如何接入?
使用云产品接入:接入此云产品实例后,实例上的所有域名都将受到WAF默认防护策略的防护。但如果您希望单独为这些域名配置不同的防护规则,则需要手动将域名添加为防护对象,详细信息,请参见手动添加防护对象。
使用CNAME接入:逐一接入多个域名。
ALB实例上的域名能否同时使用云产品接入和CNAME接入?
不推荐。每个域名只能使用云产品接入或CNAME接入两种模式之一,重复接入将导致转发冲突防护失效。如果您已通过CNAME接入的域名,需要切换为云产品接入,您必须先将DNS解析切换回源站,待DNS解析收敛后,删除该域名的CNAME接入配置,然后重新进行云产品接入其对应的ALB实例。
WAF 2.0与WAF 3.0接入ALB实例的原理差异
WAF 3.0 SDK集成:通过 SDK 集成的方式。SDK 内嵌于ALB实例,负责流量提取、检测与防护。WAF 不参与流量转发,避免引入额外转发层导致的兼容性与稳定性问题。请求只经过一道网关,省去了WAF从ALB实例同步证书和加密套件配置的步骤,不会出现证书和配置不同步等问题。
WAF 2.0透明化接入:采用透明代理的方式,通过配置引流端口,云产品网关自动改变路由,将Web业务引流到 WAF。WAF 拦截攻击流量,转发正常请求至源站,同时参与流量的转发和检测防护。请求需经过两道网关,WAF侧与负载均衡侧都需维护超时时间和证书等配置。
更多信息,请参见WAF 3.0与WAF 2.0对比。