記錄 Web ACL流量資訊 - AWS WAFAWS Firewall Manager、 和 AWS Shield Advanced

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

記錄 Web ACL流量資訊

警告

AWS WAF 傳統支援將於 2025 年 9 月 30 日結束。

注意

這是 AWS WAF Classic 文件。只有在您在 2019 年 11 月 AWS WAF 之前建立 AWS WAF 規則和 Web 等資源ACLs,且尚未將其遷移至最新版本時,才應該使用此版本。若要遷移您的 Web ACLs,請參閱 將您的 AWS WAF Classic 資源遷移至 AWS WAF

如需 的最新版本 AWS WAF,請參閱 AWS WAF

注意

您無法使用 Amazon Security Lake 收集 AWS WAF Classic 資料。

您可以啟用記錄,以取得 Web 分析流量的詳細資訊ACL。日誌中包含的資訊包括 AWS WAF Classic 從您的 AWS 資源接收請求的時間、請求的詳細資訊,以及每個請求相符的規則的動作。

開始請您先建立 Amazon Kinesis Data Firehose。您可以選擇存放日誌的目的地。接下來,您可以選擇ACL您要啟用記錄的 Web。啟用記錄後, 會透過 firehose 將日誌 AWS WAF 傳遞至您的儲存目的地。

如需有關如何建立 Amazon Kinesis Data Firehose 和檢閱儲存日誌的資訊,請參閱什麼是 Amazon Data Firehose? 若要了解 Kinesis Data Firehose 組態所需的許可,請參閱使用 Amazon Kinesis Data Firehose 控制存取。

您必須擁有以下權限,才能順利啟用記錄:

  • iam:CreateServiceLinkedRole

  • firehose:ListDeliveryStreams

  • waf:PutLoggingConfiguration

如需服務連結角色和 iam:CreateServiceLinkedRole 許可的詳細資訊,請參閱使用 AWS WAF Classic 的服務連結角色

啟用 Web 的記錄 ACL
  1. 使用以字首 "aws-waf-logs-" 開頭的名稱建立 Amazon Kinesis Data Firehose,例如 aws-waf-logs-us-east-2-analytics。使用 PUT 來源以及您正在操作的區域建立資料 firehose。如果您要擷取 Amazon 的日誌 CloudFront,請在美國東部 (維吉尼亞北部) 建立 Firehose。如需詳細資訊,請參閱建立 Amazon Data Firehose 交付串流。

    重要

    請勿選擇 Kinesis stream 做為您的來源。

    一個 AWS WAF Classic 日誌相當於一個 Firehose 記錄。如果您通常每秒收到 10,000 個請求,並啟用完整日誌,則應該在 Firehose 中具有每秒 10,000 個記錄的設定。如果您未正確設定 Firehose, AWS WAF Classic 將不會記錄所有日誌。如需詳細資訊,請參閱 Amazon Kinesis Data Firehose 配額

  2. 登入 AWS Management Console 並在 開啟 AWS WAF 主控台https://console.aws.amazon.com/wafv2/

    如果您在導覽窗格中看到切換至 AWS WAF 傳統,請選取它。

  3. 在導覽窗格中,選擇 Web ACLs

  4. 選擇您要啟用記錄的 Web ACL 名稱。這會在右側窗格中開啟包含 Web 詳細資訊ACL的頁面。

  5. 記錄標籤中,選擇啟用記錄

  6. 選擇您在第一步驟建立的 Kinesis Data Firehose。您必須選擇以 "aws-waf-logs-" 開頭的 Firehose。

  7. (選用) 如果您不想要特定欄位及其值包含在日誌中,請編寫這些欄位。選擇要編寫的欄位,然後選擇新增。重複其他需要編寫的欄位。在日誌中編寫的欄位顯示為 REDACTED。例如,如果您編寫 Cookie 欄位,在日誌的 Cookie 欄位則會為 REDACTED

  8. 選擇 Enable Logging (啟用記錄日誌)

    注意

    當您成功啟用記錄時, AWS WAF Classic 將建立一個服務連結角色,具有將日誌寫入 Amazon Kinesis Data Firehose 的必要許可。如需詳細資訊,請參閱使用 AWS WAF Classic 的服務連結角色

停用 Web 的記錄 ACL
  1. 在導覽窗格中,選擇 Web ACLs

  2. 選擇您要停用記錄的 Web ACL 名稱。這會在右側窗格中開啟包含 Web 詳細資訊ACL的頁面。

  3. 記錄標籤中,選擇停用記錄

  4. 在對話方塊中,選擇停用記錄

範例日誌
{ "timestamp":1533689070589, "formatVersion":1, "webaclId":"385cb038-3a6f-4f2f-ac64-09ab912af590", "terminatingRuleId":"Default_Action", "terminatingRuleType":"REGULAR", "action":"ALLOW", "httpSourceName":"CF", "httpSourceId":"i-123", "ruleGroupList":[ { "ruleGroupId":"41f4eb08-4e1b-2985-92b5-e8abf434fad3", "terminatingRule":null, "nonTerminatingMatchingRules":[ {"action" : "COUNT", "ruleId" : "4659b169-2083-4a91-bbd4-08851a9aaf74"} ], "excludedRules": [ {"exclusionType" : "EXCLUDED_AS_COUNT", "ruleId" : "5432a230-0113-5b83-bbb2-89375c5bfa98"} ] } ], "rateBasedRuleList":[ { "rateBasedRuleId":"7c968ef6-32ec-4fee-96cc-51198e412e7f", "limitKey":"IP", "maxRateAllowed":100 }, { "rateBasedRuleId":"462b169-2083-4a93-bbd4-08851a9aaf30", "limitKey":"IP", "maxRateAllowed":100 } ], "nonTerminatingMatchingRules":[ {"action" : "COUNT", "ruleId" : "4659b181-2011-4a91-bbd4-08851a9aaf52"} ], "httpRequest":{ "clientIp":"192.10.23.23", "country":"US", "headers":[ { "name":"Host", "value":"127.0.0.1:1989" }, { "name":"User-Agent", "value":"curl/7.51.2" }, { "name":"Accept", "value":"*/*" } ], "uri":"REDACTED", "args":"usernam=abc", "httpVersion":"HTTP/1.1", "httpMethod":"GET", "requestId":"cloud front Request id" } }

以下是這些日誌中所列項目的說明:

timestamp

時間戳記,以毫秒為單位。

formatVersion

日誌的格式版本。

webaclId

Web GUID的 ACL。

terminatingRuleId

終止請求的規則 ID。如果無法終止請求,則值為 Default_Action

terminatingRuleType

終止請求的規則類型。可能的值:RATE_BASED、 REGULAR和 GROUP。

動作

動作。終止規則的可能值: ALLOW和 BLOCK。COUNT 不是終止規則的有效值。

terminatingRuleMatch詳細資訊

符合請求之終止規則的詳細資訊。終止規則對 Web 請求具有結束檢查程序的動作。終止規則的可能動作為 ALLOW和 BLOCK。這僅適用於SQL注入和跨網站指令碼 (XSS) 比對規則陳述式。與所有檢查多個項目的規則陳述式一樣, AWS WAF 會在第一個符合項目上套用動作,並停止檢查 Web 請求。具有終止動作的 Web 請求除了包含記錄中報告的威脅之外,還可能包含其他威脅。

httpSourceName

請求的來源。可能的值:CF (如果來源是 Amazon CloudFront)、 APIGW(如果來源是 Amazon API Gateway) 和 ALB(如果來源是 Application Load Balancer )。

httpSourceId

來源 ID。此欄位會顯示關聯的 Amazon CloudFront 分佈 ID、RESTAPI適用於 API Gateway 的 或 Application Load Balancer 的名稱。

ruleGroupList

處理此請求的規則群組名單。前述程式碼範例僅有一個規則群組。

ruleGroupId

規則群組的 ID。若規則封鎖請求,則 ruleGroupID 的 ID 將與 terminatingRuleId 的 ID 相同。

terminatingRule

在規則群組中終止請求的規則。若此不是 null 值,則也包含 ruleid (ruleid)action (動作)。在此情況下,動作一律為 BLOCK。

nonTerminatingMatching規則

規則群組中符合請求的規則名單。這些一律是COUNT規則 (符合的非終止規則)。

動作 (nonTerminatingMatching規則群組)

這一律是 COUNT(符合 的非終止規則)。

ruleId (nonTerminatingMatching規則群組)

在規則群組符合請求的規則 ID 為非終止的。也就是說,COUNT規則。

excludedRules

規則群組中已排除的規則清單。這些規則的動作設定為 COUNT。

exclusionType (excludedRules 群組)

表示排除規則具有動作 的類型COUNT。

ruleId (excludedRules 群組)

在規則群組中被排除的規則 ID。

rateBasedRule清單

處理請求的以速率為基礎的規則名單。

rateBasedRuleID

處理請求的速率規則 ID。若此項目已終止請求,則 rateBasedRuleId 的 ID 將與 terminatingRuleId 的 ID 相同。

limitKey

AWS WAF 用於判斷請求是否可能來自單一來源,因此受到速率監控的欄位。可能的值:IP。

maxRateAllowed

五分鐘內允許的請求數量上限,此值與 limitKey 指定之欄位中的值相同。如果請求數超過 ,maxRateAllowed而且也符合規則中指定的其他述詞, 會 AWS WAF 觸發為此規則指定的動作。

httpRequest

請求的中繼資料。

clientIp

傳送請求的用戶端 IP 地址。

國家/地區

請求來源的國家/地區。如果 AWS WAF 無法判斷原始國家/地區,則會將此欄位設定為 -

標頭

標題清單。

uri

請求URI的 。前述程式碼範例說明此欄位經修訂後可能的值。

args

查詢字串。

httpVersion

HTTP 版本。

httpMethod

請求中HTTP的方法。

requestId

請求的 ID。