prowler
一条命令扫描 AWS/Azure/GCP 等 20+ 云环境的开源安全平台,内置 300+ 检查项和数十种合规框架对齐报告
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
一条命令扫描 AWS/Azure/GCP 等 20+ 云环境的开源安全平台,内置 300+ 检查项和数十种合规框架对齐报告
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下这样的场景:你的团队刚完成一次大规模云架构迁移,所有服务都在 AWS 和 Azure 上平稳运行。然而三个月后的一个深夜,一封来自安全团队的邮件打破了宁静——有人发现生产数据库的安全组规则允许 0.0.0.0/0 入站访问,RDS 快照未开启加密,S3 存储桶的访问日志形同虚设……这些"定时炸弹"其实一直埋藏在眼皮底下,只是没有人去主动发现它们。
Prowler 正是为解决这个痛点而生。它是一款开源云安全态势管理与合规检测平台,只需一条命令,就能对 AWS、Azure、GCP、Kubernetes、GitHub 等 20+ 云环境进行全面"体检",并输出 CIS、PCI-DSS、HIPAA、SOC2 等主流合规框架的对齐报告。目前 GitHub 星标超过 13,800,拥有 2,100+ 贡献者,是云安全领域当之无愧的"顶流"开源项目。

图1:Prowler Logo
Prowler 由西班牙安全工程师 Toni de la Fuente(GitHub @toniblyx)于 2015 年创立,最初只是一个简单的 AWS 安全检查脚本。如今它已成长为 Linux 基金会旗下的重要项目,获得了 AWS、Microsoft、Google Cloud 等主流云厂商的官方认可。项目的商业化版本 Prowler Cloud 提供 SaaS 托管服务,支持将扫描结果实时推送至云端仪表盘,并提供企业级的多账户管理、AI 辅助风险分析和自动化修复建议。
Prowler 的演进路径非常有代表性:
项目采用 Python 3.10-3.12 构建,CLI 核心使用 argparse 和 Click 框架,输出层集成了 Dash(Plotly)做可视化仪表盘,后端 API 基于 Django + PostgreSQL + Neo4j 图数据库,缓存层使用 Valkey(Redis fork)。多云 SDK 覆盖了 AWS boto3、Azure SDK 和 Google Cloud SDK,对每个厂商的 IAM、服务配置、存储访问等维度都有深入的安全检测逻辑。
第一把刷子:300+ 开箱即用的安全检查项
Prowler 内置了覆盖所有主流云服务的检查规则,涵盖身份认证(IAM)、计算资源(EC2/Lambda)、存储(S3/RDS)、网络(Security Groups/VPC)、加密(KMS)、日志(CloudTrail/CloudWatch)等维度。每条检查都对应一个 CIS Benchmark 标准或 CVE 漏洞库编号,输出的 finding 包含严重等级(CRITICAL/HIGH/MEDIUM/LOW)、资源 ID、账户信息和修复建议。
第二把刷子:合规框架一键对齐
针对企业常见的合规需求,Prowler 提供了 CIS AWS Foundations Benchmark、CIS Azure Foundations Benchmark、CIS GCP Foundation、PCI-DSS 4.0、AWS HIPAA Security、AWS NIST 800-53、AWS SOC 2、ISO 27001 等数十种框架的映射。用户只需指定输出格式(JSON-OCSF、SARIF、HTML、CSV),即可一键生成合规报告。
第三把刷子:多云统一视图
Prowler 支持同时扫描多个云环境的多个账户:AWS 的 Organizations、Azure 的 Management Groups、GCP 的 Organizations/projects,都能在一次扫描中覆盖。生成的 CSV/JSON 报告中,每个 finding 都带云厂商、资源类型、区域等元数据,方便在 SIEM/SOAR 平台中统一处理。
Prowler 的部署灵活性是它区别于商业 CSPM 工具的核心优势。
路径一:pip 一键安装(最轻量)
pip install prowler
prowler aws # 直接扫描 AWS
prowler azure --sp-domain-id <tenant-id>
这是最简单的方式,适合个人开发者和小型团队。Python 3.10+ 环境,pip 安装,整个过程不超过 5 分钟。扫描完成后,结果输出到当前目录的 prowler-output/ 文件夹。
路径二:Docker 一行命令(最通用)
项目提供了生产级的多阶段 Dockerfile,基于 python:3.12-slim-bookworm,内置 PowerShell、Trivy(IaC 扫描)、zizmor(GitHub Actions 扫描)等工具。官方镜像发布在 Docker Hub (toniblyx/prowler) 和 AWS ECR Public Gallery,一条命令即可运行:
docker run --rm -v ~/.aws:/root/.aws:ro \
toniblyx/prowler prowler aws
路径三:docker-compose 完整平台(生产级)
docker-compose.yml 包含了完整的微服务栈:
启动命令只需:
cp .env.example .env
# 填写必要的云凭证环境变量
docker compose up
端口 8080(API)和 3000(UI)即可访问完整平台。
路径四:Kubernetes Job(企业级)
项目在 kubernetes/ 目录下提供了完整的 Job + RBAC 配置,支持在 K8s 集群中定时运行安全扫描,结果写入共享存储或推送到 S3。
GitHub Action(DevSecOps 集成)
action.yml 提供了官方 GitHub Action,可直接在 CI/CD 流水线中集成安全扫描:
- uses: prowler-cloud/prowler@v4
with:
provider: aws
output-formats: json-ocsf sarif
扫描结果会自动作为 SARIF 上报到 GitHub Security 面板,直接在 PR 中显示安全发现。
从代码结构看,Prowler 的核心架构非常清晰:
prowler/
├── providers/ # 云厂商插件目录(20+ provider)
│ ├── aws/ # AWS: IAM, EC2, S3, RDS...
│ ├── azure/ # Azure: Entra, Storage, Compute...
│ ├── gcp/ # GCP: IAM, Compute Engine...
│ ├── kubernetes/ # K8s RBAC, Pod Security...
│ ├── github/ # GitHub: Repos, Actions, Secrets...
│ └── ... # 十余种其他 provider
├── lib/
│ ├── check/ # 检查引擎基类和注册机制
│ ├── outputs/ # 输出格式(JSON/CSV/HTML/SARIF)
│ ├── cli/ # CLI 参数解析
│ └── mutelist/ # 白名单机制
└── compliance/ # 合规框架定义(JSON)
每个 provider 目录下都有 services/ 子目录,按云服务类型组织检查代码。这种"Provider -> Service -> Check"的三层插件体系,使得添加新的云厂商支持时,无需修改核心引擎代码。
代码质量方面,项目使用 pytest + pytest-cov 进行单元和集成测试,CI/CD 流水线集成 bandit(安全扫描)、vulture(死代码检测)、flake8(代码风格)和 pre-commit hooks,确保代码库长期保持健康状态。
误报率问题:300+ 检查规则中,部分通用规则在特定业务场景下可能产生误报(如 S3 公开访问的判断逻辑)。Prowler 提供了白名单(mutelist)机制来缓解这个问题,但配置门槛对新手不够友好。
扫描性能:大规模多账户扫描时,API 调用频率受限于云厂商的 Rate Limiting,单次全量扫描可能耗时数小时。项目提供了 --filter-regions 参数来按区域并行化,但缺乏原生的分布式扫描协调机制。
商业化 vs 开源的边界:Prowler Cloud(SaaS 版本)与开源版本之间存在功能差距,AI 辅助修复建议、多云统一视图等高级特性需要付费订阅,这对期望"一站式免费方案"的企业用户来说是一个权衡考量。
Python-only 局限:CLI 核心完全依赖 Python,虽然提供了 REST API 和 MCP Server,但直接调用的门槛对非 Python 开发者不够友好。PowerShell 的集成也仅限于 Windows 环境下的辅助使用。
Prowler 的增长曲线折射了整个云安全行业的演进方向。根据其 GitHub 页面数据,项目 star 从 2022 年的 5,000 增长到 2026 年的 13,800+,年复合增长率超过 25%。这一增速远超同期云安全工具的平均水平。
更深层的意义在于:Prowler 代表了 DevSecOps 运动中"安全左移"的具体实践。它不追求替代商业 CSPM 工具,而是以开源透明、社区共建的方式,让中小型组织也能拥有与企业级安全扫描平台相当的能力。随着 MCP Server 的推出,Prowler 正在将 AI Agent 引入安全运维工作流——未来,Claude 或 GPT 可以直接调用 Prowler 来回答"我们 AWS 账户中有哪些合规风险?"这类问题,而无需人工操作控制台。

图2:Prowler 多云安全扫描架构图

图3:扫描结果可视化(Severity 分布)

图4:合规框架对齐状态仪表盘