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 应用保护 以及完整的审计日志记录,以满足合规义务并 保护持卡人数据。 ## 架构概览 ![架构图](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/5b56553ee2010331.png) ### 模块 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, 三层架构, 上游代理, 人工智能安全, 合规性, 基础设施, 审计日志, 数据保护, 电子商务, 网络安全, 隐私保护