AWS WAF保护Web应用程序
一、进入 AWS WAF 控制台
打开 AWS 控制台,进入 WAF & Shield 页面,点击右侧“Create web ACL”按钮开始创建 Web 访问控制规则
二、创建 IP Set 黑名单
在规则设置之前,我们首先需要创建一个 IP Set,也就是将需要屏蔽的 IP 地址或地址段加入黑名单:
-
在左侧菜单栏点击
IP sets
。 -
点击右上角“Create IP set”
填写 IP Set 名称(如 deny_ip
),选择区域为 US East (N. Virginia)
,选择 IP 版本(IPv4),并在下方输入要封禁的 IP 段(如 192.168.8.0/24
)
点击 Create IP set 即可完成创建,创建成功提示如下
三、创建 Web ACL
-
回到首页,再次点击“Create web ACL”
-
在页面中填写 ACL 名称,例如
rule-name
,CloudWatch Metric Name 保持一致,点击 Next
四、添加规则并应用 IP 黑名单
-
在“Add rules and rule groups”步骤中,点击右上角“Add rules”按钮
在弹出的窗口中选择“IP set”作为规则类型,设置规则名称为 deny_ip
,并选择之前创建的 IP Set
选择匹配来源为 Source IP address
,选择动作为 Block,点击 Add rule 添加规则
五、扩展:添加地理位置封禁规则
除了 IP 地址,我们还可以根据国家或地区设置拒绝访问的规则。例如封禁某一国家的流量:
-
创建一个新的规则组,命名为
deny_geo
,并选择Regular rule
类型
后续选择 Geo match
规则,并在国家列表中选择需要屏蔽的国家,如 China、Russia 等。
然后点击Add rule
八、添加 SQL 注入攻击拦截规则(SQL Injection)
-
在添加规则类型时,选择“Rule builder”,命名为
sql_injection
: -
设置 Statement:
-
Inspect:
All query parameters
-
Match type:
Contains SQL injection attacks
-
Text transformation: 选择
None
或根据需要添加
-
-
设置 Statement:
-
Inspect:
All query parameters
-
Match type:
Contains SQL injection attacks
-
Text transformation: 选择
None
或根据需要添加
-
Action 设置为 Block
,点击 Add rule。
九、添加 XSS 攻击拦截规则(Cross-site Scripting)
-
同样使用
Rule builder
,命名为deny_xss
-
设置拦截逻辑:
-
Inspect:
All query parameters
-
Match type:
Contains XSS injection attacks
-
Action 设置为 Block
,点击 Add rule。
十、设置 DDoS 速率限制规则(Rate-based Rule)
为了防止恶意请求刷爆服务资源,我们可以设置访问速率限制:
-
创建规则时选择
Rate-based rule
类型,命名为deny_ddos
-
设置参数:
-
Rate limit: 例如每分钟最多
100
个请求 -
Evaluation window: 选择
1 minute
-
Aggregation: 选择
Source IP address
-
点击页面底部的 Add rule 即可。
十一、查看 Web ACL 中的所有规则
最终你可以在 Web ACL 的规则列表中看到所有你添加的规则:
-
deny_ip
-
deny_geo
-
sql_injection
-
deny_xss
-
deny_ddos
最后点击到我们创建的Web ACL里
关联我们要保护的资源
添加资源
这里我关联的是web的负载均衡器
然后点击Add