AuthaHub/pci-dss-ecommerce-platform
GitHub: AuthaHub/pci-dss-ecommerce-platform
基于Terraform在AWS上部署符合PCI-DSS v4.0.1标准的电商基础设施,包含三层VPC架构、KMS加密、WAF防护和完整审计日志。
Stars: 1 | Forks: 0
# 符合 PCI-DSS 标准的电子商务平台
## 业务背景
一家处理客户支付卡交易的零售电子商务公司
需要一个符合支付卡行业数据安全标准 (PCI-DSS v4.0.1) 要求的云基础设施。该平台需要
网络分段、静态加密、Web 应用保护
以及完整的审计日志记录,以满足合规义务并
保护持卡人数据。
## 架构概览

### 模块 1 — 网络基础 (10-network)
* 跨 us-east-1a 和 us-east-1b 的多 AZ VPC,包含公有和私有子网
* 用于公有子网出站路由的 Internet Gateway
* 无互联网路由的私有子网 — 强制执行网络分段
* 分别为公有层和私有层设置独立的路由表
### 模块 2 — 边缘与 WAF (20-edge-waf)
* 跨公有子网的面向互联网的 Application Load Balancer
* 附加到 ALB 的 AWS WAFv2,配置了 AWSManagedRulesCommonRuleSet
* ALB 安全组仅限入站 HTTP:80 流量
* 为 EC2 健康检查配置的目标组
### 模块 3 — 应用层 (25-app-ec2)
* 运行 nginx 作为应用占位符的 EC2 t3.micro
* 应用安全组仅允许来自 ALB 安全组的入站流量
* 实例注册到 ALB 目标组 — 已验证健康
### 模块 4 — 数据层 (30-data)
* 位于私有子网的 RDS MySQL 8.0 — 不公开访问
* 启用 Multi-AZ 以实现高可用性和自动故障转移
* KMS 客户托管密钥,启用自动轮换用于静态加密
* RDS 安全组仅允许来自应用层的 MySQL 端口 3306 流量
### 模块 5 — 日志与审计证据 (40-logging-evidence)
* CloudTrail 捕获所有 API 调用,并启用日志文件验证
* VPC Flow Logs 捕获所有网络流量 — CloudWatch 中保留 7 天
* S3 日志存储桶,启用 AES-256 加密、版本控制,并阻止公开访问
## 如何部署
### 前置条件
* 拥有 VPC, EC2, ALB, WAF, RDS, KMS, CloudTrail, S3, CloudWatch IAM 权限的 AWS 账户
* 已安装 Terraform >= 1.0
* 已配置凭证的 AWS CLI (`aws configure`)
* 已安装 Git
### 部署顺序
按以下确切顺序部署模块 — 每个模块都依赖于前一个模块:
```
# 1 — 网络基础
cd Terraform/10-network
terraform init && terraform plan
terraform apply
# 2 — Edge & WAF(需要 10-network 输出)
cd ../20-edge-waf
terraform init && terraform plan
terraform apply
# 3 — 应用层(需要 20-edge-waf 输出)
cd ../25-app-ec2
terraform init && terraform plan
terraform apply
# 4 — 数据层(需要 10-network 输出)
cd ../30-data
terraform init && terraform plan
terraform apply
# 5 — 日志与审计(需要 10-network + 20-edge-waf 输出)
cd ../40-logging-evidence
terraform init && terraform plan
terraform apply
```
### 如何销毁 (成本控制)
始终按相反顺序销毁以避免依赖错误:
```
cd Terraform/40-logging-evidence && terraform destroy
cd ../25-app-ec2 && terraform destroy
cd ../20-edge-waf && terraform destroy
cd ../10-network && terraform destroy
```
## 应用的 PCI-DSS 原则
* 强制执行网络分段 — 持卡人数据环境隔离在没有直接互联网路由的私有子网中
* 最小权限安全组 — 每一层仅接受来自其直接上一层的流量
* 静态加密 — RDS 存储使用启用自动轮换的 KMS 客户托管密钥进行加密
* Web 应用防火墙 — 带有 OWASP 托管规则的 WAFv2 可防止 SQLi、XSS 和常见的 Web 攻击
* 审计日志记录 — CloudTrail 捕获每一个 API 操作,并带有防篡改的日志文件验证
* 网络流量监控 — VPC Flow Logs 捕获所有流量元数据以进行异常检测
* 日志保护 — S3 日志存储桶经过加密、版本控制,并完全阻止公开访问
* 无公开访问的数据库 — RDS 部署在私有子网中,publicly_accessible = false
## 合规性对齐
| PCI-DSS 要求 | 描述 | 实现 |
|---------------------|-------------|----------------|
| Req 1.2 | 限制入站和出站流量 | 安全组在所有层之间强制执行最小权限 |
| Req 1.3 | 禁止直接公开访问持卡人数据环境 | RDS 和 EC2 位于无互联网路由的私有子网中 |
| Req 3.5 | 使用强加密保护存储的账户数据 | RDS 上启用自动密钥轮换的 KMS CMK 加密 |
| Req 6.4 | 保护面向 Web 的应用程序免受攻击 | ALB 上配置了 AWSManagedRulesCommonRuleSet 的 WAFv2 |
| Req 10.2 | 实施审计日志以检测异常 | CloudTrail 捕获账户中的所有 API 调用 |
| Req 10.3 | 保护审计日志免遭破坏和修改 | 启用日志文件验证,S3 存储桶启用版本控制和加密 |
| Req 10.4 | 保护审计日志免受未经授权的访问 | S3 公开访问完全阻止,存储桶策略限制写入 |
| Req 10.7 | 保留审计日志历史记录 | 配置 CloudWatch 日志保留,启用 S3 版本控制 |
| Req 12.10 | 响应可疑或已确认的安全事件 | Multi-AZ RDS 提供自动故障转移以保障可用性 |
## 基础设施即代码
所有资源通过 Terraform 跨 5 个模块部署:
* `Terraform/10-network` — VPC、子网、路由表、Internet Gateway
* `Terraform/20-edge-waf` — ALB、WAFv2、安全组、目标组
* `Terraform/25-app-ec2` — EC2 实例、应用安全组、目标组挂载
* `Terraform/30-data` — RDS MySQL、KMS 密钥、DB 子网组、RDS 安全组
* `Terraform/40-logging-evidence` — CloudTrail、VPC Flow Logs、S3 日志存储桶
## 工具与技术
* Terraform >= 1.0
* AWS (VPC, EC2, ALB, WAFv2, RDS MySQL, KMS, CloudTrail, VPC Flow Logs, CloudWatch, S3)
* MySQL 8.0
* nginx
* GitHub: AuthaHub
## 参考资料
* [PCI DSS v4.0.1 — 官方框架](https://docs-prv.pcisecuritystandards.org/PCI%20DSS/Standard/PCI-DSS-v4_0_1.pdf)
* [AWS WAF 开发人员指南](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)
* [AWS RDS 静态加密](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.Encryption.html)
* [AWS CloudTrail 用户指南](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)
* [AWS VPC Flow Logs](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html)
标签:AWS, CloudTrail, DevSecOps, DPI, EC2, ECS, IaC, KMS加密, PCI-DSS, ProjectDiscovery, RDS, Terraform, VPC, WAF, 三层架构, 上游代理, 人工智能安全, 合规性, 基础设施, 审计日志, 数据保护, 电子商务, 网络安全, 隐私保护