Sakshats993/AWS-IAM-Security-Scanner
GitHub: Sakshats993/AWS-IAM-Security-Scanner
基于 Python 和 boto3 构建的 AWS IAM 安全审计工具,专注于自动化检测身份与访问管理层面的错误配置和权限提升风险。
Stars: 1 | Forks: 0
🔐 基于 Python 和 boto3 构建的真实 AWS IAM 安全审计工具
🔐 AWS IAM 安全扫描器
🚀 自动化 AWS IAM 错误配置检测工具
MFA • 策略 • 凭证 • 权限提升
## 📌 概述
**AWS IAM 安全扫描器**是一款实用的云安全工具,旨在检测 IAM 错误配置、分析风险并生成具有指导意义的安全报告。本项目展示了云安全工程师在 AWS 环境中识别和缓解错误配置时所使用的真实 IAM 安全审计技术。
## ⚡ 快速演示
```
$ python run_audit.py
```
CRITICAL: 2
HIGH: 3
MEDIUM: 4
LOW: 1
## 🚀 功能
- 🔍 检测常见的 IAM 错误配置
- 🛡️ 识别权限提升风险
- 🔑 审计访问密钥和凭证卫生状况
- 👤 检查 IAM 用户是否强制启用了 MFA
- 📜 分析 IAM 策略中的危险权限
- 🎭 评估 IAM 角色信任关系
- 📊 生成 Console、JSON 和 HTML 报告
- ⚙️ 支持通过 YAML 配置扫描
- 🧩 模块化且可扩展的架构
## 🧠 本项目展示了什么
- AWS IAM 安全基础知识
- 真实环境中的云错误配置检测
- 使用 Python (boto3) 实现安全自动化
- 基于风险的严重性分类(Critical → Low)
- 最小权限原则 的实际应用
## 🏗️ 项目结构
```
aws-iam-security-scanner/
├── run_audit.py # Entry point
├── config.yaml # Scanner configuration
├── requirements.txt
├── src/
│ ├── scanner/ # Security checks
│ ├── reporters/ # Output generators
│ └── utils/ # AWS + helper logic
├── reports/ # Generated reports
└── tests/
```
## ⚡ 工作原理
1. 使用已配置的凭证连接到 AWS
2. 扫描 IAM 资源(用户、角色、策略、凭证)
3. 根据最佳实践识别安全问题
4. 按严重程度对发现的问题进行分类
5. 生成带有修复步骤的详细报告
## 🔄 工作流程
AWS 账户 → 扫描模块 → 发现的问题 → 报告器 → 输出 (Console / JSON / HTML)
## ⚙️ 安装
### 1. 克隆仓库
```
git clone https://github.com/Sakshats993/AWS-IAM-Security-Scanner
cd aws-iam-security-scanner
```
### 2. 安装依赖
```
pip install -r requirements.txt
```
### 3. 配置 AWS 凭证
```
aws configure
```
### 或使用环境变量
```
cp .env.example .env
```
## ▶️ 使用方法
### 运行完整扫描
```
python run_audit.py
```
### 运行特定模块
```
python run_audit.py --scan-only users
```
### 使用不同的 AWS profile
```
python run_audit.py --profile production
```
### 禁用控制台输出
```
python run_audit.py --no-console
```
## 🔍 已实现的安全检查
### 🔴 Root 账户
- Root MFA 被禁用
- 存在 Root 访问密钥
### 👤 IAM 用户
- 未启用 MFA 的用户
- 未受保护的高权限用户
### 🔑 凭证
- 陈旧的访问密钥
- 长期有效的活动凭证
### 📜 IAM 策略
- 完全管理员访问权限 (`*:*`)
- 危险权限:
- iam:PassRole
- iam:CreatePolicyVersion
- iam:SetDefaultPolicyVersion
### 🎭 IAM 角色
- 过于宽松的信任策略 (* 通配符)
## 📊 输出示例
CRITICAL: 2
HIGH: 3
MEDIUM: 4
LOW: 1
报告存储在:
/reports/
## 📸 截图
Script Output (Policy Analysis + Remediation) Misconfigured User (No MFA + Dangerous Policy)
Clean Audit (No Issues Detected) Critical Finding (Root MFA Disabled)
IAM Users Overview User Configuration (Intern Test User)
## ⚠️ 问题发现示例
```
{
"severity": "CRITICAL",
"title": "Root Account MFA Not Enabled",
"resource": "root",
"description": "Root account does not have MFA enabled",
"remediation": "Enable MFA immediately"
}
```
来自真实 AWS 环境的输出示例:
- ❗ 未启用 MFA 的 Root 账户 (CRITICAL)
- ⚠️ 未启用 MFA 的用户 (HIGH)
- ⚠️ 过于宽松的策略
- 在应用前应使用 `terraform plan` 进行审查,因为它可能会创建产生费用的 AWS 资源。
## 🛡️ 安全影响
IAM 错误配置是导致云安全泄露的主要原因之一。这与真实的云攻击场景和安全审计相吻合。
- 权限提升路径
- 过于宽松的策略
- 薄弱的身份验证设置
- 长期有效的凭证
## 🚀 未来改进
- 发现问题的自动修复
- 多账户扫描支持
- AWS Security Hub 集成
- Slack / 邮件告警
- 仪表盘可视化
- 基于 AI 的风险评分
- CI/CD 集成以实现自动化安全检查
## 🛡️ 免责声明
本工具仅用于教育和授权的安全审计目的。请勿在未经适当许可的情况下将其用于他人账户。
## 📄 许可证
本项目基于 MIT 许可证授权。
## 🌟 支持
如果您觉得这个项目有用,请考虑在 GitHub 上给它点个 ⭐!
标签:AWS, boto3, DevSecOps, DPI, HTML报告, IAM, MFA, PoLP, Python, 上游代理, 云合规, 凭证安全, 协议分析, 数据展示, 无后门, 最小权限原则, 权限提升, 策略分析, 红队, 逆向工具, 配置检测, 风险分析