NazeefShk/aws-cloud-security-monitoring-lab

GitHub: NazeefShk/aws-cloud-security-monitoring-lab

基于 AWS 原生服务构建的端到端云安全监控实验室,实现控制台登录事件检测与自动化邮件告警。

Stars: 0 | Forks: 0

# ☁️ AWS 云安全监控实验室

![AWS](https://img.shields.io/badge/AWS-Cloud-orange?style=for-the-badge&logo=amazonaws) ![CloudTrail](https://img.shields.io/badge/AWS-CloudTrail-blue?style=for-the-badge) ![CloudWatch](https://img.shields.io/badge/AWS-CloudWatch-purple?style=for-the-badge) ![SNS](https://img.shields.io/badge/AWS-SNS-red?style=for-the-badge) ![IAM](https://img.shields.io/badge/AWS-IAM-green?style=for-the-badge)

## 📖 项目概述 本项目演示了如何使用 AWS 原生的安全和监控服务,实现一个端到端的 AWS 云安全监控解决方案。 该解决方案使用 AWS CloudTrail 捕获 AWS 控制台登录事件,将日志转发到 Amazon CloudWatch Logs,通过 Metric Filters 检测登录活动,触发 CloudWatch Alarms,并通过 Amazon SNS 发送实时的电子邮件通知。此外,还配置了 IAM Access Analyzer 来监控资源是否存在意外的外部访问。 本项目模拟了组织如何监控 AWS 账户活动,并针对关键管理事件自动化安全告警。 ## 🎯 目标 - 监控 AWS 控制台登录活动。 - 使用 AWS CloudTrail 捕获 API 事件。 - 将日志存储在 Amazon CloudWatch Logs 中。 - 使用 Metric Filters 检测登录事件。 - 生成自定义 CloudWatch Metrics。 - 自动触发 CloudWatch Alarms。 - 使用 Amazon SNS 发送实时电子邮件警报。 - 使用 IAM Access Analyzer 分析外部资源访问。 - 演示端到端的云安全监控工作流。 ## 🏗️ 架构

## 📑 目录 - [项目概述](#-project-overview) - [目标](#-objectives) - [架构](#-architecture) - [使用的 AWS 服务](#-aws-services-used) - [安全工作流](#-security-workflow) - [仓库结构](#-repository-structure) - [实施步骤](#-implementation-steps) - [截图](#-screenshots) - [测试与验证](#-testing--validation) - [主要学习成果](#-key-learning-outcomes) - [展示的技能](#-skills-demonstrated) - [未来改进](#-future-improvements) ## 📚 文档 详细的实施指南: - 📄 [项目概述](documentation/project-overview.md) - ⚙️ [设置指南](documentation/setup-guide.md) - 🧪 [测试与验证](documentation/testing-validation.md) ## ⚙️ 使用的 AWS 服务 | 服务 | 用途 | |----------|----------| | AWS CloudTrail | 捕获 AWS API 和控制台登录事件 | | Amazon CloudWatch Logs | 存储 CloudTrail 日志 | | CloudWatch Metric Filters | 检测 ConsoleLogin 事件 | | CloudWatch Metrics | 生成自定义安全指标 | | CloudWatch Alarms | 监控安全指标 | | Amazon SNS | 发送电子邮件通知 | | IAM Access Analyzer | 检测意外的外部资源访问 | # 🔄 安全工作流 该监控解决方案遵循事件驱动的安全工作流,以检测 AWS 控制台登录活动并生成自动化通知。 ``` AWS Console Login │ ▼ AWS CloudTrail records the event │ ▼ CloudTrail Logs → Amazon CloudWatch Logs │ ▼ Metric Filter detects "ConsoleLogin" │ ▼ Custom Metric (ConsoleLogin) │ ▼ CloudWatch Alarm evaluates threshold │ ▼ Amazon SNS publishes notification │ ▼ Email Alert sent to administrator IAM Access Analyzer continuously monitors AWS resources for unintended external access. ``` # 📂 仓库结构 ``` aws-cloud-security-monitoring-lab/ │ ├── README.md ├── LICENSE │ ├── architecture/ │ └── architecture.png │ ├── documentation/ │ ├── project-overview.md │ ├── setup-guide.md │ └── testing-validation.md │ └── screenshots/ ├── 01-cloudtrail-trail.png ├── 02-cloudtrail-event-history.png ├── 03-cloudwatch-log-group.png ├── 04-cloudwatch-log-streams.png ├── 05-consolelogin-metric-filter.png ├── 06-consolelogin-alarm.png ├── 07-sns-topic.png ├── 08-email-alert.png └── 09-iam-access-analyzer.png ``` # 🛠️ 实施步骤 ## 步骤 1 – 配置 AWS CloudTrail - 创建了多区域 CloudTrail。 - 启用了管理事件日志记录。 - 配置了用于日志存储的 Amazon S3 存储桶。 - 将 CloudTrail 与 Amazon CloudWatch Logs 集成。 ## 步骤 2 – 配置 CloudWatch Logs - 创建了 **CloudTrailLogs** 日志组。 - 验证了生成的日志流。 - 确认了 CloudTrail 事件已成功交付。 ## 步骤 3 – 创建 Metric Filter 使用以下模式创建了指标过滤器: ``` { $.eventName = "ConsoleLogin" } ``` 配置: - 命名空间:**Security** - 指标名称:**ConsoleLogin** - 指标值:**1** ## 步骤 4 – 配置 CloudWatch Alarm 使用自定义指标创建了警报。 配置: - 指标:**ConsoleLogin** - 阈值:**大于 0** - 评估期:**1** - 周期:**5 分钟** 每当发生控制台登录事件时,警报就会转换为 **ALARM** 状态。 ## 步骤 5 – 配置 Amazon SNS - 创建了 SNS Topic **SecurityAlerts** - 添加了电子邮件订阅 - 确认了订阅 - 将 CloudWatch Alarm 连接到 SNS 结果: 每当警报进入 ALARM 状态时,就会自动发送一封电子邮件通知。 ## 步骤 6 – 配置 IAM Access Analyzer 配置了 IAM Access Analyzer 以监控 AWS 账户是否存在意外的外部访问。 在测试期间,没有报告任何活动的发现,表明未检测到可外部访问的资源。 # 📸 截图 ## CloudTrail 配置 为多区域日志记录配置的 CloudTrail。 ![](https://static.pigsec.cn/wp-content/uploads/repos/cas/f3/f31aafd76b60d26a3b70fae442f5781595eb057897a465cbb343658a172f958b.png) ## CloudTrail 事件历史记录 捕获的 AWS API 活动,包括管理事件。 ![](https://static.pigsec.cn/wp-content/uploads/repos/cas/23/237b50962ffffd61d87e7f20505e6d51ecf4d80fe5ccda3969a76eaedfff1246.png) ## CloudWatch 日志组 交付到 CloudWatch Logs 的 CloudTrail 日志。 ![](https://static.pigsec.cn/wp-content/uploads/repos/cas/e8/e89f3bef6f11e456a0d818bcb6d905123fcbe887c4369cc5a1b199d4f7941eb4.png) ## CloudWatch 日志流 生成的日志流,确认日志成功接收。 ![](https://static.pigsec.cn/wp-content/uploads/repos/cas/a2/a2146e82c367e2c51bb153bf2faa39431f89a52e2cf7ff353c9a840d2ee903cf.png) ## Metric Filter 配置了用于检测控制台登录事件的 Metric Filter。 ![](https://static.pigsec.cn/wp-content/uploads/repos/cas/70/70667366ce3fe1beae92d283fdb13310e5b98cad580401d0fbc25839a0030e24.png) ## CloudWatch Alarm 配置了用于监控控制台登录活动的 CloudWatch Alarm。 ![](https://static.pigsec.cn/wp-content/uploads/repos/cas/60/60740eeca5f0e383c75e494357a7daf362863ab06b7c85d676d5881985810f89.png) ## Amazon SNS Topic 为安全通知配置的 SNS Topic。 ![](https://static.pigsec.cn/wp-content/uploads/repos/cas/77/770e6f4f7e0d9ab03ce408e95d79e0005dc98d95aa736150f2e416edec930341.png) ## 电子邮件通知 成功登录控制台事件后生成的实时电子邮件通知。 ![](https://static.pigsec.cn/wp-content/uploads/repos/cas/33/332272520273903375415162e01481479ac560ddb07d668e25ed109a27aa73a9.png) ## IAM Access Analyzer 配置了用于监控 AWS 资源是否存在意外外部访问的分析器。 ![](https://static.pigsec.cn/wp-content/uploads/repos/cas/1b/1bb703a79e7c81f854005956c96d83bf2d4d189459e9f1396ecd251f005e6e9d.png) # 🧪 测试与验证 该监控流水线已通过生成 AWS 控制台登录事件进行了验证。 ## 测试场景 1. 登录 AWS 管理控制台。 2. 验证 CloudTrail 记录了 ConsoleLogin 事件。 3. 确认 CloudTrail 将日志交付给了 CloudWatch Logs。 4. 验证 Metric Filter 生成了自定义指标。 5. 确认 CloudWatch Alarm 进入了 ALARM 状态。 6. 验证 Amazon SNS 发送了电子邮件通知。 7. 确认 IAM Access Analyzer 已启用并正在监控资源。 ## ✨ 功能 - 多区域 AWS CloudTrail 日志记录 - 使用 CloudWatch Logs 进行集中式日志管理 - 实时检测 AWS 控制台登录事件 - 自定义 CloudWatch Metric Filters - 自动化的 CloudWatch Alarms - 通过 Amazon SNS 发送电子邮件通知 - 使用 IAM Access Analyzer 评估外部访问 - 包含架构图和验证的专业文档 ## 验证结果 | 组件 | 状态 | |-----------|--------| | CloudTrail Logging | ✅ 成功 | | CloudWatch Logs | ✅ 成功 | | Metric Filter | ✅ 成功 | | 自定义指标 | ✅ 成功 | | CloudWatch Alarm | ✅ 成功 | | Amazon SNS Notification | ✅ 成功 | | 电子邮件警报 | ✅ 成功 | | IAM Access Analyzer | ✅ 已启用 | # 📚 主要学习成果 本项目提供了以下方面的实践经验: - AWS 安全监控架构 - AWS CloudTrail 事件日志记录 - Amazon CloudWatch Logs - CloudWatch Metric Filters - 自定义 CloudWatch Metrics - CloudWatch Alarm 配置 - Amazon SNS 通知 - IAM Access Analyzer - 事件驱动的安全监控 - 云安全最佳实践 - 监控 AWS 管理控制台活动 - 构建自动化告警流水线 # 💼 展示的技能 - AWS 云安全 - 云监控 - 安全事件检测 - 日志管理 - 事件关联 - 安全告警 - IAM 安全 - AWS 身份与访问管理 - Amazon CloudWatch - AWS CloudTrail - Amazon SNS - 事件监控 - 安全运营中心 (SOC) - 云基础设施监控 # 🚀 未来改进 可能的增强功能包括: - 集成 AWS Security Hub 以获取集中式安全发现。 - 启用 Amazon GuardDuty 进行智能威胁检测。 - 配置 AWS Config Rules 进行合规性监控。 - 监控其他 CloudTrail 事件,例如: - Root 账户使用情况 - IAM 策略更改 - 安全组修改 - 未授权的 API 调用 - 控制台登录失败 - 将 CloudWatch Logs 转发到 Amazon OpenSearch 进行高级日志分析。 - 集成 AWS Lambda 实现自动化的事件响应。 - 构建 CloudWatch Dashboard 以可视化安全指标。 - 实施 AWS Systems Manager Automation 进行补救工作流。 # 👨‍💻 作者 **Nazeef Shaikh** 如果您觉得这个项目有帮助,欢迎为这个仓库点个 ⭐。 本项目旨在用于学习、作品集开发,并演示实用的 AWS 云安全监控概念。
标签:AWS, CloudTrail, CloudWatch, DPI, 告警通知