Web 应用防火墙 SaaS 型 WAF 迁移至云原生型 WAF 方案

随着业务规模增长与架构演进,现有 SaaS 型 WAF 在云上稳定性和资源的协同方面逐渐难以满足业务需求。为提升接入防护的稳定性和可维性,现计划在同一腾讯云账号内,将现有 SaaS 型 WAF 迁移至云原生型 WAF。

相关产品
Web 应用防火墙 产品页,含版本规格、价格与购买入口。

一、迁移背景

本次迁移的核心驱动力包括:

·稳定性提升:防护节点与业务集群同地域部署,减少跨网络链路通信,降低业务整体访问延迟,提升稳定性;

·业务架构适配:现有业务已基于 CLB + 服务器集群构建,迁移至云原生 WAF 可与业务架构适配,避免重新在 WAF 配置 SSL 证书,提升运维效率。

当前业务架构如下所示,业务使用 SaaS 型 WAF、公网 CLB 和服务器集群,需迁移至云原生型 WAF。

二、迁移前检查清单

检查项 说明
QPS 峰值、平均值 确认云原生型 WAF 的 QPS 容量满足业务需求
主域名与子域名数量 确认云原生型 WAF 的域名规格满足业务需求
域名同时接入 SaaS 型 WAF 与云原生型 WAF 的能力 需腾讯云 WAF 服务团队提前加白处理
业务低峰期 在业务低峰期执行迁移变更
公网 CLB 准备 需准备一个与当前规格相同的公网 CLB
流量灰度方案 1、环境:建议先选择测试或非核心、非生产环境业务进行迁移和验证,最后再迁移核心或生产环境业务。2、域名:按流量从小到大的顺序逐步迁移域名。3、迁移方案:采用分阶段逐步放量的方式,确保高流量业务平稳过渡。流量切换共分为 6 个阶段,比例依次为 1% → 10% → 30% → 50% → 70% → 100%,整体周期为 4 周。

三、步骤 1:准备新公网 CLB

创建一个公网 CLB(下文统称为新 CLB),其相关域名的转发策略及后端服务需与旧 CLB 保持一致。创建 CLB 以及计费详情,请参见 负载均衡快速入门。

此步骤将新增一条经由新 CLB 的访问链路,为后续流量迁移做准备。

注意:监听器需配置为 HTTP/HTTPS 七层监听器。

架构如下:

四、步骤 2:关闭 WAF 开关

同一腾讯云账号下,域名可同时接入 SaaS 型 WAF 和云原生型 WAF,但两者仅允许其中一个开启 WAF 开关。因此,需先关闭 SaaS 型 WAF 的 WAF 开关,再接入云原生型 WAF。

注意:说明:

1. 登录 Web 应用防火墙控制台,在左侧导航栏顶部,将控制台切换至实例所在区域(中国大陆/非中国大陆)。

2. 在左侧导航栏中,选择接入管理 > CNAME 接入。

3. 在 CNAME 接入页面,关闭 subdomain1 的 WAF 开关。

五、步骤 3:接入域名至云原生型 WAF

将 步骤 2 中待迁移的域名通过精准域名方式接入云原生型 WAF。接入后,相关自定义规则将自动复制至云原生型 WAF,无需对历史自定义规则进行迁移或处置。

接入时,仅选择新创建的 CLB。云原生 WAF 接入操作请参见 云原生 WAF 接入指南。

接入后,请确认以下事项:

1. 确认云原生型 WAF 的 WAF 开关已开启。

2. 确认防护模式已设置为观察(如未设置,在 基础安全页面单击批量设置进行设置)。

操作完成后,架构如下:

六、步骤 4:修改回源地址

将 subdomain1 的回源地址修改为新 CLB 的 EIP。以腾讯云 DNSPod 修改 DNS 解析为例,具体操作请参见 腾讯云 DNSPod 修改 DNS 解析操作。

完成本步骤后,对应子域名的流量将经由新 CLB 转发至云原生型 WAF。未迁移的域名仍通过原链路接入 SaaS 型 WAF;已迁移域名的新 DNS 解析将逐步生效,生效后经由新链路接入云原生型 WAF。

架构如下:

七、步骤 5:观察业务与攻击日志

1. 观察业务是否正常(关注时延、异常状态码等指标)。

2. 排查攻击日志是否存在误拦截(当前为观察模式,仅产生命中记录,不会执行实际拦截)。

注意:说明:

注意:当前业务已在 SaaS 型 WAF 上稳定运行一段时间,且两侧自定义规则完全一致,发生误拦截的概率较低。

八、步骤 6:迁移剩余域名

对其余域名,循环执行步骤 2 至步骤 5,直至所有域名均从 SaaS 型 WAF 迁移至云原生型 WAF。

九、步骤 7:等待流量全部迁移至新 CLB

监控旧 CLB 上的流量直至清零,此时所有域名的流量都将经由新 CLB 转发至云原生型 WAF 进行防护。

注意:在旧 CLB 的流量清零之前,请勿对旧 CLB 和 SaaS 型 WAF 进行任何修改,以保证服务可用。

流量全部迁移至新 CLB 后,架构如下:

十、步骤 8:将防护模式设置为拦截

观察一段时间并确认无异常后,在 WAF 基础安全页面,将防护模式设置为拦截。

十一、步骤 9:确认是否销毁旧 CLB 和 SaaS 型 WAF

此时,可根据业务需要确认是否销毁旧 CLB 和 SaaS 型 WAF。至此,整个迁移操作完成。

注意:删除 SaaS 型 WAF 后,需手动重新开启云原生型 WAF 上相关域名的访问日志与日志投递开关。

十二、应急方案

若云原生型 WAF 出现紧急情况,在 WAF 接入管理 中关闭对应域名的 WAF 开关,以保障业务正常运行(关闭后,流量将不经过 WAF )。

十三、迁移前后对比和注意事项

对比维度 SaaS 型 WAF 云原生型 WAF
架构 串联 旁路
网页防篡改 支持 不支持
数据防泄漏 支持 不支持
超量影响 同一自然日内,实例的业务 QPS 峰值超过实例规格值但未达到实例沙箱隔离阈值累计3次(含3次),或 QPS 峰值超过实例隔离沙箱隔离阈值1次(含1次),实例业务流量将立即进入沙箱隔离状态,进入沙箱隔离状态的实例将不再保证 SLA。参考:沙箱隔离状态 

注意:若源站已配置 SaaS 型 WAF 回源 IP 限制,迁移前需为新 CLB 剔除 IP 访问限制。

十四、迁移自定义规则策略

若部分 SaaS 型 WAF 自定义策略未迁移至云原生型 WAF,可采用手动方式添加。

十五、将 CLB 以对象方式接入云原生型 WAF

建议开启对象接入,作为兜底防护策略集用于防护更多的未知域名流量。对象接入操作请参见 云原生实例对象接入。

注意:完成对象接入后,若子域名流量经过 WAF,将优先命中精准域名安全策略,对象接入策略不生效;反之,若子域名未通过精准域名方式接入云原生型 WAF,将命中对象接入安全策略,作为兜底防护。详情请参见 云原生实例对象接入。

赞 (0)
上一篇 5天前
下一篇 5天前