質問・問題
AWS WAF の AWS マネージドルールで Count アクションを有効にしています。
ルールに一致するリクエストが発生していますが、ログに記録されません。
何が原因でしょうか?
回答・解決方法
原因
AWS マネージドルールで Rule action を Count とした場合、マッチしたリクエストは[COUNT]ではなく[EXCLUDED_AS_COUNT]として出力されます。
その為、ログフィルターの条件として「Rule action on request」を[COUNT] とした場合にログが出力されません。
回避策
回避策は以下の通りです。
-
フィルターを利用せず、すべてのログを出力する
-
put-logging-configuration コマンド により"EXCLUDED_AS_COUNT"を設定いただく
2の手順について、詳細にご案内いたします。
AWS CLI の put-logging-configuration コマンドで、Action に "EXCLUDED_AS_COUNT" を指定いただく方法となります。
(1). 設定用 JSON ファイルを作成 (例: exclude-log.json)
JSON 例:
{
"LoggingConfiguration": {
"ResourceArn": "WebACLのARN",
"LogDestinationConfigs": [
"arn:aws:s3:::S3バケット名"
],
"ManagedByFirewallManager": false,
"LoggingFilter": {
"Filters": [
{
"Behavior": "KEEP",
"Requirement": "MEETS_ALL",
"Conditions": [
{
"ActionCondition": {
"Action": "EXCLUDED_AS_COUNT"
}
}
]
}
],
"DefaultBehavior": "DROP"
}
}
}
(2) 上記 JSON ファイルを使用して put-logging-configuration コマンドを実行
$ aws wafv2 put-logging-configuration --cli-input-json file://exclude-log.json
注意点
ルールグループの Override rule group action にて Count を指定している場合は、AWS マネジメントルールのログも [COUNT] として出力されます。
参考情報
put-logging-configuration
https://docs.aws.amazon.com/cli/latest/reference/wafv2/put-logging-configuration.html
"ActionCondition": {
"Action": "ALLOW"|"BLOCK"|"COUNT"|"CAPTCHA"|"EXCLUDED_AS_COUNT"
}