如何清理 AWS WAF 記錄?
我想要記錄 AWS WAF 中遭到封鎖的請求。不過,我不想要記錄保護套件分析的所有請求。
簡短說明
透過 AWS WAF 日誌篩選,您能篩選已記錄的 Web 請求,僅保留您要分析的資訊。您可以指定檢查後要將 Web 請求寫入日誌,還是從日誌捨棄。這能降低日誌交付與儲存成本,因為 AWS WAF 只發佈您需要的日誌。
若要篩選 AWS WAF 日誌,請先啟用 AWS WAF 記錄。
若要清理日誌,請實作欄位遮蔽和日誌篩選。
**欄位遮蔽:**遮蔽您不想保留在日誌中的請求部分。您可以從日誌記錄省略以下欄位: URI 路徑、查詢字串、單一標頭和 HTTP 方法。遮蔽後的欄位會在日誌中顯示為 REDACTED。
**日誌篩選:**指定篩選條件,以根據規則動作或規則在評估期間產生的標籤,篩選掉日誌項目。若要針對所有含有標籤的請求篩選 AWS WAF 日誌,請納入使用完整限定標籤名稱的所有標籤。使用以下格式:awswaf:account_number:webacl:webacl_name:namespace:label name。
**注意:**您使用 AWS 日誌篩選不會產生額外費用。不過,記錄目的地會產生費用。這包括 Amazon CloudWatch、Amazon Simple Storage Service (Amazon S3) 儲存貯體和 Amazon Data Firehose 交付串流。
使用 AWS WAF 主控台啟用 AWS WAF 日誌篩選
- 開啟 AWS WAF console (AWS WAF 主控台)。
- 在「區域」中,選擇您在其中建立防護套件的 AWS 區域。
- 在導覽窗格中,選擇 Resources & protection packs (資源和保護套件)。
- 在保護套件右側,選取區域名稱旁的圖示,以選擇該保護套件。
- 在您選擇的保護套件中,選取 Logging (記錄)。
- 選取「記錄」旁的 View and edit (檢視和編輯),以檢視或修改與此保護套件關聯的記錄組態。
- 在 Data protection settings (資料保護設定) 下,選擇 active (作用中)。
- 在 Scope (範圍) 下,選取 Logging destination only (僅限記錄目的地)。
- 選擇目的地類型和 CloudWatch 日誌群組。
- 在 Redacted Fields (遮蔽的欄位),選取您要從日誌省略的欄位。
**注意:**如果您要遮蔽單一標頭欄位,請指定自訂標頭。 - 在 Filter conditions (篩選條件),選取 Rule Action on request (請求的規則動作) 或 Request has label (請求具有標籤)。
在 Rule Action on request (請求的規則動作),選取 AWS WAF 日誌要依據其篩選的規則動作。例如: Allow、Block、Count、CAPTCHA 或 Challenge。
在 Request has label (請求具有標籤),輸入 AWS WAF 在評估請求時新增的標籤。 - 在 Filter behavior (篩選行為),選擇 Keep in logs (保留在日誌中) 或 Drop from logs (從日誌捨棄)。
- 在「保留在日誌中」或「從日誌捨棄」,選取預設記錄行為。
- 選擇 Save (儲存)。
使用 AWS Command Line Interface (AWS CLI) 啟用 AWS WAF 日誌篩選
**注意:**如果您在執行 AWS CLI 命令時收到錯誤,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本。
- 若要取得目前的記錄組態,請執行 get-logging-configuration:
**注意:**將 region 替換為 Web ACL 的 AWS 區域,將 resource-arn 替換為 Web ACL 的 Amazon Resource Name (ARN),並將 webacl_name 替換為 Web ACL 的名稱。aws wafv2 get-logging-configuration --region region--resource-arn arn:aws:wafv2:region:account_number:regional/webacl/webacl_name/webacl_id > waf.json - 開啟記錄組態檔,然後新增以下 JSON 篩選器:
**注意:**將篩選器和篩選動作替換為您需要的篩選器。"LoggingFilter": { "DefaultBehavior": "string", "Filters": [ { "Behavior": "string", "Conditions": [ { "ActionCondition": { "Action": "string" }, "LabelNameCondition": { "LabelName": "string" } } ], "Requirement": "string" } ] } - 若要更新記錄組態,請執行 put-logging-configuration:
**注意:**將 region 替換為 Web ACL 的區域。aws wafv2 put-logging-configuration --region region --cli-input-json file://waf.json
僅記錄遭封鎖的請求
若要只記錄 AWS WAF 封鎖的請求,請選取以 Rule Action (規則動作) 為基礎的篩選,然後將動作設定為 Block (封鎖)。Block 是 AWS WAF 中的終止動作。AWS WAF 日誌篩選器會檢查 AWS WAF 日誌項目的終止規則動作。如果動作是 Block,AWS WAF 日誌篩選器就會將項目新增至日誌。
記錄來自規則群組的 Count 請求
規則群組中規則的設定方式會決定日誌是否篩選 Count 請求。
**規則群組中規則的動作設定為 Count:**與此規則相符的請求日誌不包含 Count 動作。AWS WAF 日誌會改在 excludedRules 欄位下顯示此規則。在為 Count 篩選 AWS WAF 日誌時,AWS WAF 不會檢查此欄位。這表示 Count 動作的日誌篩選不會篩選這些請求。
**具有非終止動作 Count 的規則,會與 Allow 或 Block 等終止規則動作一起接受檢查:**AWS WAF 日誌會將這些請求納入依 Count 動作篩選的日誌中。
規則群組中規則的動作設定為 Override to Count: 對於這些請求,AWS WAF 日誌會在 nonTerminatingMatchingRules 欄位中包含 Count 動作。AWS WAF 日誌篩選器會檢查此欄位,因此規則會依 Count 動作篩選。
**注意:**EXCLUDED_AS_COUNT 是日誌篩選的有效動作類型。執行 put-logging-configuration 命令來設定此動作。
相關資訊
相關內容
AWS 官方已更新 10 個月前