

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

# 部署和實作您的機器人控制策略
<a name="deployment"></a>

規劃機器人控制部署策略時，需要考慮多個因素。除了 Web 應用程式的獨特特性之外，環境大小、開發程序和組織結構也會影響部署策略。根據您的環境和應用程式特性，可以使用集中式或分散式部署策略：
+ **集中式部署策略** – 當您想要嚴格強制執行機器人控制時，集中式方法可實現更高程度的控制。如果應用程式團隊偏好卸載管理，則這種方法非常適合。當 Web 應用程式具有類似的特性時，集中式方法最有效。在這種情況下，應用程式受益於一組常見的機器人控制規則和機器人緩解動作。
+ **分散式部署策略** – 分散式方法為應用程式團隊提供自主性，以獨立定義和實作機器人控制組態。這種方法在較小的環境或應用程式團隊需要保留對其機器人控制政策的控制時很常見。由於許多 Web 應用程式的性質，通常需要維護針對唯一應用程式特性量身打造的獨立機器人控制政策，進而產生分散式方法。
+ **合併策略** – 這兩種方法的組合適用於混合 Web 應用程式。例如，這可能需要一組適用於所有 Web ACLs 的基本規則，同時將更具體的機器人控制政策的管理委派給應用程式團隊。 

您可以使用 來[AWS Firewall Manager](https://docs.aws.amazon.com/waf/latest/developerguide/fms-chapter.html)集中和自動化定義機器人控制政策的 AWS WAF Web ACLs 部署。使用 Firewall Manager 時，請考慮集中機器人控制政策是否適當，包括是否應委派給應用程式團隊。透過 Firewall Manager，您可以使用標記來允許應用程式團隊選擇加入 AWS WAF 政策。這提供 AWS WAF 智慧型威脅緩解功能。您也可以為應用程式和安全性操作啟用集中式 AWS WAF 記錄。

無論使用的部署策略為何，建議透過基礎設施即程式碼 (IaC) 型架構定義和管理加入程序，例如 [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 或 [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/v2/guide/home.html)。這可協助您設定來源控制來存放 和版本組態物件。如需詳細資訊，請參閱 [AWS CDK](https://github.com/aws-samples/aws-cdk-examples/tree/master/python/waf)(GitHub) 和 [CloudFormation ](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-webacl.html)(AWS 文件） 的 AWS WAF 組態範例。

## 實作策略
<a name="implementation"></a>

選取部署策略之後，即可開始實作。部署策略會定義規則如何推展到不同的應用程式。在實作策略中，重點是新增控制項、測試、持續監控，然後評估其效果的反覆程序。

### 了解流量模式
<a name="traffic-patterns"></a>

若要真正了解流量模式，請務必熟悉應用程式的業務功能和預期的屬性，例如使用模式、金鑰資源和使用者角色。針對應用程式納入測試期間產生的生產流量和流量，以建立評估基準。請確定時間範圍包含足以代表多個用量峰值的流量資料。

使用您偏好的工具，檢閱代表性用量期間的流量日誌和指標。透過篩選 AWS WAF `headers`（例如， `User-Agent`和 `Referer`)、 和 等日誌[欄位，分析異常請求的日誌](https://docs.aws.amazon.com/waf/latest/developerguide/logging-fields.html)資料`clientIp`。 `country`請記下統一資源識別符 (URIs) 及其存取頻率。將流量分類，例如識別良好的機器人。例如，允許存取有益的機器人，例如搜尋引擎爬蟲程式和監視器。

在 AWS WAF 主控台的**機器人控制儀表板**上，機器人活動範例可用於任何作用中的 Web ACL。雖然這提供了常見機器人請求磁碟區的初始觀點，但請執行進一步的組態和分析，以進一步了解機器人活動。

為了有效實作，您必須充分了解機器人流量、其效果，以及哪些機器人請求對惡意有益。這有助於下一個階段、選取控制項，並協助您平行評估機器人流量。

### 選取和新增控制項
<a name="selecting-controls"></a>

初始流量分析有助於判斷要使用哪些機器人控制項，以及要為每個機器人選取哪些動作。您也可以選擇記錄和監控潛在未來動作的活動。初始流量分析可協助您選取管理流量的最佳控制項。如需可用控制項的詳細資訊，請參閱本指南[機器人控制的技巧](techniques.md)中的 。

考慮在此步驟中包含其他 SDK 實作。這可協助您在所有必要的應用程式中測試和完成 SDK 實作。 AWS WAF 機器人控制和詐騙控制規則可在實作 JavaScript SDK 或行動 SDK 時提供完整的字符評估效益。如需詳細資訊，請參閱 AWS WAF 文件中的[為什麼您應該使用應用程式整合 SDKs搭配 Bot Control](https://docs.aws.amazon.com/waf/latest/developerguide/waf-bot-with-tokens.html)。

我們建議針對不同的應用程式類型實作權杖擷取，如下所示：
+ **單頁應用程式 (SPA)** – JavaScript SDK （無重新導向）
+ **行動瀏覽器** – JavaScript SDK 或規則動作 (CAPTCHA 或挑戰）
+ **Web 檢視** – JavaScript SDK 或規則動作 (CAPTCHA 或挑戰）
+ **原生應用程式** – Mobile SDK
+ **iFrames** – JavaScript SDK

如需如何實作 SDKs的詳細資訊，請參閱 AWS WAF 文件中的[AWS WAF 用戶端應用程式整合](https://docs.aws.amazon.com/waf/latest/developerguide/waf-application-integration.html)。

### 測試和部署至生產環境
<a name="testing"></a>

控制項一開始應該部署在非生產環境中，您可以在其中執行測試，以確認保留預期的 Web 應用程式功能。在生產部署之前，請務必在測試環境中執行 徹底的驗證。

在非生產環境中測試和驗證之後，生產版本可以繼續。選取預期使用者流量最低的日期和時間。在部署之前，應用程式和安全團隊應該檢閱操作準備程度、討論如何復原變更，以及檢閱儀表板，以確保已設定所有必要的指標和警示。

透過 [Amazon CloudFront 持續部署](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/continuous-deployment.html)，您可以將少量流量傳送至已特別為機器人控制評估設定的 AWS WAF Web ACL 預備分佈。 AWS WAF 提供任何新受管規則或更新受管規則的[版本管理](https://docs.aws.amazon.com/waf/latest/developerguide/waf-managed-rule-groups-versioning.html)，以便在開始評估生產流量之前測試和核准變更。

### 評估和調校控制項
<a name="tuning-controls"></a>

實作的控制項可以提供對流量活動和模式的進一步洞察和可見性。經常監控和分析應用程式流量，以新增或調整安全控制。通常有一個調校階段來緩解潛在的誤報和誤報。*偽陰性*是您的控制項未攔截的攻擊，要求您強化規則。*誤報*代表未正確識別為攻擊並因此封鎖的合法請求。

分析和調校可以手動完成，或藉助 工具完成。安全資訊和事件管理 (SIEM) 系統是一種常見工具，可協助提供指標和智慧型監控。有許多不同程度的複雜度，但它們都提供了良好的起點來取得流量洞察。

定義網站和應用程式的重要關鍵績效指標 (KPIs)，可協助您更快速地識別物件未如預期運作的時間。例如，您可以使用信用卡退款、每個帳戶的銷售額或轉換率，做為機器人可能產生的業務異常指標。定義和了解哪些指標和 KPIs值得監控，甚至比監控行為更重要。

了解如何從機器人控制解決方案取得正確的指標和日誌，與識別要監控的指標一樣重要。下一節[監控機器人控制策略的準則](monitoring.md)詳細說明要考慮的監控和可見性選項。