欢迎来到云闪世界。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,您需要执行以下操作:
-
使用 Amazon WAF 控制台、Amazon SDK 或 CLI 创建一个 Web ACL,其中包含 Amazon WAF 托管式规则和您自己的自定义规则的所需组合。有关更多信息,请参阅Amazon WAF 入门和Web 访问控制列表(网络 ACL)。
-
響
-
API Gateway 需要区域应用程序的 Amazon WAFV2 Web ACL 或 Amazon WAF Classic Regional Web ACL。
-
将 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 阶段相关联,请按以下步骤操作:
- 通过以下网址登录到 Amazon API Gateway 控制台:https://console.aws.amazon.com/apigateway。
- 选择现有 API 或创建新 API。
- 在主导航中,选择阶段,然后选择一个阶段。
- 在阶段详细信息 部分中,选择编辑。
- 在**Web应用程序防火墙(Amazon WAF)**下,选择您的Web ACL。
- 如果您正在使用 Amazon WAFV2,请为区域应用程序选择 Amazon WAFV2 Web ACL。Web ACL 及其使用的任何其他 Amazon WAFV2 资源都必须与您的 API 位于相同区域中。
- 如果您使用的是 Amazon WAF Classic Regional,请选择区域 Web ACL。
- 选择保存更改(保存更改)。
使用 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 攻击包