Skip to main content
Glama

CloudLedger

多账户AWS安全扫描与基础设施账本,附带MCP服务器用于查询扫描历史。

状态:预发布。 CloudLedger正在积极开发中,尚未发布到PyPI。以下命令描述的是预期的0.1.0版本;在此之前可能存在功能缺失。

概述

CloudLedger在多个AWS账户中执行安全评估并收集详细的基础设施信息,构建每次扫描的历史账本。它集成了Prowler,用于针对CIS基准、PCI-DSS、GDPR、HIPAA等框架进行自动化安全检查,并通过模型上下文协议 (MCP) stdio服务器暴露收集到的数据,从而可以从Claude Desktop、Claude Code或任何其他MCP客户端以自然语言进行查询。

Related MCP server: quicksight-mcp

功能特性

扫描器

  • 安全评估:集成Prowler进行基于框架的自动化检查,外加内置的暴露面、身份和网络评估

  • 服务清单:识别所有区域中正在使用的所有AWS服务

  • 网络架构:VPC配置,包括子网、路由表、互联网网关、NAT网关

  • 计算、存储和身份:EC2、负载均衡器、自动扩缩组、带有公开暴露分析的S3存储桶、IAM用户、角色和策略

  • DNS:Route53托管区域和记录集

  • 扫描标记:在扫描时或事后为扫描打标签,并通过CLI或MCP工具按标签搜索账本

  • AWS组织感知:交互式扫描捕获组织成员身份和管理(控制塔)账户,如果账本中没有管理账户的记录,则提供扫描管理账户的选项,并将成员账户链接到其管理账户

  • 历史账本:每次扫描都带有时间戳存储,用于比较和漂移分析

存储

  • SQLite 开箱即用(默认位置按平台管理),或

  • PostgreSQL、MySQL或MSSQL通过可选扩展支持,使用cloudledger setup一次性配置;连接凭据安全地存储在操作系统密钥环中

MCP服务器

  • 安全查询:可公开访问的S3存储桶、具有公共IP的EC2实例、过于宽松的安全组

  • 网络查询:定位包含特定IP地址或CIDR范围的账户,映射VPC架构

  • 配置查询:比较不同扫描日期之间的配置,跟踪漂移

  • 标签和组织查询:按标签搜索扫描,列出标签,解析组织关系

要求

  • uv(管理Python和所有依赖项)

  • Python 3.12(由uv自动安装;不支持3.13+,因为Prowler固定了numpy 2.0.2)

  • AWS凭据(建议使用临时会话令牌)

  • 用于访问AWS API的互联网连接

安装

从PyPI安装(一旦发布):

# Run ad hoc without installing
uvx cloudledger --help

# Or install as a tool
uv tool install cloudledger

# With a server database backend
uv tool install "cloudledger[postgres]"   # or [mysql], [mssql], [all-db]

从源码安装:

git clone https://github.com/Cognisn/cloudledger.git
cd cloudledger
uv sync

快速开始

# One-off configuration: choose SQLite or a server backend
cloudledger setup

# Interactive scan of a single account
cloudledger scan --tag client-acme --tag q3-review

# Batch scanning from CSV
cloudledger create-example-csv --output accounts.csv
cloudledger scan --csv accounts.csv

# Work with tags
cloudledger tag list
cloudledger tag find client-acme
cloudledger tag add <scan-id> follow-up

# Start the MCP server (stdio)
cloudledger-mcp

从源码检出运行时,在命令前加上uv run。

通过MCP查询

当MCP服务器连接到MCP客户端时,账本可以回答自然语言问题,例如:

  • "显示所有可公开访问的S3存储桶"

  • "查找us-east-1中具有公共IP地址的EC2实例"

  • "列出所有标记为client-acme的扫描"

  • "哪些账户属于由账户123456789012管理的组织?"

  • "比较此账户最近两次扫描之间的资源数量"

安全注意事项

  • 设计用于临时凭据;不存储长期凭据

  • 只读AWS API访问

  • 数据库密码保存在操作系统密钥环中,绝不保存在明文配置中

  • 包含凭据的CSV文件应以受限权限存储,使用后删除,绝不提交到版本控制

此工具仅用于授权的安全评估。在扫描AWS账户之前,请确保您拥有适当的授权。

开发

uv sync
uv run pytest            # SQLite-backed tests
uv run pytest -m db      # opt-in backend integration tests (requires docker compose up)

贡献应在注释和文档中使用澳大利亚英语,为新功能包含单元测试,并保持CHANGELOG.md在Unreleased标题下保持最新。

许可证

MIT许可证。详见LICENSE。

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables natural language analysis of AWS cloud costs, waste audits, and budget insights across multiple profiles and regions.
    MIT
  • A
    license
    B
    quality
    F
    maintenance
    Enables natural language interaction with AWS QuickSight for building, editing, and managing analyses, datasets, and dashboards, including chart creation, SQL updates, and QA verification.
    61
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables natural language queries to be converted into policy-verified SQL, vector search, and knowledge graph plans, with evidence-backed answers and an audit log.
    1
    Apache 2.0