AWS WAFv2 自动保护 API 网关实现指南

欢迎来到云闪世界。Amazon WAF 是一个 Web 应用程序防火墙,可帮助保护 Web 应用程序和 API 外壳攻击。通过它,您可以配置一组规则(称为 Web 访问控制列表,即 Web ACL),基于可自定义的Web安全规则以及您定义的条件,允许、阻止或统计Web请求。

您可以使用 Amazon WAF 保护 API Gateway REST API 接收常见的 Web 漏洞攻击,例如 SQL 注入和跨站脚本攻击(XSS)。这些威胁可能会影响 API 的可用性和性能、损害安全性或消耗过多的资源例如,您可以创建规则以允许或阻止以下请求:来自指定 IP 地址范围的请求;来自 CIDR 块的请求;源自特定国家/地区或区域的请求;包含恶意 SQL 代码的请求;或者包含恶意脚本的请求。

您还可以使用 HTTP 标头、方法、查询字符串、URI 和请求正文中的指定字符串或正则表达式模式匹配的规则(限制为之前创建 64 KB)。此外,您还可以创建规则来阻止来自特定的规则用户代理、恶意机器人和内容程序会吸引攻击。例如,您可以使用基于速率的规则来指定每个客户端 IP 在尾随的、不断更新的 5 分钟内允许的 Web 请求数。

Amazon WAF 是抵御 Web 漏洞攻击的第一道防线。在 API 上启用 Amazon WAF 时,会先评估 Amazon WAF 规则,然后再评估访问控制特征,例如资源策略其他IAM 策略Lambda 授权方Amazon Cognito 授权方。例如,如果 Amazon WAF 阻止从资源策略允许的 CIDR 块进行访问,Amazon WAF 将优先进行并且不降低资源策略。

要为 API 启用 Amazon WAF,您需要执行以下操作:

  1. 使用 Amazon WAF 控制台、Amazon SDK 或 CLI 创建一个 Web ACL,其中包含 Amazon WAF 托管式规则和您自己的自定义规则的所需组合。有关更多信息,请参阅Amazon WAF 入门Web 访问控制列表(网络 ACL)

  2. API Gateway 需要区域应用程序的 Amazon WAFV2 Web ACL 或 Amazon WAF Classic Regional Web ACL。

  3. 将 Amazon WAF Web ACL 与 API 阶段关联。您可以使用 Amazon WAF 控制台、Amazon SDK、CLI 或使用 API Gateway 控制台来完成此操作。

使用 API Gateway 控制台将 Amazon WAF Web ACL 与 API Gateway API 阶段相关联

要使用 API Gateway 控制台将 Amazon WAF Web ACL 与现有的 API Gateway API 阶段相关联,请按以下步骤操作:

  1. 通过以下网址登录到 Amazon API Gateway 控制台:https://console.aws.amazon.com/apigateway
  2. 选择现有 API 或创建新 API。
  3. 在主导航中,选择阶段,然后选择一个阶段。
  4. 阶段详细信息 部分中,选择编辑
  5. 在**Web应用程序防火墙(Amazon WAF)**下,选择您的Web ACL。
  6. 如果您正在使用 Amazon WAFV2,请为区域应用程序选择 Amazon WAFV2 Web ACL。Web ACL 及其使用的任何其他 Amazon WAFV2 资源都必须与您的 API 位于相同区域中。
  7. 如果您使用的是 Amazon WAF Classic Regional,请选择区域 Web ACL。
  8. 选择保存更改(保存更改)

使用 Amazon CLI 将 Amazon WAF Web ACL 与 API Gateway API 级别相关联

要使用 Amazon CLI 将区域应用程序的 Amazon WAFV2 Web ACL 与现有的 API Gateway API 阶段相关,请调用associate-web-acl命令,如以下示例中所示:

ba 复制代码
aws wafv2 关联 Web ACL \ 
--web-acl-arn   arn:aws:wafv2: {区域} :111122223333 :region/webacl/test-cli/a1b2c3d4-5678-90ab - cdef- EXAMPLE11111 \ 
--resource-arn arn:aws:apigateway: {区域} ::/restapis/ 4wk1k4onj3/stages/prod

要使用 Amazon CLI 将 Amazon WAF Classic Regional Web ACL 与现有的 API Gateway API 阶段相关联,请调用associate-web-acl命令,如以下示例中所示:

ba 复制代码
aws waf-region 关联-web-acl \ 
--web-acl- id  'aabc123a-fb4f-4fc6-becb-2b00831cadcf' \ 
--resource-arn 'arn:aws:apigateway:{region}::/restapis/4wk1k4onj3/stages/prod'

使用 Amazon WAF REST API 将 Amazon WAF Web ACL 与 API 阶段相关联

要使用 Amazon WAFV2 REST API 将区域应用程序的 Amazon WAFV2 Web ACL 与现有的 API Gateway API 阶段相关联,请使用AssociateWebACL命令,如以下示例中所示:

ba 复制代码
导入 boto3 
 
wafv2  = boto3.client( 'wafv2' )
ax 复制代码
wafv2.associate_web_acl(
    WebACLArn ='arn:aws:wafv2:{区域}:111122223333:区域/webacl/test/abc6aa3b-fc33-4841-b3db-0ef3d3825b25',
    ResourceArn ='arn:aws:apigateway:{区域} :: / restapis / 4wk1k4onj3 / stages / prod' 

要使用 Amazon WAF REST API 将 Amazon WAF Classic Regional Web ACL 与现有的 API Gateway API 阶段相关,请使用AssociateWebACL命令,如以下示例中所示:

ba 复制代码
导入 boto3 
 
waf  = boto3.client( 'waf-region' ) 
 
waf.associate_web_acl( 
    WebACLId= 'aabc123a-fb4f-4fc6-becb-2b00831cadcf',
    ResourceArn= 'arn:aws:apigateway:{region}::/restapis/4wk1k4onj3/stages/prod'
 )

感谢关注云闪世界。(aws 解决方案架构师 vs 开发人员&GCP 解决方案架构师 vs 开发人员)

订阅频道(https://t.me/awsgoogvps_Host)
TG交流群(t.me/awsgoogvpsHost)

#aws api 网关 cli #aws cli #aws 攻击包

相关推荐
andxe9 小时前
安科士 AndXe 技术博客:400G QSFP112 SR4 光模块|AI 算力与超算短距互联最优方案
网络·人工智能·光模块·光通信
shiyi.十一10 小时前
第2章:应用层 — 知识要点与架构
网络·计算机网络·架构
DFT计算杂谈11 小时前
无 Root 权限在 Tesla K80 零门槛部署 DeepSeek 大模型
linux·服务器·网络·数据库·机器学习
水境传感 李兆栋11 小时前
GNSS 位移监测站 :毫米级感知,筑牢安全监测防线
网络
中微极客13 小时前
2026主流AI Agent框架技术选型与性能对比
运维·网络·人工智能
REST_302715 小时前
告别Excel孤岛:一款任务链路可视化工具带来的真实改变
大数据·微服务·云计算·编辑器·excel·动态规划
在水一缸16 小时前
苹果AI国行版过审背后的技术架构深度解析:端侧模型与私有云计算的融合实践
人工智能·架构·云计算·技术架构·苹果ai·端侧模型·私有云计算
猿的天空17 小时前
机器人双手迎来全栈训练系统:灵初智能EgoSteer让灵巧手无所不能
网络·人工智能·计算机·ai·程序员·机器人·编程
Xzaveir_77717 小时前
OPPO、vivo、荣耀号码认证:多终端拨测矩阵与异常复现
大数据·网络·科技·矩阵·产品经理·ai-native
wuqingshun31415917 小时前
从网络角度来看,用户从输入网址到网页显示,期间发生了什么?
网络