AWS Classic WAF 迁移到 WAFv2

将 AWS Classic WAF(经典 WAF)迁移到 WAFv2(新版 WAF)通常包括以下步骤:

1. 评估现有的 Classic WAF 规则和设置

首先要评估现有 Classic WAF 的配置,记录当前的规则集、IP 规则、速率限制和其他自定义规则。

2. 创建新的 WAFv2 Web ACL

在 AWS 管理控制台中:

  • 打开 WAF & Shield
  • 点击 Web ACLs,然后选择 Create Web ACL
  • 按照需求为 WAFv2 Web ACL 命名,并选择适当的关联资源(如 CloudFront 分配或 ALB)。

3. 转移 Classic WAF 规则

由于 AWS 没有直接的自动迁移工具,你需要手动将 Classic WAF 中的规则转移到 WAFv2 中。WAFv2 提供更强大的功能,例如基于正则表达式的规则、标签支持、基于 JSON 的规则集。你可以手动在 WAFv2 中创建与 Classic WAF 规则相匹配的规则。

以下是一些常见规则的迁移方式:

  • IP 规则:在 WAFv2 中创建相应的 IP Set。
  • 速率限制:在 WAFv2 中通过 “Rate-based rule” 实现速率限制。
  • 字符串匹配规则:在 WAFv2 中使用 “String match condition” 来匹配特定字符串。

4. 使用托管规则集(可选)

AWS WAFv2 提供一些托管规则集,你可以选择直接应用这些规则集来代替手动创建所有规则。这些规则集已经针对常见的攻击类型进行了优化。

5. 测试和验证

在将新的 WAFv2 Web ACL 应用到生产环境之前,先在测试环境中验证规则行为。可以将规则设置为 “Count” 模式来监控它们的效果而不会立即阻止流量。

6. 应用新的 WAFv2 Web ACL

确认 WAFv2 规则集工作正常后,将其应用到生产环境中的资源(如 CloudFront 或 ALB),然后关闭 Classic WAF。

7. 停用并删除 Classic WAF

当新的 WAFv2 Web ACL 完全取代 Classic WAF 并运行一段时间后,确认一切正常,便可以停用并删除 Classic WAF。

注意事项

  • WAFv2 的功能更强大,如更灵活的规则逻辑和更详细的日志记录,所以迁移时可以充分利用这些新功能进行优化。
  • 虽然 AWS 没有官方的自动化迁移工具,但你可以通过 AWS SDK 编写脚本以批量迁移部分规则。

这样就可以成功将 Classic WAF 迁移到 WAFv2。