用途:Cartography 是 CNCF 沙箱项目(最初由 Lyft 创建),将基础设施资产及其关系整合进 Neo4j 图数据库。它查询云 API 发现资源并映射关系,帮助安全团队识别攻击路径、生成资产报告、发现安全改进点。图模型可揭示 IAM 权限链、网络路径、跨账户信任等隐藏连接。
主要能力:支持 AWS、GCP、Azure 同步;提供节点如 AWSAccount、GCPProject、AzureSubscription、EC2Instance、S3Bucket、AWSUser、AWSRole、AWSPolicy、EC2SecurityGroup、EC2Subnet、AWSVpc、GCPInstance、GCSBucket 等;关系包括 RESOURCE、POLICY、STS_ASSUME_ROLE_ALLOWS、MEMBER_OF_EC2_SECURITY_GROUP、TRUSTS_AWS_PRINCIPAL。可用 Cypher 查询公开 S3 桶、管理员权限 IAM 用户、暴露到互联网的 EC2、跨账户信任、从公网 EC2 到敏感 S3 的攻击路径、未使用 IAM 角色、过度授权的 Lambda 等。
使用方式:需 Python 3.8+、Neo4j 4.x/5.x、云厂商凭证,可选 Docker 部署 Neo4j(至少 4GB 内存)。安装:pip install cartography;验证:cartography --help。运行示例:cartography --neo4j-uri bolt://localhost:7687 --neo4j-user neo4j --neo4j-password-env-var NEO4J_PASSWORD;GCP 可加 --gcp-requested-syncs compute iam storage。可用 crontab 定期同步或用 Docker Compose 部署。
适用场景与限制:适用于安全评估、事件响应、定期审计与安全控制验证。需自行准备 Neo4j 与云凭证,大规模环境对内存要求更高;具体收费与平台支持情况暂未提供。