scynesthesia/aws-infrastructure-labs

GitHub: scynesthesia/aws-infrastructure-labs

通过 Terraform 部署多可用区 AWS VPC 多层网络架构的实验项目,用于学习云基础设施设计、安全隔离与故障验证。

Stars: 0 | Forks: 0

# AWS 基础设施与安全实验室 该项目使用公有子网和私有子网实现了多可用区(multi-AZ)AWS VPC 架构。 它包含: - 跨 2 个可用区划分的 VPC 分段子网 - 用于控制连接的 Internet Gateway 和 NAT Gateways - 部署在私有子网中的 EC2 实例 - 处理公有流量的 Application Load Balancer - 实施访问控制的 Security Groups 和路由表 该环境使用 Terraform 部署,并通过测试连通性、路由行为、访问限制和人为故障场景进行了验证。 ## 已验证的内容 - 验证了私有 EC2 实例可通过 NAT Gateway 进行出站互联网访问 - 确认无法直接对私有实例进行入站访问 - 测试了通过 Application Load Balancer 进行的 HTTP 访问 - 通过路由表验证了子网间的路由 ## 项目 1:具有公有和私有子网的多可用区 VPC 架构 跨多个可用区实现了多层 AWS 网络架构。 - 使用子网分段隔离公有和私有工作负载 - 通过 Application Load Balancer 限制入站流量 - 使用 NAT Gateways 控制私有实例的出站访问 - 使用 Security Groups 和路由表实施分层安全 此设置用于模拟真实的云网络和安全模式,重点关注隔离性、受控访问和弹性。 ![架构图](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/6981d2f455091610.png) ### 架构目标 - 跨两个可用区部署资源以提高弹性 - 使用子网分段隔离面向公众的工作负载和私有工作负载 - 仅允许通过面向公众的 Application Load Balancer 接收入站应用程序流量 - 允许私有实例通过 NAT Gateways 进行出站互联网访问 - 使用 Security Groups 和路由表隔离实施分层访问控制 ### 关键组件 - 1 个 VPC (`10.0.0.0/16`) - 2 个公有子网 - 2 个私有子网 - 1 个 Internet Gateway - 2 个 NAT Gateways - 1 个 Application Load Balancer - 2 个 EC2 应用程序实例 - 公有和私有路由表 ### 流量走向 - 互联网流量通过 Internet Gateway 进入 - Application Load Balancer 接收公有的 HTTP 流量 - ALB 将请求转发到私有子网中的 EC2 应用程序实例 - 私有实例使用 NAT Gateways 进行出站互联网访问,而无需直接暴露 ### 安全考量 - EC2 实例放置在私有子网中,没有直接的公有 IP 暴露 - 公众访问仅限于负载均衡器层 - Security Groups 用于将应用程序流量仅限制于 ALB - 路由表将公有入口流量与私有出站流量分离开来 ### Terraform 实现 该项目还包括图中所示架构的 Terraform 实现。Terraform 配置旨在将基础设施建模为代码,包括: - VPC 和子网的创建 - Internet Gateway 和 NAT Gateways - 公有和私有路由表 - Application Load Balancer - EC2 应用程序实例 - Security Groups 和 target group 配置 ### 如何运行 此实验室旨在临时部署,用于测试和学习目的。 1. `terraform init` 初始化 Terraform 并下载 AWS provider。 2. `terraform plan` 审查执行计划并验证要创建的资源。 3. `terraform apply` 将实验室基础设施部署到 AWS 中。 4. `terraform destroy` 测试完成后删除所有资源,以避免不必要的成本。 ### 备注 这是一个为架构实践、安全设计审查和基础设施即代码(IaC)学习而创建的实验室环境。它并非作为可用于生产环境的部署而提供。 ## 未来改进 - 带有 ACM 证书的 HTTPS 监听器 - 用于应用程序实例的 Auto Scaling Group - CloudWatch 告警和日志扩展 - VPC Flow Logs - AWS WAF 集成 - 更加模块化的 Terraform 结构 ## 故障测试 为了验证网络隔离和安全控制,我们引入并测试了人为的错误配置。 ### NAT Gateway 移除测试 - 从私有子网路由表中移除了指向 NAT Gateway 的默认路由 (`0.0.0.0/0`) - 结果:私有 EC2 实例失去了出站互联网连接 - 使用 `curl` 进行了验证(请求超时) ### Security Group 限制测试 - 从 Application Load Balancer 的 Security Group 中移除了 HTTP(端口 80)入站规则 - 结果:应用程序无法从互联网访问 - 通过浏览器进行了验证(无响应) 这些测试证实出站访问依赖于 NAT 配置,而入站访问受到 Security Groups 的严格控制。
标签:AWS, DPI, ECS, Streamlit, Terraform, VPC, 云计算, 网络架构, 规则引擎, 访问控制