AWS WAF 政策 - AWS WAF, AWS Firewall Manager和 AWS Shield Advanced

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

AWS WAF 政策

在 Firewall Manager 員 AWS WAF 策略中,您可以指定要在資源中使用的 AWS WAF 規則群組。當您套用策略時,Firewall Manager 員會根據您ACLs在策略中設定 Web 管理的方式,ACLs在策略範圍內建立網頁帳戶。在策略ACLs建立的 Web 中,除了透過 Firewall Manager 員定義的規則群組外,個別帳戶管理員還可以新增規則和規則群組。

Firewall Manager 員如何管理 Web ACLs

Firewall Manager 員會ACLs根據您在策略中設定「管理未關聯的 Web」ACLs 設定的方式,或中的SecurityServicePolicyData資料類型中的optimizeUnassociatedWebACL設定來建立 Web。API

如果您啟用非關聯網路的管理ACLs,則 Firewall Manager 員只會ACLs在至少一個資源使用 Web 時,才ACLs會在策略範圍內的帳號中建立 Web。如果任何時候有帳戶進入策略範圍,如果至少有一個資源將使用 Web,則 Firewall Manager 員會ACL在帳戶中自動建立網頁ACL。當您啟用非關聯網頁的管理時ACLs,Firewall Manager 會執行一次性清除帳戶ACLs中未關聯的網頁。在清除期間,Firewall Manager 會略過您在建立後修改過的任何網頁ACLs,例如,如果您將規則群組新增至網頁ACL或修改了其設定。清理過程可能需要幾個小時。如果資源在 Firewall Manager 建立網頁之後離開策略範圍ACL,則 Firewall Manager 員會取消資源與網路的關聯ACL,但不會清除未關聯的網頁。ACL「Firewall Manager 員」只會在您第一次啟用策略中未關聯網頁的管理ACLs時,才會清除未關聯ACLs的網頁。

如果您未啟用此選項,則 Firewall Manager 員不會管理未關聯的網頁ACLs,而且 Firewall Manager 員會ACL在每個位於策略範圍內的帳戶中自動建立網頁。

抽樣和 CloudWatch 指標

AWS Firewall Manager 為其為 AWS WAF 政策建立的 Web ACLs 和規則群組啟用取樣和 Amazon CloudWatch 指標。

網頁ACL命名結構

當「Firewall Manager 員」ACL 為策略建立網頁時,它會為網頁命名ACLFMManagedWebACLV2-policy name-timestamp。時間戳記以UTC毫秒為單位。例如:FMManagedWebACLV2-MyWAFPolicyName-1621880374078

注意

如果設定了進階自動應用程式層DDoS緩和措施的資源進入 AWS WAF 策略的範圍,Firewall Manager 將無法將 AWS WAF 原則ACL建立的 Web 與資源建立關聯。

策略中的規 AWS WAF 則群組

由 Firewall Manager 員 AWS WAF 策略管理的 Web ACLs 包含三組規則。這些集合為 Web ACL 中的規則和規則群組提供更高層級的優先順序排定:

  • 由您在 Firewall Manager 員 AWS WAF 策略中定義的第一個規則群組。 AWS WAF 首先評估這些規則群組。

  • 由 Web 中客戶管理員定義的規則和規則群組ACLs。 AWS WAF 接下來會評估任何帳戶管理的規則或規則群組。

  • 您在「Firewall Manager 員」 AWS WAF 策略中定義的最後一個規則群組。 AWS WAF 最後評估這些規則群組。

在這些規則集中,根據規則集中的優先順序設定,如常一樣 AWS WAF 評估規則和規則群組。

在政策的第一個和最後一個規則群組集中,您只能新增規則群組。您可以使用受管規則群組,這些群組 AWS 受管規則和 AWS Marketplace 銷售者會為您建立和維護。您也可以管理和使用自己的規則群組。如需所有這些選項的詳細資訊,請參閱使用 AWS WAF 規則群組

如果您想要使用自己的規則群組,請先建立這些規則群組,然後再建立 Firewall Manager 員 AWS WAF 原則。如需準則,請參閱管理您自己的規則群組。若要使用個別的自訂規則,您必須定義自己的規則群組、在該群組中定義規則,然後在政策中使用規則群組。

您透過 Firewall Manager 管理的第一個和最後一個 AWS WAF 規則群組的名稱分別以PREFMManaged-或開頭POSTFMManaged-,後跟 Firewall Manager 員原則名稱,以及規則群組建立時間戳記 (以UTC毫秒為單位)。例如:PREFMManaged-MyWAFPolicyName-1621880555123

如需有關如何 AWS WAF 評估 Web 請求的資訊,請參閱在中使ACLs用規則和規則群組的 Web AWS WAF

如需建立 Firewall Manager 員 AWS WAF 策略的程序,請參閱建立 AWS Firewall Manager 政策 AWS WAF

Firewall Manager 員會為您為 AWS WAF 政策定義的規則群組啟用取樣和 Amazon CloudWatch 指標。

個別帳戶擁有者可以完全控制他們新增至原則受管理 Web 的任何規則或規則群組的指標和取樣組態ACLs。

設定 AWS WAF 原則的記錄

您可以為 AWS WAF 原則啟用集中式記錄功能,以取得組織ACL內網路所分析流量的詳細資訊。記錄檔中的資訊包括從您的 AWS 資源 AWS WAF 接收要求的時間、請求的詳細資訊,以及每個要求與所有範圍內帳戶相符之規則的動作。您可以將日誌傳送到 Amazon 資料 Firehose 資料串流或 Amazon Simple Storage Service (S3) 儲存貯體。如需有關 AWS WAF 記錄的資訊,請參閱日誌 AWS WAF 網路ACL流量AWS WAF 發人員指南中的。

注意

AWS Firewall Manager 支援此選項 AWS WAFV2,而不適用於「 AWS WAF 經典」。

記錄目的地

本節說明您可以選擇傳送 AWS WAF 原則記錄檔的記錄目的地。每節都會提供為目的地類型設定記錄的指引,以及目的地類型專屬行為的相關資訊。設定記錄目的地之後,您可以將其規格提供給您的 Firewall Manager 員 AWS WAF 原則,以開始記錄到該目的地。

建立記錄設定之後,Firewall Manager 員無法看到記錄檔失敗。您有責任確認記錄傳送是否正常運作。

注意

Firewall Manager 員不會修改組織成員帳戶中任何現有的記錄設定。

Amazon 數據 Firehose 數據流

本主題提供將網路ACL流量日誌傳送至 Amazon 資料 Firehose 資料串流的相關資訊。

啟用 Amazon Data Firehose 日誌記錄時,Firewall Manager 員會將日誌從政策的網頁傳送ACLs到您已設定儲存目的地的 Amazon Data Firehose。啟用記錄後,會透過 Kinesis Data Firehose 的HTTPS端點ACL,將每個已設定網路的記錄傳 AWS WAF 送至設定的儲存目的地。在使用之前,請先測試您的交付串流,以確定其輸送量足以容納組織的記錄。如需有關如何建立 Amazon Kinesis Data Firehose 和檢閱儲存的日誌的詳細資訊,請參閱什麼是 Amazon 資料防火管?

您必須具備下列權限,才能成功啟用 Kinesis 的記錄功能:

  • iam:CreateServiceLinkedRole

  • firehose:ListDeliveryStreams

  • wafv2:PutLoggingConfiguration

當您在 AWS WAF 政策上設定 Amazon Data Firehose 記錄目的地時,Firewall Manager 員會在 Firewall Manager 員管理員帳戶中ACL為該政策建立網頁,如下所示:

  • 無論帳戶是否ACL在策略範圍內,Firewall Manager 員都會在 Firewall Manager 員管理員帳戶中建立 Web。

  • Web ACL 已啟用日誌記錄,並帶有日誌名稱FMManagedWebACLV2-Loggingpolicy name-timestamp,其中UTC時間戳記是為 Web 啟用日誌的時間ACL,以毫秒為單位。例如:FMManagedWebACLV2-LoggingMyWAFPolicyName-1621880565180。Web 沒ACL有規則群組,也沒有關聯的資源。

  • 我們會ACL根據 AWS WAF 定價準則向您收取網路費用。如需詳細資訊,請參閱 AWS WAF 定價

  • 當您刪除策略ACL時,Firewall Manager 員會刪除 Web。

如需服務連結角色和iam:CreateServiceLinkedRole權限的相關資訊,請參閱使用服務連結角色 AWS WAF

如需有關建立交付串流的詳細資訊,請參閱建立 Amazon 資料 Firehose 交付串流

Amazon Simple Storage Service 儲存貯體

本主題提供將網頁ACL流量日誌傳送到 Amazon S3 儲存貯體的相關資訊。

您選擇作為記錄目的地的值區必須由 Firewall Manager 員管理員帳戶擁有。如需針對日誌記錄和儲存貯體命名要求建立 Amazon S3 儲存貯體的相關要求的詳細資訊,請參閱AWS WAF 開發人員指南中的 Amazon 簡單儲存體服務

最終一致性

當您變更使用 Amazon S3 記錄目標設定的政 AWS WAF 策時,Firewall Manager 員會更新儲存貯體政策以新增記錄所需的許可。這樣做時,Firewall Manager 員會遵循 Amazon 簡單儲存服務遵循的 last-writer-wins 語意和資料一致性模型。如果您在 Firewall Manager 員主控台或透過同時對 Amazon S3 目的地進行多個政策更新 PutPolicyAPI,則可能無法儲存某些許可。如需 Amazon S3 資料一致性模型的詳細資訊,請參閱 Amazon S3 資料一致性模型,其中的 Amazon 簡單儲存服務使用者指南

將日誌發佈到 Amazon S3 儲存貯體的許可

在 AWS WAF 政策中設定 Amazon S3 儲存貯體的 Web ACL 流量記錄需要以下許可設定。當您將 Amazon S3 設定為記錄目的地時,Firewall Manager 員會自動將這些許可附加到 Amazon S3 儲存貯體,以授予將日誌發佈到儲存貯體的服務權限。如果您想要管理更精細的記錄和 Firewall Manager 員資源存取權限,您可以自行設定這些權限。如需有關管理權限的資訊,請參《IAM使用指南》中的 AWS 資源存取管理。如需有關 AWS WAF 受管理策略的資訊,請參閱AWS 受管理的政策 AWS WAF

{ "Version": "2012-10-17", "Id": "AWSLogDeliveryForFirewallManager", "Statement": [ { "Sid": "AWSLogDeliveryAclCheckFMS", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::aws-waf-amzn-s3-demo-bucket" }, { "Sid": "AWSLogDeliveryWriteFMS", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::aws-waf-logs-amzn-s3-demo-bucket/policy-id/AWSLogs/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } } } ] }

為了防止跨服務混淆的副問題,您可以將aws:SourceArnaws:SourceAccount全局條件上下文鍵添加到存儲桶的策略中。若要新增這些金鑰,您可以在設定記錄目的地時修改 Firewall Manager 為您建立的原則,或者如果您想要精細控制,您可以建立自己的原則。如果您將這些條件新增至記錄目的地原則,Firewall Manager 將不會驗證或監視混淆的副保護。有關混淆副問題的一般信息,請參閱混淆的副問題《IAM使用者指南》中。

當您添加sourceAccount添加sourceArn屬性時,它將增加存儲桶策略大小。如果您要新增一長串sourceAccount新增sourceArn屬性,請注意不要超過 Amazon S3 儲存貯體政策大小配額。

下列範例說明如何在值區政策中使用aws:SourceArnaws:SourceAccount全域條件內容索引鍵,以避免混淆的副問題。Replace (取代) member-account-id 與您組織中IDs的成員帳戶。

{ "Version":"2012-10-17", "Id":"AWSLogDeliveryForFirewallManager", "Statement":[ { "Sid":"AWSLogDeliveryAclCheckFMS", "Effect":"Allow", "Principal":{ "Service":"delivery.logs.amazonaws.com" }, "Action":"s3:GetBucketAcl", "Resource":"arn:aws:s3:::aws-waf-logs-amzn-s3-demo-bucket", "Condition":{ "StringEquals":{ "aws:SourceAccount":[ "member-account-id", "member-account-id" ] }, "ArnLike":{ "aws:SourceArn":[ "arn:aws:logs:*:member-account-id:*", "arn:aws:logs:*:member-account-id:*" ] } } }, { "Sid":"AWSLogDeliveryWriteFMS", "Effect":"Allow", "Principal":{ "Service":"delivery.logs.amazonaws.com" }, "Action":"s3:PutObject", "Resource":"arn:aws:s3:::aws-waf-logs-amzn-s3-demo-bucket/policy-id/AWSLogs/*", "Condition":{ "StringEquals":{ "s3:x-amz-acl":"bucket-owner-full-control", "aws:SourceAccount":[ "member-account-id", "member-account-id" ] }, "ArnLike":{ "aws:SourceArn":[ "arn:aws:logs:*:member-account-id-1:*", "arn:aws:logs:*:member-account-id-2:*" ] } } } ] }
Amazon S3 儲存貯體的伺服器端加密

您可以啟用 Amazon S3 伺服器端加密,或在 S3 儲存貯體上使用 AWS Key Management Service 客戶受管金鑰。如果您選擇在 Amazon S3 儲存貯體上對 AWS WAF 日誌使用預設的 Amazon S3 加密,則不需要採取任何特殊動作。但是,如果您選擇使用客戶提供的加密金鑰來加密 Amazon S3 靜態資料,則必須在 AWS Key Management Service 金鑰政策中新增以下許可聲明:

{ "Sid": "Allow Logs Delivery to use the key", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }

如需將客戶提供的加密金鑰與 Amazon S3 搭配使用的相關資訊,請參閱 Amazon 簡單儲存服務使用者指南中的使用伺服器端加密搭配客戶提供的金鑰 (SSE-C)

啟用記錄

下列程序說明如何在 Firewall Manager 員主控台中啟用 AWS WAF 策略的記錄功能。

若要啟用 AWS WAF 原則的記錄功能
  1. 啟用記錄之前,您必須設定記錄目的地資源,如下所示:

    • Amazon Kinesis Data Streams-使用您的防 Firehose 理員帳戶建立 Amazon 資料防火軟管。使用以前綴開頭的名稱aws-waf-logs-。例如:aws-waf-logs-firewall-manager-central。使用PUT源和您正在運營的區域中創建數據防火軟管。如果您要擷取 Amazon 的日誌 CloudFront,請在美國東部 (維吉尼亞北部) 建立 Firehose。在使用之前,請先測試您的交付串流,以確定其輸送量足以容納組織的記錄。如需詳細資訊,請參閱建立 Amazon 資料 Firehose 交付串流

    • Amazon 簡單儲存服務儲存貯體-根據AWS WAF 開發人員指南Amazon 簡單儲存服務主題中的準則建立 Amazon S3 儲存貯體。您還必須使用中列出的許可設定 Amazon S3 儲存貯體將日誌發佈到 Amazon S3 儲存貯體的許可

  2. AWS Management Console 使用您的 Firewall Manager 員管理員帳戶登入,然後在中開啟 Firewall Manager 員主控台https://console.aws.amazon.com/wafv2/fmsv2。如需建立防火牆管理員帳戶的詳細資訊,請參閱 AWS Firewall Manager 前提

    注意

    如需建立防火牆管理員帳戶的詳細資訊,請參閱 AWS Firewall Manager 前提

  3. 在瀏覽窗格中,選擇 [安全性原則]。

  4. 選擇您要啟用記錄的 AWS WAF 原則。如需有關 AWS WAF 記錄的詳細資訊,請參閱 日誌 AWS WAF 網路ACL流量

  5. 在 [原則詳細資料] 索引標籤的 [原則規則] 區段中,選擇 [編輯]。

  6. 對於記錄組態,請選擇啟用記錄以開啟記錄。記錄可提供有關 Web 分析流量的詳細資訊ACL。選擇記錄目的地,然後選擇您設定的記錄目的地。您必須選擇名稱開頭的記錄目的地aws-waf-logs-。如需有關設定 AWS WAF 記錄目的地的資訊,請參閱設定 AWS WAF 原則的記錄

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

  8. (選擇性) 如果您不想將所有要求傳送至記錄檔,請新增篩選條件和行為。在「篩選記錄檔」下方,針對您要套用的每個篩選器,選擇「新增篩選器」,然後選擇您的篩選條件,並指定要保留或刪除符合條件的要求。完成新增篩選器後,如有需要,請修改預設記錄行為。如需詳細資訊,請參閱《AWS WAF 開發人員指南》中的 尋找您的網路ACL記錄

  9. 選擇 Next (下一步)

  10. 檢閱您的設定,然後選擇 [存] 以儲存對策略的變更。

停用記錄

下列程序說明如何在 Firewall Manager 員主控台中停用 AWS WAF 策略的記錄。

若要停用 AWS WAF 原則的記錄
  1. AWS Management Console 使用您的 Firewall Manager 員管理員帳戶登入,然後在中開啟 Firewall Manager 員主控台https://console.aws.amazon.com/wafv2/fmsv2。如需建立防火牆管理員帳戶的詳細資訊,請參閱 AWS Firewall Manager 前提

    注意

    如需建立防火牆管理員帳戶的詳細資訊,請參閱 AWS Firewall Manager 前提

  2. 在瀏覽窗格中,選擇 [安全性原則]。

  3. 選擇您要停用記錄的 AWS WAF 原則。

  4. 在 [原則詳細資料] 索引標籤的 [原則規則] 區段中,選擇 [編輯]。

  5. 在「記錄」組態狀態中,選擇「停用

  6. 選擇 Next (下一步)

  7. 檢閱您的設定,然後選擇 [存] 以儲存對策略的變更。