pallavikhadse/AWS-Security-Monitoring-System-and-Real-Time-Alerts
GitHub: pallavikhadse/AWS-Security-Monitoring-System-and-Real-Time-Alerts
AWS安全监控系统,实时监控敏感凭证访问并触发警报。
Stars: 0 | Forks: 0
# AWS 安全监控系统 & 实时警报
一个零信任的 AWS 安全基础设施,旨在监控对敏感凭证的非授权或关键访问。此项目演示了如何使用 AWS CloudTrail 跟踪秘密访问事件,通过 Amazon CloudWatch 集中日志,并在阈值被突破时即时广播实时电子邮件通知使用 AWS SNS(简单通知服务)。
## 项目概述
此项目的目标是实现围绕 AWS Secrets Manager 的自动化安全边界。通过建立即时警报管道,系统将检测到补救的时间窗口从小时缩短到秒。
### 关键学习目标
* 实施身份访问管理和跟踪 API 活动。
* 通过 **AWS CloudTrail** 审计数据事件和资源级操作。
* 使用聚合指标(`Sum`)构建自定义 **CloudWatch 指标过滤器** 和 **警报**。
* 使用 **AWS SNS** 结构解耦的 pub/sub 警报架构。
* 利用 **AWS Management Console** 和 **AWS CLI** 与 AWS 资源接口。
## 架构与服务使用
* **AWS Secrets Manager**:数据库凭证、API 密钥和 OAuth 令牌的安全存储。
* **AWS CloudTrail**:管理和数据事件跟踪以记录操作历史。
* **AWS CloudWatch Logs**:集中存储和实时交互式模式过滤。
* **AWS CloudWatch Alarms**:基于零信任逻辑评估违规的指标监控。
* **AWS SNS(简单通知服务)**:解耦的消息主题,提供跨渠道警报。
* **AWS CLI / CloudShell**:API 访问事件的命令行验证。
## 实施步骤
### 步骤 1:在 AWS Secrets Manager 中创建一个秘密
* 部署了一个名为 `MySecretInfo` 的秘密,其中包含敏感的键值对。
* 使用默认的 `aws/secretsmanager` KMS 密钥配置了标准加密。
### 步骤 2:设置 AWS CloudTrail 监控
* 配置了一个专门的跟踪来捕获 **数据事件** 和跟踪资源级操作。
* 启用了 API 活动的日志记录,确保审计了 *只读*(例如,获取详细信息)和 *写入*(例如,修改配置)活动。
### 步骤 3:配置 CloudWatch 日志和自定义指标过滤器
* 将 CloudTrail 配置为将日志事件直接流式传输到 CloudWatch 日志组(`mysecretsmanager-loggroup`)。
* 创建了一个名为 `GetSecretsValue` 的指标过滤器,用于解析原始日志字符串以进行目标模式匹配。
* 将 **指标值** 设置为 `1`(每次访问尝试增加计数器),将 **默认值** 设置为 `0`,以在仪表板图表上保持连续的基线。
### 步骤 4:建立零信任 CloudWatch 警报
* 基于自定义指标过滤器配置了一个警报。
* **应用逻辑规则**:
* **统计**:`Sum`(在 `1 分钟` 期间评估,用于近实时检测)。
* **条件**:大于或等于($\ge$)`1`。
* **安全结果**:
* `0` 访问 = 正常状态(`OK`)
* `1+` 访问 = 安全违规状态(`ALARM`)
### 步骤 5:配置 AWS SNS 通知管道
* 创建了一个名为 `SecurityAlarms` 的标准 SNS 主题。
* 将管理电子邮件地址订阅到主题,并验证订阅链接以授予投递权限。
* 将 CloudWatch 警报操作状态直接链接到 SNS 主题 ARN。
## 验证与测试
为了测试管道的弹性,故意通过 **AWS CLI / CloudShell** 获取了秘密:
```
aws secretsmanager get-secret-value --secret-id "MySecretInfo" --region us-east-1
```
标签:AWS CLI, CloudTrail, CloudWatch, CSV输出, SNS 通知, WSL, 事件追踪, 云审计, 云服务集成, 代码分析, 凭证管理, 安全警报, 漏洞利用检测, 结构化查询, 自动化安全, 零信任架构