category
本文由Heitor Lessa提供,AWS专业解决方案架构师- Serverless
今天,我很兴奋地向您介绍Amazon API网关与AWS WAF的本地集成。以前,如果希望使用AWS WAF在Amazon API网关中保护API,就必须部署一个区域性API端点,并使用自己的Amazon CloudFront发行版。现在,这个新特性允许您提供任何—API网关端点,并使用AWS WAF保护它,而无需配置自己的CloudFront发行版来添加该功能。
在本系列的第1部分中,我描述了如何使用AWS WAF保护API网关提供的API。
在本系列的第2部分中,我描述了如何使用API密钥作为CloudFront发行版和API网关之间的共享秘密,以确保在API网关中对API的公共访问是安全的。这种新的AWS WAF集成意味着不再需要第2部分中描述的方法。
下面的图像描述了在这个特性可用之前和之后在API网关中保护API的方法。
地点:
- AWS WAF仅保护CloudFront端点。
- AWS WAF本地保护Amazon API网关端点。
为Amazon API网关管理的API启用AWS WAF
对于本演练,您可以使用现有的宠物商店API或您可能已经部署的API Gateway中的任何API。您将创建一个新的AWS WAF web ACL,该ACL稍后与您的API网关阶段相关联。
按照以下步骤创建web ACL:
- 打开AWS WAF控制台。
- 选择Create web ACL。
- 对于Web ACL名称,输入ApiGateway-HTTP-Flood-Sample。
- 对于地区,选择美国东部(北弗吉尼亚)。
- 选择Next,直到您达到步骤3:创建规则。
- 选择Create rule并输入HTTP Flood Sample。
- 对于规则类型,选择基于速率的规则。
- 对于速率限制,输入2000并选择Create。
- 对于默认操作,选择“允许不匹配任何规则的所有请求”。
- 选择Review并创建。
- 确认您的选项与下图相似,然后选择Confirm和create next。
您现在可以按照以下步骤为API网关中的现有API启用AWS WAF web ACL:
- 打开Amazon API网关控制台。
- 选择阶段,刺激。
- 在Web应用程序防火墙(Web Application Firewall, WAF)下,选择ApiGateway-HTTP-Flood-Sample(或您刚刚创建的Web ACL)。
- 选择保存更改。
在API网关中测试您的API,现在由AWS WAF保护
AWS WAF提供HTTP洪水保护,这是一个基于速率的规则。当来自客户机的web请求超过可配置阈值时,将自动触发基于速率的规则。阈值由一个IP地址在5分钟内允许的最大传入请求数定义。
在突破这个阈值之后,IP地址的其他请求将被阻塞,直到请求速率低于该阈值为止。对于本例,您将2000个请求定义为基于HTTP洪泛率规则的阈值。
火炮是一个开源的现代负载测试工具包,用于将大量请求直接发送到API网关调用URL,以测试AWS WAF本机集成是否正常工作。
首先,按照以下步骤检索正确的宠物商店API调用URL:
- 打开API网关控制台。
- 在左侧导航窗格中,打开PetStore API。
- 选择stage、选择prod并复制Invoke URL值。
其次,使用cURL查询您的分布,并在触发速率限制规则之前查看API输出:
$ curl -s INVOKE_URL/pets
[
{
"id": 1,
"type": "dog",
"price": 249.99
},
{
"id": 2,
"type": "cat",
"price": 124.99
},
{
"id": 3,
"type": "fish",
"price": 0.99
}
]
然后,用Artillery 在短时间内发送大量请求,触发你的速率限制规则:
$ artillery quick -n 2000 --count 10 INVOKE_URL/pets
使用这个命令,炮兵 artillery 从10个并发用户向PetStore API发送2000个请求。通过这样做,您可以在5分钟内触发速率限制规则。简而言之,我没有在这里发布炮兵输出。
炮兵完成任务后,尝试重新运行cURL命令。你不应该再看到宠物列表:
{“message”:”Forbidden”}
从输出中可以看到,请求被AWS WAF阻塞。当您的IP地址低于请求限制速率时,将从阻塞列表中删除。
结论
正如您所看到的,通过AWS WAF与Amazon API网关的本机集成,您不再需要管理自己的Amazon CloudFront发行版来使用AWS WAF保护您的API。AWS WAF本机集成使此过程无缝。
我希望这篇文章中的信息对你有所帮助。请记住,您现在可以将此集成用于所有Amazon API网关端点(Edge、Regional和Private)。它在下列区域提供:
- US East (N. Virginia)
- US East (Ohio)
- US West (Oregon)
- US West (N. California)
- EU (Ireland)
- EU (Frankfurt)
- Asia Pacific (Sydney)
- Asia Pacific (Tokyo)
原文:https://aws.amazon.com/cn/blogs/compute/amazon-api-gateway-adds-support-for-aws-waf/
本文:http://pub.intelligentx.net/amazon-api-gateway-adds-support-aws-waf
讨论:请加入知识星球或者小红圈【首席架构师圈】
最新内容
- 1 week ago
- 1 week ago
- 1 week ago
- 1 week ago
- 1 week ago
- 1 week 6 days ago
- 2 weeks ago
- 2 weeks 2 days ago
- 2 weeks 2 days ago
- 2 weeks 2 days ago