

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

# 架構概觀
<a name="architecture-overview"></a>

本節提供使用此解決方案所部署元件的參考實作架構圖。

## 架構圖
<a name="architecture-diagram"></a>

使用預設參數部署此解決方案會在您的 AWS 帳戶中部署下列元件。

 **CloudFormation 範本會部署 AWS WAF 和其他 AWS 資源，以保護 Web 應用程式免受常見攻擊。**

![\[aws waf 架構概觀\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/security-automations-for-aws-waf/images/aws-waf-architecture-overview.png)


設計的核心是 [AWS WAF](https://aws.amazon.com/waf/) Web ACL，可做為 Web 應用程式所有傳入請求的中央檢查和決策點。在 CloudFormation 堆疊的初始組態期間，使用者定義要啟用哪些保護元件。每個元件都會獨立運作，並將不同的規則新增至 Web ACL。

此解決方案的元件可以分組到下列保護區域。

**注意**  
群組標籤不會反映 WAF 規則的優先順序層級。
+  **AWS 受管規則 (A)** - 此元件包含 AWS 受管規則 [IP 評價規則群組](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-ip-rep.html)、[基準規則群組](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-baseline.html)和[使用案例特定規則群組](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-use-case.html)。這些規則群組可防止利用常見的應用程式漏洞或其他不需要的流量，包括 [OWASP](https://owasp.org/) 出版物中所述的流量，而不必撰寫自己的規則。
+  **手動 IP 清單 (B 和 C)** - 這些元件會建立兩個 AWS WAF 規則。透過這些規則，您可以手動插入要允許或拒絕的 IP 地址。您可以使用 [Amazon EventBridge](https://aws.amazon.com/eventbridge) [規則](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html)和 [Amazon DynamoDB](https://aws.amazon.com/dynamodb)，在允許或拒絕的 IP 集上設定 IP 保留並移除過期的 IP 地址。如需詳細資訊，請參閱在[允許和拒絕的 AWS WAF IP 集上設定 IP 保留](configure-ip-retention-on-allowed-and-denied-aws-waf-ip-sets.md)。
+  **SQL Injection (D) 和 XSS (E)** - 這些元件會設定兩個 AWS WAF 規則，這些規則旨在防止 URI、查詢字串或請求內文中的常見 SQL Injection 或跨網站指令碼 (XSS) 模式。
+  **HTTP 洪水 (F)** - 此元件可防止來自特定 IP 地址的大量請求組成的攻擊，例如 Web 層 DDoS 攻擊或暴力登入嘗試。透過此規則，您可以設定配額，定義預設五分鐘期間內允許從單一 IP 地址傳入的請求數量上限 （可使用 **Athena Query Run Time Schedule** 參數設定）。超過此閾值後，會暫時封鎖來自 IP 地址的其他請求。您可以使用 AWS WAF 速率型規則，或使用 Lambda 函數或 Athena 查詢處理 AWS WAF 日誌，來實作此規則。如需 HTTP 洪水緩解選項相關權衡的詳細資訊，請參閱[日誌剖析器選項](log-parser-options.md)。
+  **掃描器和探查 (G)** - 此元件會剖析搜尋可疑行為的應用程式存取日誌，例如原始伺服器產生的異常錯誤量。然後，它會在客戶定義的期間內封鎖這些可疑來源 IP 地址。您可以使用 [Lambda](https://aws.amazon.com/lambda/) 函數或 [Athena](https://aws.amazon.com/athena/) 查詢實作此規則。如需掃描器和探查緩解選項相關權衡的詳細資訊，請參閱[日誌剖析器選項](log-parser-options.md)。
+  **IP 評價清單 (H)** - 此元件是 `IP Lists Parser` Lambda 函數，可每小時檢查第三方 IP 評價清單，以封鎖新範圍。這些清單包括 Spamhaus 不路由或對等 (DROP) 和延伸 DROP (EDROP) 清單、Proofpoint 潛在威脅 IP 清單，以及 Tor 結束節點清單。
+  **錯誤機器人 (I)** - 除了 Honeypot 機制之外，此元件還可以監控 Application Load Balancer (ALB) 或 Amazon CloudFront 的直接連線，藉此增強錯誤的機器人偵測。如果機器人繞過 Honeypot 並嘗試與 ALB 或 CloudFront 互動，系統會分析請求模式和日誌，以識別惡意活動。偵測到錯誤的機器人時，會擷取其 IP 地址並新增至 AWS WAF 封鎖清單，以防止進一步存取。錯誤的機器人偵測會透過結構化邏輯鏈運作，以確保全面的威脅涵蓋範圍：
  + HTTP 洪水防護 Lambda 日誌剖析器 – 在洪水分析期間從日誌項目收集錯誤的機器人 IPs。
  + 掃描器和探查保護 Lambda 日誌剖析器 – 從掃描器相關的日誌項目識別錯誤的機器人 IPs。
  + HTTP 洪水防護 Athena 日誌剖析器 – 使用跨查詢執行的分割區，從 Athena 日誌擷取錯誤的機器人 IPs。
  + 掃描器和探查保護 Athena 日誌剖析器 – 使用相同的分割策略，從掃描器相關的 Athena 日誌擷取錯誤的機器人 IPs。
  + 備用偵測 – 如果同時停用 HTTP 洪水防護和掃描器與探查防護，系統會依賴 Log Lambda 剖析器，該剖析器會根據 [WAF 標籤篩選條件](https://docs.aws.amazon.com/waf/latest/developerguide/waf-labels.html)記錄機器人活動。

此解決方案中的三個自訂 Lambda 函數都會將執行時間指標發佈至 CloudWatch。如需這些 Lambda 函數的詳細資訊，請參閱[元件詳細資訊](component-details.md)。

# AWS Well-Architected 設計考量事項
<a name="well-architected"></a>

此解決方案使用 [AWS Well-Architected Framework](https://aws.amazon.com/architecture/well-architected/) 的最佳實務，協助客戶在雲端設計和操作可靠、安全、有效率且符合成本效益的工作負載。

本節說明 Well-Architected Framework 的設計原則和最佳實務如何讓此解決方案受益。

## 卓越營運
<a name="operational-excellence"></a>

本節說明如何使用[卓越營運支柱](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/welcome.html)的原則和最佳實務來建構此解決方案。
+ 解決方案會將指標推送至 CloudWatch，以提供可觀測性的基礎設施、Lambda 函數、[Amazon Data Firehose](https://aws.amazon.com/kinesis/data-firehose/)、Amazon S3 儲存貯體和其餘解決方案元件。
+ 我們透過 AWS 持續整合和持續交付 (CI/CD) 管道來開發、測試和發佈解決方案。這有助於開發人員一致地達到高品質的結果。
+ 您可以使用 CloudFormation 範本安裝解決方案，該範本會佈建您帳戶中所有必要的資源。若要更新或刪除解決方案，您只需要更新或刪除範本。

## 安全
<a name="security-pillar"></a>

本節說明如何使用[安全支柱](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/welcome.html)的原則和最佳實務來建構此解決方案。
+ 所有服務間通訊都使用 [AWS Identity and Access Management](https://aws.amazon.com/iam/) (IAM) 角色。
+ 解決方案使用的所有角色都遵循[最低權限](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege)存取。換句話說，它們只包含所需的最低許可，以便服務可以正常運作。
+ 所有資料儲存，包括 Amazon S3 儲存貯體和 DynamoDB，都會進行靜態加密。

## 可靠性
<a name="reliability"></a>

本節說明如何使用[可靠性支柱](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/welcome.html)的原則和最佳實務來建構此解決方案。
+ 解決方案會盡可能使用 AWS 無伺服器服務 （例如 Lambda、Firehose、Amazon S3 和 Athena)，以確保高可用性並從服務故障中復原。
+ 我們會對解決方案執行自動化測試，以快速偵測和修正錯誤。
+ 解決方案使用 Lambda 函數進行資料處理。解決方案會將資料存放在 Amazon S3 和 DynamoDB 中，而且預設會保留在多個 Avaialbility 區域中。

## 效能效率
<a name="performance-efficiency"></a>

本節說明如何使用[效能效率支柱](https://docs.aws.amazon.com/wellarchitected/latest/performance-efficiency-pillar/welcome.html)的原則和最佳實務來建構此解決方案。
+ 解決方案使用無伺服器架構，以降低成本來確保高可擴展性和可用性。
+ 該解決方案透過剖析資料和最佳化查詢來增強資料庫效能，以減少資料掃描量並實現更快的結果。
+ 每天都會自動測試和部署解決方案。我們的解決方案架構師和主題專家會審查要實驗和改進的領域解決方案。

## 成本最佳化
<a name="cost-optimization"></a>

本節說明如何使用[成本最佳化支柱](https://docs.aws.amazon.com/wellarchitected/latest/cost-optimization-pillar/welcome.html)的原則和最佳實務來建構此解決方案。
+ 解決方案使用無伺服器架構，客戶只需為其使用量付費。
+ 解決方案的運算層預設為使用pay-per-use模型的 Lambda。
+ Athena 資料庫和查詢經過最佳化，可減少資料掃描量，進而降低成本。

## 永續性
<a name="sustainability"></a>

本節說明如何使用[永續性支柱](https://docs.aws.amazon.com/wellarchitected/latest/sustainability-pillar/sustainability-pillar.html)的原則和最佳實務來建構此解決方案。
+ 解決方案使用 受管和無伺服器服務，將後端服務對環境的影響降至最低。
+ 解決方案的無伺服器設計旨在減少與持續操作現場部署伺服器的碳足跡相比的碳足跡。