kutty17/secure-aws-cloud-infrastructure
GitHub: kutty17/secure-aws-cloud-infrastructure
基于 AWS 原生服务构建的安全云基础设施项目,演示了网络隔离、安全远程访问、集中监控、审计日志与合规管理的完整实施方案。
Stars: 0 | Forks: 0




# 具备监控、日志记录与合规性的安全 AWS 云基础设施
本项目演示了如何使用 AWS 安全最佳实践来构建安全的 AWS 云环境。它包含自定义 VPC、安全远程访问、集中监控、审计日志记录、合规性监控以及自动化通知。
该项目展示了使用 AWS 原生服务进行安全基础设施设计、监控和合规性管理。
## 🛠️ 技术栈
- Amazon EC2
- Amazon VPC
- Internet Gateway
- NAT Gateway
- AWS Systems Manager (SSM)
- Amazon CloudWatch
- Amazon SNS
- AWS CloudTrail
- Amazon S3
- AWS Config
- IAM
- MFA
- OpenVPN Access Server
## 📖 项目概述
本项目演示了如何使用 AWS 安全最佳实践来实现安全的 AWS 云基础设施。该环境的设计采用了安全的网络架构、私有工作负载部署、集中监控、审计日志记录和合规性监控。
该项目展示了如何使用 Amazon VPC、Systems Manager (SSM)、Amazon CloudWatch、Amazon SNS、AWS CloudTrail、Amazon S3 和 AWS Config 在 AWS 中安全地部署和管理 Windows 工作负载。
## 🎯 项目目标
- 构建安全的 AWS 基础设施。
- 在私有子网中部署工作负载。
- 保护管理访问权限,避免将 RDP 暴露到互联网。
- 使用 Amazon CloudWatch 监控基础设施健康状态。
- 使用 Amazon SNS 配置自动化警报。
- 使用 AWS CloudTrail 启用审计日志记录。
- 使用 AWS Config 持续评估安全合规性。
## 🏗️ 架构图

## 🛠 使用的 AWS 服务
| AWS 服务 | 用途 |
|-------------|---------|
| IAM | 身份与访问管理 |
| MFA | 安全的用户身份验证 |
| Amazon VPC | 隔离的虚拟网络 |
| Internet Gateway | 互联网连接 |
| Public Subnet | Bastion Host 部署 |
| Private Subnet | Windows Application Server 部署 |
| Amazon EC2 | 计算实例 |
| AWS Systems Manager | 安全的实例管理 |
| Amazon CloudWatch Agent | 收集操作系统级指标 |
| Amazon CloudWatch | 基础设施监控 |
| CloudWatch Dashboard | 可视化系统指标 |
| CloudWatch Alarm | 基于阈值的监控 |
| Amazon SNS | 邮件通知 |
| AWS CloudTrail | 审计日志记录 |
| Amazon S3 | CloudTrail 日志存储 |
| AWS Config | 合规性监控 |
# 🔐 安全架构
## 身份与访问管理
- 创建了 IAM 管理员用户。
- 启用了多因素身份验证 (MFA)。
- 避免使用 AWS Root 账户进行日常操作。
## 网络
- 创建了自定义 Amazon VPC。
- 配置了 Public Subnet 和 Private Subnet。
- 连接了 Internet Gateway。
- 配置了路由表。
- 应用遵循最小权限原则的安全组。
- 配置了 NAT Gateway,为私有子网中的资源提供出站互联网访问。
## 🌐 Amazon VPC
创建了一个自定义 Amazon VPC,其中包含独立的 Public Subnet 和 Private Subnet。通过配置路由表、Internet Gateway 和 NAT Gateway,在公有和私有资源之间提供了安全、受控且可靠的网络连接。

## 计算
## 🖥️ EC2 实例
该环境由部署在 Public Subnet 中的 Bastion Host 和部署在 Private Subnet 中的 Windows Application Server 组成。Application Server 使用 AWS Systems Manager (SSM) 进行安全管理,并使用 CloudWatch Agent 进行监控。
下面的截图展示了两个处于 **Running** 状态的 EC2 实例。

## 🔐 安全的远程访问
配置了 OpenVPN Access Server 以提供对 AWS 环境的安全远程访问。管理员在访问 VPC 内部的资源之前,需要通过加密的 VPN 隧道进行连接。
优势:
- 加密通信
- 安全的远程管理
- 对私有资源的受控访问
### Bastion Host
- 部署在 Public Subnet 中。
- 用于管理访问权限。
### Windows 应用服务器
- 部署在 Private Subnet 中。
- 未分配公有 IP。
- 使用 AWS Systems Manager 进行安全管理。
# 🖥️ 安全的实例管理
配置了 AWS Systems Manager Session Manager 来安全管理 Windows Application Server,而无需将 RDP (3389) 暴露到互联网。
优势:
- 无需公有 IP
- 无入站 RDP 访问
- 由 IAM 控制的访问权限
- 加密的会话
# 📊 监控
在 Windows Application Server 上安装了 Amazon CloudWatch Agent 以收集操作系统指标。
收集的指标:
- CPU 利用率
- 内存利用率
- 磁盘使用率
- 网络流入
- 网络流出
## 📊 CloudWatch Dashboard
创建了一个自定义的 CloudWatch Dashboard 来监控 Windows Application Server 的健康状态和性能。
该仪表板显示以下指标:
- CPU 利用率
- 内存利用率
- 网络流入
- 网络流出

## 🚨 CloudWatch Alarm
配置了 CloudWatch Alarm 来监控 CPU 和内存利用率。当超过配置的阈值时,警报状态将从 **OK** 变为 **ALARM** 并触发 Amazon SNS 通知。
已配置的警报:
- 高 CPU 利用率
- 高内存利用率

## 📧 Amazon SNS
将 Amazon SNS 与 CloudWatch Alarm 集成,以便在 CPU 或内存警报进入 **ALARM** 状态时发送电子邮件通知。这有助于管理员快速响应潜在问题。
**工作流程:**
```
CloudWatch Alarm
↓
Amazon SNS
↓
Email Notification
```

## 📜 审计日志记录
AWS CloudTrail 记录 AWS API 活动,并将日志文件安全地存储在 Amazon S3 存储桶中。这些日志有助于监控用户活动并支持安全审计。
**优势:**
- 追踪 AWS 账户活动
- 记录 API 调用
- 支持安全审计
- 有助于实现合规性

## ✅ 合规性监控
AWS Config 根据配置的合规性规则持续评估 AWS 资源。在本项目中,托管规则 `s3-bucket-public-read-prohibited` 用于检查 Amazon S3 存储桶是否允许公开读取访问。
**托管规则:**
- `s3-bucket-public-read-prohibited`
**合规性状态:**
- ✅ COMPLIANT

## 📄 文档
有关详细的实施步骤,请参考:
- [实施指南](docs/implementation-guide.md)
# 📈 项目工作流程
```
IAM User + MFA
│
▼
Secure Access
│
▼
Amazon VPC
│
┌──────┴──────────┐
│ │
▼ ▼
Public Subnet Private Subnet
│ │
▼ ▼
Bastion Host Windows Application Server
│
CloudWatch Agent
│
▼
Amazon CloudWatch
├──────────────┐
▼ ▼
Dashboard Alarm
│
▼
Amazon SNS
│
▼
Email
CloudTrail ─────────► Amazon S3
AWS Config ────────► Managed Rules
```
# 🔒 已实施的安全控制
- IAM 用户身份验证
- 多因素身份验证 (MFA)
- Private Subnet 部署
- AWS Systems Manager Session Manager
- CloudWatch 监控
- CloudWatch Alarm
- Amazon SNS 通知
- AWS CloudTrail 日志记录
- AWS Config 合规性监控
- 用于安全远程访问的 OpenVPN Access Server
# 📚 主要学习成果
通过本项目,我获得了以下方面的实践经验:
- AWS 身份与访问管理 (IAM)
- 多因素身份验证 (MFA)
- Amazon VPC 架构
- Public Subnet 和 Private Subnet
- AWS Systems Manager (SSM)
- Amazon CloudWatch Agent
- CloudWatch Dashboard
- CloudWatch Alarm
- Amazon SNS
- AWS CloudTrail
- Amazon S3
- AWS Config
- 云安全最佳实践
- 使用 OpenVPN Access Server 进行基于 VPN 的安全访问
# 🚀 未来改进
计划的增强功能包括:
- AWS GuardDuty
- Amazon Inspector
- AWS Security Hub
- AWS WAF
- AWS Shield
- Amazon EventBridge
- AWS Lambda 自动修复
# 📂 仓库结构
```
aws-cloud-security-project/
│
├── README.md
│
├── architecture/
│ ├── AWS-Cloud-Security-Architecture.drawio
│ └── architecture-diagram.png
│
├── screenshots/
│ ├── cloudwatch-dashboard.png
│ ├── cloudwatch-alarm.png
│ ├── sns-topic.png
│ ├── cloudtrail.png
│ ├── aws-config-rule.png
│ └── architecture-overview.png
│
└── docs/
└── implementation-guide.md
```
## ⭐ 致谢
本项目是作为我 AWS 云安全动手实践学习之旅的一部分而创建的,旨在加强在安全基础设施设计、监控、日志记录和合规性方面的实践技能。
标签:AWS, DPI, SecOps, 云安全架构, 基础设施, 安全合规, 网络代理