使用 CloudFormation 从 WAFv2 创建 WebACL
Create a WebACL from WAFv2 with CloudFormation
我正在尝试使用 cloudformation 创建一个 WebACL 以保护应用程序 API 免受滥用,我的想法是限制 API 在 5 分钟内最多 100 个 ip 请求的访问.
为此,我必须使用 WAFv2,因为第一个版本似乎只支持:
- 静态黑名单
- 字节匹配
- 大小限制
- XSS
- SQLi
WAFv2 文档:
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-webacl.html
我写这个作为例子:
AWSTemplateFormatVersion: 2010-09-09
Resources:
WebACL:
Type: 'AWS::WAFv2::WebACL'
Properties:
Name: WebAclLimit100
Scope: "REGIONAL"
DefaultAction:
Type: ALLOW
VisibilityConfig:
SampledRequestsEnabled: true
CloudWatchMetricsEnabled: true
MetricName: WebAcLimit100
但是当我尝试将其上传到 CloudFormation 时,创建失败并显示以下消息:
Model validation failed (#: extraneous key [Type] is not permitted)
我认为问题出在这些方面:
DefaultAction:
Type: ALLOW
但我不知道如何在不在 CloudFormation 上失败的情况下分配 DefaultAction,我尝试了很多次(当然不同),但找不到正确的方法。互联网上没有 WAFv2 的示例,而且 WAF 第一版的语法似乎不兼容:(
嗨新手以下对我有用
AWSTemplateFormatVersion: 2010-09-09
Resources:
WebACL:
Type: 'AWS::WAFv2::WebACL'
Properties:
Name: WebAclLimit100
Scope: "REGIONAL"
DefaultAction:
Allow:
Type: ALLOW
VisibilityConfig:
SampledRequestsEnabled: true
CloudWatchMetricsEnabled: true
MetricName: WebAcLimit100
您需要更改 'DefaultAction',因为这需要 JSON 值:
请按照此处的示例部分 WAFv2 template
AWSTemplateFormatVersion: 2010-09-09
Resources:
WebACL:
Type: 'AWS::WAFv2::WebACL'
Properties:
Name: WebAclLimit100
Scope: "REGIONAL"
DefaultAction:
Allow: {}
VisibilityConfig:
SampledRequestsEnabled: true
CloudWatchMetricsEnabled: true
MetricName: WebAcLimit100
我正在尝试使用 cloudformation 创建一个 WebACL 以保护应用程序 API 免受滥用,我的想法是限制 API 在 5 分钟内最多 100 个 ip 请求的访问.
为此,我必须使用 WAFv2,因为第一个版本似乎只支持:
- 静态黑名单
- 字节匹配
- 大小限制
- XSS
- SQLi
WAFv2 文档: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-webacl.html
我写这个作为例子:
AWSTemplateFormatVersion: 2010-09-09
Resources:
WebACL:
Type: 'AWS::WAFv2::WebACL'
Properties:
Name: WebAclLimit100
Scope: "REGIONAL"
DefaultAction:
Type: ALLOW
VisibilityConfig:
SampledRequestsEnabled: true
CloudWatchMetricsEnabled: true
MetricName: WebAcLimit100
但是当我尝试将其上传到 CloudFormation 时,创建失败并显示以下消息:
Model validation failed (#: extraneous key [Type] is not permitted)
我认为问题出在这些方面:
DefaultAction:
Type: ALLOW
但我不知道如何在不在 CloudFormation 上失败的情况下分配 DefaultAction,我尝试了很多次(当然不同),但找不到正确的方法。互联网上没有 WAFv2 的示例,而且 WAF 第一版的语法似乎不兼容:(
嗨新手以下对我有用
AWSTemplateFormatVersion: 2010-09-09
Resources:
WebACL:
Type: 'AWS::WAFv2::WebACL'
Properties:
Name: WebAclLimit100
Scope: "REGIONAL"
DefaultAction:
Allow:
Type: ALLOW
VisibilityConfig:
SampledRequestsEnabled: true
CloudWatchMetricsEnabled: true
MetricName: WebAcLimit100
您需要更改 'DefaultAction',因为这需要 JSON 值: 请按照此处的示例部分 WAFv2 template
AWSTemplateFormatVersion: 2010-09-09
Resources:
WebACL:
Type: 'AWS::WAFv2::WebACL'
Properties:
Name: WebAclLimit100
Scope: "REGIONAL"
DefaultAction:
Allow: {}
VisibilityConfig:
SampledRequestsEnabled: true
CloudWatchMetricsEnabled: true
MetricName: WebAcLimit100