关于 waf
AWS WAF 技能为配置 Web 应用防火墙提供分步骤指导,适用于管理 CloudFront、负载均衡器和 API 等资源防护的人员。它按任务路由到独立流程,并强调先启用日志、正确设置 ACL 范围及防止转发标头伪造。
主要功能
- 01创建并关联 Web ACL
- 02配置托管规则与速率规则
- 03设置 IP 与地理位置匹配
- 04管理 Bot Control 与欺诈防护
- 05配置日志及 AI 爬虫管理
适用场景
- 01为 API 或负载均衡器创建 WAF 防护
- 02分析日志并调整规则误报
- 03限制 HTTP 洪泛或暴力请求
- 04保护登录注册并管理机器人流量
MCP 相关
连接 AWS MCP 服务时,技能通过其执行 AWS 命令,支持沙箱执行、审计日志和可观测性;未连接时可改用 AWS CLI。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ aws/ agent-toolkit-for-aws --skill waf安装后在 Claude Code 中输入/waf确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/adaptive-mitigation-playbook-for-forwarded-signals.mdadding-managed-rules-and-tuning-with-count-mode.mdadding-rate-based-rules.mdcreating-a-web-acl-and-associating-it-with-a-resource.mdforwarding-signals-with-dynamic-label-interpolation.mdprotecting-against-bots-with-bot-control.mdprotecting-logins-and-signups-with-fraud-control.mdrecovering-the-real-client-ip-behind-a-cdn.mdseeing-and-managing-ai-crawler-traffic.mdsetting-up-logging-and-request-sampling.mdstripping-inbound-waf-headers-before-trusting-them.mdturning-bot-control-labels-into-a-confidence-signal.mdusing-ip-sets-and-geographic-match-rules.md详细介绍
AWS WAF
概述
配置 AWS WAF 的领域知识。AWS WAF 是一款 Web 应用防火墙,可过滤流向 CloudFront 分配、Application Load Balancer、API Gateway REST API 和 AppSync GraphQL API 的 HTTP 和 HTTPS 流量。内容涵盖 Web ACL 的创建与关联、AWS Managed Rules、基于速率的规则、匹配规则(IP 集和地理位置)、Bot Control 及基于它构建的信号转发工作流、针对登录和注册的 Fraud Control、AI 和 LLM 爬虫管理,以及每个调优工作流都依赖的日志记录。
此技能是一个路由器。每项客户任务都对应 references/ 下的一个流程文件。执行前,请完整阅读匹配的参考文件,然后遵循其中的约束和步骤。参考文件均为自包含文件:各自包含决策表、约束、流程和故障排除说明。
连接后,请使用 AWS MCP 服务执行命令(沙盒化执行、审计日志记录和可观测性)。否则,请改用 AWS CLI。Web ACL 的作用范围在创建时即固定:CloudFront Web ACL 必须在 us-east-1 中以 CLOUDFRONT 作用范围创建,而区域 Web ACL(Application Load Balancer、API Gateway、AppSync)必须在资源所在的 Region 中以 REGIONAL 作用范围创建。
需要执行哪项 WAF 任务?
| 目标 | 参考文档 |
|---|---|
| 创建 Web ACL 并将其附加到资源 | 创建 Web ACL 并将其与资源关联 |
| 在调优前设置日志记录和请求采样 | 设置日志记录和请求采样 |
| 添加 AWS Managed Rules 并调优误报 | 添加托管规则并使用计数模式进行调优 |
| 限制 HTTP 洪泛攻击和暴力破解 | 添加基于速率的规则 |
| 根据 IP 范围或国家/地区放行或拦截 | 使用 IP 集和地理位置匹配规则 |
| 检测并控制机器人(入门方案) | 使用 Bot Control 防护机器人 |
| 将机器人标签归并为单一置信度信号 | 将 Bot Control 标签转换为置信度信号 |
| 使用一条规则将所有信号转发到源站 | 使用动态标签插值转发信号 |
| 确定应用如何处理转发的信号 | 转发信号的自适应缓解操作手册 |
| 防止攻击者伪造转发的标头 | 在信任 WAF 标头前剥除传入的 WAF 标头 |
| 还原 CDN 后真实的客户端 IP | 还原 CDN 后真实的客户端 IP |
| 防范登录和注册欺诈 | 使用 Fraud Control 保护登录和注册 |
| 查看和管理 AI 与 LLM 爬虫流量 | 查看和管理 AI 爬虫流量 |
路由说明
- 先启用日志记录,再进行调优。 所有 Count 模式调优工作流都假定已启用日志记录和请求采样。如果客户尚未设置日志记录,请先运行相应参考;否则,Count 模式调优就无从读取数据。
- Web ACL 的范围在创建时固定。 CloudFront Web ACL 的范围为
CLOUDFRONT,位于us-east-1;区域资源需要在其所在区域创建REGIONALWeb ACL。范围之后无法更改,因此创建相关参考会在构建任何内容之前确定范围。 - Bot Control 是一组连续步骤,而非单项任务。 防护机器人是起点(启用、选择 Common 或 Targeted、观察)。将标签转化为置信度信号、转发该信号,以及决定应用如何处理该信号,是三个按顺序构建的独立参考。每当信号转发到源站时,都必须配套使用剥离标头的参考,以确保安全。
- Common 与 Targeted 不是随意选择。 Common 只能捕获主动表明身份的机器人和已知恶意 IP。对于面向规避型机器人的登录、结账或任何高价值端点,必须使用集成了应用 SDK 的 Targeted。机器人参考会针对实际机器人威胁推荐使用 Targeted,而不是将其视为可选项。
- 速率限制与 Fraud Control。 基于速率的规则可减轻大流量 HTTP 洪泛攻击。凭据填充和虚假账户创建属于基于账户的滥用,速率限制无法应对;这类问题应使用 Fraud Control 参考(ATP 和 ACFP),而非基于速率的参考。
- 转发标头时需要配置剥离规则。 只要客户通过
x-amzn-waf-*标头将信号或客户端 IP 转发到源站,就必须使用入站标头剥离参考,以防止欺骗。置信度信号、插值和客户端 IP 参考都指向该参考。 - 其他技能涵盖的内容。 L3/L4 DDoS 防护和 Shield 费用保护抵免由 shieldadvanced 技能负责。多账户 WAF 部署由 firewallmanager 技能负责。CloudFront 和 Application Load Balancer 配置由各自的技能负责。本技能用于构建 WAF 规则,不负责配置其保护的资源。
安全注意事项
AWS WAF 本身就是一种安全控制,因此配置错误会直接削弱应用的防御能力。 请在每个引用场景中遵循以下要求:
- 最小权限 IAM。 你 MUST 仅授予任务所需的特定
wafv2:操作(例如wafv2:CreateWebACL、wafv2:GetWebACL、wafv2:UpdateWebACL、wafv2:AssociateWebACL、wafv2:PutLoggingConfiguration),而不是授予wafv2:*或使用AWSWAFFullAccess托管策略。 - 临时凭证。 运行这些 WAF CLI 命令时,你 MUST 使用带有临时凭证的 IAM 角色(例如 EC2 实例配置文件、SSO 会话或
aws sts assume-role),而不是长期有效的 IAM 用户访问密钥。 - 监控配置变更。 你 SHOULD 为
wafv2管理事件启用 AWS CloudTrail,并针对关键 Web ACL 配置变更(例如DeleteWebACL和移除规则的UpdateWebACL)以及 Web ACL 的BlockedRequests和CountedRequests指标设置 CloudWatch 警报,以便检测规则变更以及拦截或计数流量的突然激增。 - 配置错误会导致访问放行。 创建后从未关联的 Web ACL,或默认操作设为
Allow且没有强制执行规则的 Web ACL,都不会过滤任何流量。在报告设置完成之前,你 MUST 确认 Web ACL 已关联,且其安全状态符合预期的默认策略(拦截或放行)。 - 保护日志目标。 日志可能会捕获凭证和会话数据。你 MUST 对敏感字段(例如
authorization标头和cookie)进行脱敏,并且 MUST 对日志目标(CloudWatch Logs、Amazon S3 或 Amazon Data Firehose)启用静态加密。 - 标头欺骗风险。 转发到源站的任何
x-amzn-waf-*信号都可能被伪造后随请求传入。只要转发了信号或客户端 IP,你 MUST 添加入站标头剥离规则(请参阅 stripping-inbound-waf-headers-before-trusting-them)。