本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
通过 Terraform 部署 Security Automations for AWS WAF 解决方案
由 Rahul Sharad Gaikwad 博士 (AWS) 和 Tamilselvan P (AWS) 编写
代码存储库:aws-waf-automation-terraform-sam ples | 环境:PoC 或试点 | 技术:安全、身份、合规;基础架构;内容交付; DevOps |
工作负载:所有其他工作负载 | Amazon Web Services:AWS WAF |
Summary
AWS WAF 是一款 Web 应用程序防火墙,通过使用自定义规则(可在 Web 访问控制列表(ACL) 中定义和部署)来帮助保护应用程序免受常见漏洞攻击。配置 AWS WAF 规则可能具有挑战性,对于没有专门安全团队的组织而言更是如此。为简化此流程,Amazon Web Services (AWS) 提供了 Security Automations for AWS WAF
AWS WAF 安全自动化解决方案可按照《AW CloudFormation S WA F 安全自动化实施指南》中的说明使用 AWS 进行部署。这种模式为使用 HashiCorp Terraform作为其首选基础设施即代码 (IaC) 工具来配置和管理其云基础架构的组织提供了另一种部署选项。当您部署此解决方案时,Terraform 会自动将更改应用至云端,部署并配置 AWS WAF 设置和保护功能。
先决条件和限制
先决条件
一个有效的 Amazon Web Services account。
具有所需权限的 AWS 命令行界面(AWS CLI)已安装并配置。有关更多信息,请参阅入门(AWS CLI 文档)。
Terraform,已安装并配置。有关更多信息,请参阅安装 Terraform
(Terraform 文档)。
产品版本
AWS CLI 版本 2.4.25 或更高版本
Terraform 版本 1.1.9 或更高版本
架构
目标架构
此模式部署了 Security Automations for AWS WAF 解决方案。有关目标架构的更多信息,请参阅 Security Automations for AWS WAF 实施指南中的架构概述。有关此部署中的 AWS Lambda 自动化、应用程序日志解析器、AWS WAF 日志解析器、IP 列表解析器和访问处理程序的更多信息,请参阅 Security Automations for AWS WAF 实施指南中的组件详细信息。
Terraform 部署
当您运行 terraform apply
时,Terraform 会执行以下操作:
Terraform 根据 testing.tfvars 文件中的输入创建 IAM 角色和 Lambda 函数。
Terraform 根据 testing.tfvars 文件中的输入创建 AWS WAF ACL 规则和 IP 集。
Terraform 根据测试.tfvars 文件中的输入创建了亚马逊简单存储服务 (Amazon S3) 存储桶 EventBridge 、亚马逊规则、AWS Glue 数据库表和亚马逊 Athena 工作组。
Terraform 部署 AWS CloudFormation 堆栈来配置自定义资源。
Terraform 根据 testing.tfvars 文件中的指定输入创建 Amazon API Gateway 资源。
自动化和扩缩
您可以使用此模式为多个 Amazon Web Services Account 和 AWS 区域 创建 AWS WAF 规则,以在整个 Amazon Web Services Cloud 环境中部署 Security Automations for AWS WAF 解决方案。
工具
Amazon Web Services
AWS 命令行界面(AWS CLI)是一种开源工具,它可帮助您通过命令行 Shell 中的命令与 Amazon Web Services 交互。
AWS WAF 是一种 Web 应用程序防火墙,可帮助您监视转发至受保护 Web 应用程序资源的 HTTP 和 HTTPS 请求。
其他服务
Git
是开源分布式版本控制系统。 HashiCorp Terraform
是一款命令行界面应用程序,可帮助您使用代码来配置和管理云基础架构和资源。
代码存储库
此模式的代码可在使用 Terraform 的 GitHub AWS WAF 自动化存储库
最佳实践
将静态文件置于单独的 S3 存储桶。
避免对变量执行硬编码。
限制自定义脚本的使用。
采用副本命名约定。
操作说明
任务 | 描述 | 所需技能 |
---|---|---|
初始化 Terraform 配置。 | 输入以下命令,以初始化包含 Terraform 配置文件的工作目录。
| DevOps 工程师 |
预览 Terraform 计划。 | 输入以下 命令。Terraform 会评估配置文件,以确定已声明资源的目标状态。然后,其将比较目标状态与当前状态,并创建计划。
| DevOps 工程师 |
验证计划。 | 查看计划,并确认它已在您的目标 Amazon Web Services Account 中配置了所需架构。 | DevOps 工程师 |
部署解决方案。 |
| DevOps 工程师 |
任务 | 描述 | 所需技能 |
---|---|---|
验证更改。 |
| DevOps 工程师 |
(可选)清理 基础架构。 | 如果想删除此解决方案所执行的所有资源和配置更改,请执行以下操作:
| DevOps 工程师 |
故障排除
问题 | 解决方案 |
---|---|
| 如果运行 |
相关资源
AWS 参考
Terraform 参考
其他信息
以下命令克隆此模式的 GitHub 存储库。
git clone https://github.com/aws-samples/aws-waf-automation-terraform-samples.git