アプリケーション API を悪用から保護するために、cloudformation を使用して WebACL を作成しようとしています。アイデアは、5 分間で最大 100 件の IP リクエストに対して API アクセスを制限することです。
最初のバージョンは次のものしかサポートしていないように見えるため、この目的のために 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 にアップロードしようとすると、次のメッセージが表示されて作成が失敗します。
モデルの検証に失敗しました (#: 無関係なキー [タイプ] は許可されていません)
問題は次の行にあると思います。
DefaultAction:
Type: ALLOW
しかし、CloudFormation で失敗せずに DefaultAction を割り当てる方法がわかりません。何度も (もちろん別の方法で) 試しましたが、正しい方法が見つかりません。WAFv2 のインターネット上の例はなく、WAF の最初のバージョンの構文は互換性がないようです :(