为ALB实例开启WAF防护

为保护暴露在公网的应用型负载均衡(ALB)实例免受Web攻击,可为其开启Web应用防火墙(WAF 3.0)防护。该方案将ALB实例以原生集成方式升级为“WAF增强版”,在不变更现有网络架构与DNS配置的前提下,为应用提供低延迟、高可用的Web安全防护能力。

接入原理

image

ALB实例开启WAF防护后,将自动升级为WAF增强版。WAF 3.0基于SDK内嵌架构,将安全检测能力直接集成至ALB的数据平面。当业务流量到达ALB时,内嵌的SDK在转发路径上实时执行流量分析与威胁检测,自动拦截恶意请求,合法请求则正常转发至后端服务器。

适用范围

ALB 实例不满足以下要求,请使用CNAME接入

账号要求:ALB实例与WAF实例必须属于同一阿里云账号(已配置企业多账号统一管理除外)。

实例地域要求

区域

地域

中国

西南1(成都)、华北1(青岛)、华北2(北京)、华南3(广州)、华东1(杭州)、华北6(乌兰察布)、华东2(上海)、华南1(深圳)、华北3(张家口)、中国香港、华东6(福州-本地地域)

亚太

菲律宾(马尼拉)、印度尼西亚(雅加达)、日本(东京)、马来西亚(吉隆坡)、新加坡、泰国(曼谷)、韩国(首尔)

欧洲与美洲

德国(法兰克福)、美国(硅谷)、美国(弗吉尼亚)、墨西哥

操作步骤

  1. 进入控制台

    登录Web应用防火墙3.0控制台。在顶部菜单栏,选择WAF实例的资源组和地域(中国内地非中国内地)。在左侧导航栏,单击接入管理。选择云产品接入页签,在左侧云产品类型列表,选择应用型负载均衡 ALB

  2. 云产品授权(仅限未完成授权用户)

    根据页面提示,单击立即授权,完成云产品授权。您可以在RAM控制台身份管理 > 角色页面,查看创建的服务关联角色AliyunServiceRoleForWAF

  3. 接入ALB实例

    在右侧列表,查看ALB实例及其WAF防护状态,找到希望接入WAFALB实例,在操作列单击立即接入,如果找不到目标实例,请单击页面右上角同步资产,若仍无法找到,说明实例不满足适用范围

    重要

    ALB实例接入WAF后,将自动升级为ALB WAF增强版,这将在ALB侧产生额外费用,详细信息请参见ALB计费规则

    image

    说明

    您也可以勾选多个ALB实例批量接入,或点击一键全量接入,一键为所有实例接入WAF。

  4. 验证防护效果

    WAF防护状态显示全部防护时,表示接入成功。此时在浏览器输入您的网站域名和Web攻击代码进行验证(例如<您的网站域名>/alert(xss)alert(xss)为用作测试的跨站脚本攻击代码),如果返回405拦截提示页面,表示攻击已被成功拦截,WAF防护已生效。

后续步骤

查看并配置防护规则

完成接入后,WAF将自动创建一个后缀为-alb的防护对象,并为该防护对象默认启用Web核心防护规则等模块的防护规则,可以在防护配置 > 防护对象页面查看。如果默认的防护规则不满足您的业务需求,可以新建或编辑防护规则。更多信息,请参见防护配置概述

说明

若您有多个域名解析指向了同一ALB实例,并且希望在接入后单独为这些域名配置不同的防护规则,则还需要手动将域名添加为防护对象,详细信息,请参见手动添加防护对象

image

相关操作

接入回滚(取消接入)

  • 临时关闭WAF防护:如果您在接入后出现问题,例如出现大量误拦截,需要临时关闭WAF防护时,可以在WAF控制台的防护对象页面中,关闭WAF防护状态开关。更多信息,请参见一键关闭WAF防护功能

  • 取消接入:如果您不再希望使用WAFALB实例进行防护,可以在云产品接入页签,从左侧云产品类型列表中选择应用型负载均衡 ALB,在实例列表单击目标实例操作列的取消接入,在弹出的对话框,单击确定

    重要
    • 取消接入后,ALB实例上的业务流量将不再受WAF防护,安全报表中也不再包含相关业务流量的防护数据。

    • 如果您的WAF实例为按量付费,取消接入ALB实例后不会产生请求处理费,但由于WAF实例本身及其他防护规则的存在,仍会产生功能费。若您不再希望继续使用WAF并停止WAF计费,请参见关闭WAF

ALB侧接入并管理WAF防护

除了本文提供的接入与管理方式,您也可以参考以下文档,在ALB侧为ALB实例开启WAF防护。

应用于生产环境

接入和取消接入ALB实例的过程对业务无影响。但接入ALB实例时,您仍需关注日志与监控,确保业务可用性。

  • 灰度策略:优先在业务低峰期接入非生产环境的ALB实例,运行一段时间以确认业务正常后,再接入生产环境的ALB实例。

  • 检查业务:接入完成后,您可以通过如下方式确认业务是否正常。

    • 查看日志:查看日志中状态码200的占比是否有明显波动、QPS是否有明显突增突降等。若您已开启ALBWAF日志服务,可以参考ALB日志WAF日志进行检查。

    • 业务监控:检查业务侧功能是否正常,例如用户访问、交易等功能。

  • 后续运维:生产环境接入完成后,需进行持续的运维工作,关注攻击与误拦截事件。

    • 事件查收:建议关注安全报表,并配置云监控通知,及时了解攻击事件与安全事件。

    • 调整规则:回顾攻击日志,分析是否存在业务请求被误拦截的情况,针对性优化防护规则。

配额与限制

  • 实名认证:购买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实例?

请先尝试单击接入管理页面右上角同步资产image

若仍无法找到,说明实例不满足适用范围。例如非中国内地地域的ALB实例需要通过购买非中国内地WAF进行云产品接入,或使用CNAME接入

image

同一个域名解析指向了多个ALB实例,该如何接入?

  • 使用云产品接入:需要同时接入这些ALB实例,实现WAF对这几个实例进行防护。

  • 使用CNAME接入:CNAME接入此域名并配置源站为多个ALB实例的CNAME。

多个域名解析指向了同一个ALB实例,该如何接入?

  • 使用云产品接入:接入此云产品实例后,实例上的所有域名都将受到WAF默认防护策略的防护。但如果您希望单独为这些域名配置不同的防护规则,则需要手动将域名添加为防护对象,详细信息,请参见手动添加防护对象

  • 使用CNAME接入:逐一接入多个域名。

ALB实例上的域名能否同时使用云产品接入和CNAME接入?

不推荐。每个域名只能使用云产品接入或CNAME接入两种模式之一,重复接入将导致转发冲突防护失效。如果您已通过CNAME接入的域名,需要切换为云产品接入,您必须先将DNS解析切换回源站,待DNS解析收敛后,删除该域名的CNAME接入配置,然后重新进行云产品接入其对应的ALB实例。

WAF 2.0WAF 3.0接入ALB实例的原理差异

image
  • WAF 3.0 SDK集成:通过 SDK 集成的方式。SDK 内嵌于ALB实例,负责流量提取、检测与防护。WAF 不参与流量转发,避免引入额外转发层导致的兼容性与稳定性问题。请求只经过一道网关,省去了WAFALB实例同步证书和加密套件配置的步骤,不会出现证书和配置不同步等问题。

  • WAF 2.0透明化接入:采用透明代理的方式,通过配置引流端口,云产品网关自动改变路由,将Web业务引流到 WAF。WAF 拦截攻击流量,转发正常请求至源站,同时参与流量的转发和检测防护。请求需经过两道网关,WAF侧与负载均衡侧都需维护超时时间和证书等配置。

更多信息,请参见WAF 3.0WAF 2.0对比