

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 架构概述
<a name="architecture-overview"></a>

本节提供了此解决方案所部署组件的参考实施架构图。

## 架构图
<a name="architecture-diagram"></a>

使用默认参数部署此解决方案将在您的 AWS 账户中部署以下组件。

 **CloudFormation 模板部署 AWS WAF 和其他 AWS 资源来保护您的 Web 应用程序免受常见攻击。**

![\[aws waf 架构概述\]](http://docs.aws.amazon.com/zh_cn/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 地址。您可以使用[亚马逊 EventBridge](https://aws.amazon.com/eventbridge)[规则](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html)和 Amazon [DynamoD](https://aws.amazon.com/dynamodb) B 配置 IP 保留并删除允许或拒绝的 IP 集上的过期 IP 地址。有关更多信息，请参阅[在允许和拒绝的 AWS WAF IP 集上配置 IP 保留](configure-ip-retention-on-allowed-and-denied-aws-waf-ip-sets.md)。
+  **SQL 注入 (D) 和 XSS (E)**-这些组件配置了两个 AWS WAF 规则，这些规则旨在防止 URI、查询字符串或请求正文中常见的 SQL 注入或跨站脚本 (XSS) 模式。
+  **HTTP Flood (F)**-此组件可防范由来自特定 IP 地址的大量请求构成的攻击，例如 Web 层 DDo S 攻击或暴力登录尝试。使用此规则，您可以设置配额，该配额定义了在默认五分钟内允许来自单个 IP 地址的最大传入请求数（可使用 **Athena Query 运行**时间计划参数进行配置）。突破此阈值后，将暂时阻止来自该 IP 地址的其他请求。您可以通过使用基于 AWS WAF 速率的规则来实现此规则，也可以使用 Lambda 函数或 Athena 查询处理 AWS WAF 日志。有关与 HTTP 洪水缓解选项相关的权衡的更多信息，请参阅[日志解析器](log-parser-options.md)选项。
+  S@@ **canner and Probe (G)**-此组件解析应用程序访问日志，搜索可疑行为，例如源生成的异常数量错误。然后，它会在客户定义的一段时间内屏蔽这些可疑的源 IP 地址。[您可以使用 [Lambda 函数或 Athena 查询](https://aws.amazon.com/lambda/)来实现此规则。](https://aws.amazon.com/athena/)有关与扫描器和探测器缓解选项相关的权衡的更多信息，请参阅[日志解析器](log-parser-options.md)选项。
+  **IP 信誉列表 (H)**-此组件是 `IP Lists Parser` Lambda 函数，它每小时检查第三方 IP 信誉列表，寻找要屏蔽的新范围。这些列表包括 Spamhaus Don't Route Or Peer (DROP) 和 Extended DROP (EDROP) 列表、Proofpoint 新兴威胁 IP 列表和 Tor 退出节点列表。
+  Ba@@ **d Bot (I)**-除了蜜罐机制外，此组件还通过监控与应用程序负载均衡器 (ALB) 或 Amazon CloudFront 的直接连接来增强恶意机器人的检测。如果机器人绕过蜜罐尝试与 ALB 或交互 CloudFront，则系统会分析请求模式和日志以识别恶意活动。当检测到恶意机器人时，系统会提取其 IP 地址并将其添加到 AWS WAF 阻止列表中，以防止进一步访问。恶意机器人检测通过结构化的逻辑链运行，确保全面的威胁覆盖：
  + HTTP Flood Protection Lambda 日志解析器 — 在洪水分析期间 IPs 从日志条目中收集恶意机器人。
  + Scanner & Probe Protection Lambda 日志解析器 — IPs 从与扫描仪相关的日志条目中识别不良机器人。
  + HTTP Flood Protection Athena 日志解析器 — 使用跨查询运行的分区 IPs 从 Athena 日志中提取恶意机器人。
  + Scanner & Probe Protection Athena 日志解析器 — 使用相同的分区策略 IPs 从与扫描仪相关的 Athena 日志中检索恶意机器人。
  + 回退检测-如果同时禁用 HTTP 洪水防护和扫描器和探测器保护，则系统将依赖日志 Lambda 解析器，该解析器基[于](https://docs.aws.amazon.com/waf/latest/developerguide/waf-labels.html) WAF 标签筛选器记录机器人活动。

此解决方案中的三个自定义 Lambda 函数均向发布运行时指标。 CloudWatch有关这些 Lambda 函数的更多信息，请参阅[组件](component-details.md)详细信息。

# AWS Well-Architected 设计注意事项
<a name="well-architected"></a>

该解决方案采用 [AWS Well-Architected Fram](https://aws.amazon.com/architecture/well-architected/) ework 中的最佳实践，可帮助客户在云中设计和运行可靠、安全、高效且经济实惠的工作负载。

本节介绍 Well-Architected Framework 的设计原则和最佳实践如何使该解决方案受益。

## 卓越运营
<a name="operational-excellence"></a>

本节介绍我们是如何使用[卓越运营支柱](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/welcome.html)的原则和最佳实践来设计此解决方案的。
+ 该解决方案将指标推送 CloudWatch 到基础设施、Lambda 函数、Amazon D [ata Firehose、A](https://aws.amazon.com/kinesis/data-firehose/) mazon 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 Managem](https://aws.amazon.com/iam/) ent (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 中，并且默认保留在多个可用区域中。

## 性能效率
<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)的原则和最佳实践来设计此解决方案的。
+ 该解决方案使用无服务器架构，客户只需为其实际使用量付费。
+ 解决方案的计算层默认为 Lambda，它使用模型。 pay-per-use
+ Athena 数据库和查询经过优化，可减少数据扫描量，从而降低成本。

## 可持续性
<a name="sustainability"></a>

本节介绍我们是如何使用[可持续性支柱](https://docs.aws.amazon.com/wellarchitected/latest/sustainability-pillar/sustainability-pillar.html)的原则和最佳实践来设计此解决方案的。
+ 该解决方案使用托管和无服务器服务来最大限度地减少后端服务对环境的影响。
+ 与持续运行本地服务器的足迹相比，该解决方案的无服务器设计旨在减少碳足迹。