管理 AWS WAF 網頁 ACL - AWS App Runner

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

管理 AWS WAF 網頁 ACL

使用下列其中一種方法管理應用程式執行 AWS WAF 器服務的 Web ACL:

應用程式執行器

在 App Runner 主控台上建立服務更新現有服務時,您可以關聯或取消關聯 AWS WAF Web ACL。

注意
  • 應用程式執行器服務只能與一個 Web ACL 產生關聯。但是,除了其他 AWS 資源之外,您還可以將一個 Web ACL 與多個應用程式執行器服務相關聯。

  • 在建立網路 ACL 關聯之前,請務必更新的 IAM 許可 AWS WAF。如需詳細資訊,請參閱 許可

建立 AWS WAF 網路 ACL 的關聯

重要

與 WAF Web ACL 相關聯的應用程式執行器私人服務的來源 IP 規則不遵守 IP 型規則。這是因為我們目前不支援將要求來源 IP 資料轉送至與 WAF 相關聯的 App Runner 私人服務。如果您的應用程式執行器應用程式需要來源 IP/CIDR 傳入流量控制規則,您必須針對私有端點使用安全群組規則,而不是 WAF Web ACL。

關聯 AWS WAF 網 ACL 的步驟
  1. 開啟應用程式執行器主控台,然後在 [區域] 清單中選取您的 AWS 區域.

  2. 根據您要建立或更新服務,執行下列其中一個步驟:

    • 如果您要建立新服務,請選擇 [建立應用程式執行器服務],然後移至 [設定服務]

    • 如果您要更新現有的服務,請選擇 [設] 索引標籤,然後選擇 [設定服務] 下的 [編輯]。

  3. 轉到 Web 應用程序防火牆下的安全

  4. 選擇「啟用」切換按鈕以檢視選項。

    應用程式執行器主控台配置,顯示 Web 應用程式防火牆選項。
  5. 執行下列步驟之一:

    • 若要建立現有 Web ACL 的關聯:請從「選擇 Web ACL」表格中選擇所需的 Web ACL,以與您的應用程式執行器服務建立關聯。

    • 若要建立新的 Web ACL:選擇「建立 Web ACL」以使用 AWS WAF 主控台建立新的 Web ACL。如需詳細資訊,請參AWS WAF 開發人員指南中的建立 Web ACL

      1. 選擇重新整理按鈕,在「選擇 Web ACL」表格中檢視新建立的 Web ACL

      2. 選取所需的腹板 ACL。

  6. 如果您要建立新服務,請選擇 [一步];如果您要更新現有的服務,請選擇 [儲存變更]。選取的 Web ACL 會與您的應用程式執行器服務相關聯。

  7. 若要驗證 Web ACL 關聯,請選擇服務的「組態」索引標籤,然後前往「設定服務」。捲動至 [安全性] 下的 [Web 應用程式防火牆],以檢視與服務相關聯之 Web ACL 的詳細資料。

    注意

    建立 Web ACL 時,在 Web ACL 完全傳播之前會經過少量時間,並且可供應用程式執行器使用。傳輸時間可以是幾秒鐘到分鐘數。 AWS WAF WAFUnavailableEntityException當您嘗試在網頁 ACL 完全傳播之前建立關聯時,會傳回 a。

    如果您在 Web ACL 完全傳播之前重新整理瀏覽器或離開 App Runner 主控台,則關聯將無法發生。但是,您可以在應用程序運行器控制台中進行導航。

取消網路 ACL 的關聯 AWS WAF

您可以通過更新應用程序運行器服務來取消不再需要的 AWS WAF Web ACL 的關聯。

取消網頁 ACL 的關聯 AWS WAF 的步驟
  1. 開啟應用程式執行器主控台,然後在 [區域] 清單中選取您的 AWS 區域.

  2. 轉到您要更新的服務的配置選項卡,然後選擇配置服務下的編輯

  3. 轉到 Web 應用程序防火牆下的安全

  4. 停用「啟動」切換按鈕。您會收到確認刪除的訊息。

  5. 選擇確認。Web ACL 與您的應用程式執行器服務取消關聯。

    注意
    • 如果您要將您的服務與其他 Web ACL 相關聯,請從「選擇 Web ACL」表格中選取 Web ACL。應用程式執行器會取消目前 Web ACL 的關聯,並啟動與選取的 Web ACL 相關聯的程序。

    • 如果沒有其他應用程式執行器服務或資源使用取消關聯的 Web ACL,請考慮刪除 Web ACL。否則,您將繼續產生費用。如需定價的詳細資訊,請參閱AWS WAF 定價。有關如何刪除網頁 ACL 的說明,請參閱 AWS WAF API 參考資料中的 DeleteWebACL

    • 您無法刪除與其他作用中應用程式執行器服務或其他資源相關聯的 Web ACL。

AWS CLI

您可以使用 AWS WAF 公用 API 來關聯或取消關聯 AWS WAF Web ACL。您要與 Web ACL 建立關聯或取消關聯的應用程式執行器服務必須處於有效狀態。

AWS WAF 當您呼叫處於無效狀態的 App Runner 服務的下列其中一個 AWS WAF API 時,會傳回WAFNonexistentItemException錯誤:

  • AssociateWebACL

  • DisassociateWebACL

  • GetWebACLForResource

您的應用程序運行器服務的無效狀態包括:

  • CREATE_FAILED

  • DELETE_FAILED

  • DELETED

  • OPERATION_IN_PROGRESS

    注意

    OPERATION_IN_PROGRESS只有當您的應用程序運行器服務被刪除時,狀態才無效。

如需有關 AWS WAF 公用 API 的詳細資訊,請參閱 AWS WAF API 參考指南

注意

更新您的 AWS WAF. 如需詳細資訊,請參閱 許可

使用以下方式關聯 AWS WAF 網 ACL AWS CLI

重要

與 WAF Web ACL 相關聯的應用程式執行器私人服務的來源 IP 規則不遵守 IP 型規則。這是因為我們目前不支援將要求來源 IP 資料轉送至與 WAF 相關聯的 App Runner 私人服務。如果您的應用程式執行器應用程式需要來源 IP/CIDR 傳入流量控制規則,您必須針對私有端點使用安全群組規則,而不是 WAF Web ACL。

關聯 AWS WAF 網 ACL 的步驟
  1. 使用您偏好的一 AWS WAF 組規則動作Allow或對服務的 Web 請求,為您Block的服務建立 Web ACL。如需 AWS WAF API 的詳細資訊,請參閱 AWS WAF API 參考指南中的 CreateWebACL

    範例 建立網路 ACL-請求
    aws wafv2 create-web-acl --region <region> --name <web-acl-name> --scope REGIONAL --default-action Allow={} --visibility-config <file-name.json> # This is the file containing the WAF web ACL rules.
  2. 使用associate-web-acl AWS WAF 公用 API 將您建立的 Web ACL 與應用程式執行器服務建立關聯。如需 AWS WAF API 的詳細資訊,請參閱 AWS WAF API 參考指南中的 AssociateWebACL

    注意

    建立 Web ACL 時,在 Web ACL 完全傳播之前會經過少量時間,並且可供應用程式執行器使用。傳輸時間可以是幾秒鐘到分鐘數。 AWS WAF WAFUnavailableEntityException當您嘗試在網頁 ACL 完全傳播之前建立關聯時,會傳回 a。

    如果您在 Web ACL 完全傳播之前重新整理瀏覽器或離開 App Runner 主控台,則關聯將無法發生。但是,您可以在應用程序運行器控制台中進行導航。

    範例 建立網路 ACL-請求的關聯
    aws wafv2 associate-web-acl --resource-arn <apprunner_service_arn> --web-acl-arn <web_acl_arn> --region <region>
  3. 使用get-web-acl-for-resource AWS WAF 公共 API 驗證 Web ACL 與您的應用程序運行器服務相關聯。如需 AWS WAF API 的詳細資訊,請參閱 AWS WAF API 參考指南ForResource中的 GetWebACL

    範例 驗證資源的 Web ACL-請求
    aws wafv2 get-web-acl-for-resource --resource-arn <apprunner_service_arn> --region <region>

    如果沒有與您的服務相關聯的 Web ACL,您會收到空白回應。

使用刪除 AWS WAF 網路 ACL AWS CLI

如果 AWS WAF Web ACL 與應用程式執行器服務相關聯,則無法刪除該 ACL。

刪除 AWS WAF 網路 ACL 的步驟
  1. 使用disassociate-web-acl AWS WAF 公共 API 取消 Web ACL 與應用程序運行器服務的關聯。如需 AWS WAF API 的詳細資訊,請參閱 AWS WAF API 參考指南中的 DisassociateWebACL

    範例 取消網路 ACL-請求的關聯
    aws wafv2 disassociate-web-acl --resource-arn <apprunner_service_arn> --region <region>
  2. 使用get-web-acl-for-resource AWS WAF 公共 API 確認 Web ACL 與您的應用程式執行器服務斷開關聯。

    範例 確認網頁 ACL 已取消關聯-請求
    aws wafv2 get-web-acl-for-resource --resource-arn <apprunner_service_arn> --region <region>

    解除關聯的 Web ACL 不會列出您的應用程式執行器服務。如果沒有與您的服務相關聯的 Web ACL,您會收到空白回應。

  3. 使用delete-web-acl AWS WAF 公共 API 刪除取消關聯的 Web ACL。如需 AWS WAF API 的詳細資訊,請參閱 AWS WAF API 參考指南中的 DeleteWebACL

    範例 刪除網路 ACL-請求
    aws wafv2 delete-web-acl --name <web_acl_name> --scope REGIONAL --id <web_acl_id> --lock-token <web_acl_lock_token> --region <region>
  4. 確認已使用list-web-acl AWS WAF 公用 API 刪除網頁 ACL。如需 AWS WAF API 的詳細資訊,請參閱 AWS WAF API 參考指南中的 ListWebACL

    範例 確認已刪除網頁 ACL-請求
    aws wafv2 list-web-acls --scope REGIONAL --region <region>

    刪除的網 ACL 將不再列示出來。

    注意

    如果 Web ACL 與其他作用中的應用程式執行器服務或其他資源 (例如 Amazon Cognito 使用者集區) 相關聯,則無法刪除 Web ACL。

列出與 Web ACL 相關聯的應用程式執行器服務

一個 Web ACL 可以與多個應用程序運行器服務和其他資源相關聯。使用list-resources-for-web-acl AWS WAF 公共 API 列出與 Web ACL 關聯的應用程序運行器服務。如需 AWS WAF API 的詳細資訊,請參閱 AWS WAF API 參考指南中的 ListResourcesForWebACL

範例 列出與 Web ACL 關聯的應用程序運行器服務-請求
aws wafv2 list-resources-for-web-acl --web-acl-arn <WEB_ACL_ARN> --resource-type APP_RUNNER_SERVICE --region <REGION>
範例 列出與 Web ACL 關聯的應用程序運行器服務-響應

下列範例說明沒有與 Web ACL 相關聯的應用程式執行器服務時的回應。

{ "ResourceArns": [] }
範例 列出與 Web ACL 關聯的應用程序運行器服務-響應

下列範例說明存在與 Web ACL 相關聯的應用程式執行器服務時的回應。

{ "ResourceArns": [ "arn:aws:apprunner:<region>:<aws_account_id>:service/<service_name>/<service_id>" ] }

測試和記錄 AWS WAF 網頁 ACL

當您在 Web ACL 中將規則動作設定為「計數」時,會將要求 AWS WAF 新增至符合規則的要求計數。若要使用 App Runner 服務測試 Web ACL,請將規則動作設定為 [計數],並考量符合每個規則的要求數量。例如,您可以為符合您確定為一般使用者流量的大量請求的Block動作設定規則。在這種情況下,您可能需要重新配置規則。如需詳細資訊,請參閱AWS WAF 開發人員指南的測試和調整您的 AWS WAF 保護

您也可以設定 AWS WAF 將請求標頭記錄到 Amazon CloudWatch 日誌日誌群組、亞馬遜簡單儲存服務 (Amazon S3) 儲存貯體或 Amazon 資料 Firehose。如需詳細資訊,請參閱《AWS WAF 開發人員指南》中的記錄 Web ACL 流量

若要存取與應用程式執行器服務相關聯的 Web ACL 相關的記錄檔,請參閱下列記錄欄位:

  • httpSourceName:包含 APPRUNNER

  • httpSourceId:包含 customeraccountid-apprunnerserviceid

如需詳細資訊,請參閱AWS WAF 開發人員指南中的記錄範例

重要

與 WAF Web ACL 相關聯的應用程式執行器私人服務的來源 IP 規則不遵守 IP 型規則。這是因為我們目前不支援將要求來源 IP 資料轉送至與 WAF 相關聯的 App Runner 私人服務。如果您的應用程式執行器應用程式需要來源 IP/CIDR 傳入流量控制規則,您必須針對私有端點使用安全群組規則,而不是 WAF Web ACL。