
Cartography 是一个 Python 工具,用于将基础设施资产及其关系拉取到 Neo4j 图数据库中。
它连接的内容: AWS、GCP、Azure、Kubernetes、GitHub、Okta、Entra ID、CrowdStrike,以及 30+ 其他平台。
它回答的问题:
- 哪些身份对哪些数据存储具有访问权限?跨多个租户或提供商时又如何?
- 我是否受到任何关键漏洞或受损软件包的影响?
- 进出我环境的网络路径是什么?
- 哪些计算实例暴露在互联网上?
- 哪些 AI 代理正在生产环境中运行,它们拥有什么权限?

快速开始
安装 Cartography
pip install cartography
启动 Neo4j 数据库
docker run -d --publish=7474:7474 --publish=7687:7687 -v data:/data --env=NEO4J_AUTH=none neo4j:5-community
确认 http://localhost:7474 已启动。
同步您的第一个数据源(AWS 示例)
确保已配置您的 AWS 凭据和默认区域(例如通过 AWS_PROFILE、AWS_DEFAULT_REGION 或 ~/.aws/config)。请参阅 AWS 凭据文档 作为参考。
运行 Cartography:
cartography --neo4j-uri bolt://localhost:7687 --selected-modules aws
请参阅 完整安装指南 以了解其他平台。
查询图
打开 http://localhost:7474 并尝试:
// Find unencrypted RDS instances by account
MATCH (a:AWSAccount)-[:RESOURCE]->(rds:AWSRDSInstance{storage_encrypted:false})
RETURN a.name, rds.id
// Find EC2 instances exposed to the internet
MATCH (instance:AWSEC2Instance{exposed_internet: true})
RETURN instance.instanceid, instance.publicdnsname
运行安全规则
一旦 Cartography 已填充可访问的 Neo4j 图,即可列出、检查并运行 安全规则。本快速入门使用上述启动的无认证 Neo4j 容器, 因此无需密码:
cartography-rules list
cartography-rules list object_storage_public
cartography-rules run object_storage_public
对于经过身份验证的 Neo4j,请设置 NEO4J_PASSWORD 或使用 规则文档 中的其他安全密码选项。
支持的平台
点击展开 30 多个支持平台的完整列表
-
Airbyte - 组织、工作区、用户、源、目标、连接、标签、流
-
Amazon Web Services - ACM、API Gateway、Bedrock、CloudWatch、CodeBuild、Config、Cognito、EC2、ECS、ECR(包括多架构镜像、镜像层和证明)、EFS、Elasticsearch、Elastic Kubernetes Service (EKS)、DynamoDB、Glue、GuardDuty、IAM、Inspector、KMS、Lambda、RDS、Redshift、Route53、S3、SageMaker、Secrets Manager(Secret Versions)、Security Hub、SNS、SQS、SSM、STS、Tags
-
AIBOM - 与 ECR 镜像关联的 AI 组件检测
-
Anthropic - 组织、ApiKey、用户、工作区
-
BigFix - 计算机
-
Cloudflare - 账户、角色、成员、区域、DNSRecord
-
Crowdstrike Falcon - 主机、Spotlight 漏洞、CVEs
-
Duo - 用户、组、端点
-
GitHub - 仓库、分支、用户、团队、依赖关系图清单、依赖项
-
Google Cloud Platform - Artifact Registry、Bigtable、Cloud Functions、Cloud Resource Manager、Cloud Run、Cloud SQL、Compute、DNS、IAM、KMS、Secret Manager、Storage、Google Kubernetes Engine、Vertex AI
-
Google Workspace - 用户、组、设备、OAuth 应用
-
Kandji - 设备
-
Keycloak - Realms、用户、组、角色、Scopes、Clients、IdentityProviders、Authentication Flows、Authentication Executions、Organizations、Organization Domains
-
Kubernetes - 集群、命名空间、服务、Pod、容器、ServiceAccount、Role、RoleBinding、ClusterRole、ClusterRoleBinding、OIDCProvider
-
Lastpass - 用户
-
Microsoft Azure - App Service、Container Instance、CosmosDB、Data Factory、Event Grid、防火墙、防火墙策略、Functions、Key Vault、Azure Kubernetes Service (AKS)、负载均衡器、Logic Apps、管理组、资源组、SQL、存储、虚拟机、虚拟网络
-
Microsoft Entra ID - 用户、组、应用程序、OU、应用角色、与 AWS Identity Center 的联合、Intune 管理设备、Intune 检测应用、Intune 合规策略
-
CVE Metadata - 来自 NVD 和 FIRST.org 的 CVE 增强数据,包含 CVSS、EPSS 分数以及 CISA KEV 数据
-
NIST CVE - 来自 NIST 数据库的通用漏洞和暴露(CVE)数据(已弃用 - 请改用 CVE Metadata)
-
Netlify - 账户、用户、邀请、站点、部署、Functions、开发服务器、Agent Runners、数据库分支、数据库快照、环境变量、构建钩子、通知钩子、部署密钥、代码片段、服务实例、DNS 区域、DNS 记录、证书、表单
-
Okta - 用户、组、组织、角色、应用程序、因素、可信来源、回复 URI、与 AWS 角色的联合、与 AWS Identity Center 的联合
-
OpenAI - 组织、AdminApiKey、用户、项目、ServiceAccount、ApiKey
-
PagerDuty - 用户、团队、服务、排班表、升级策略、集成、供应商
-
Railway - 工作区、项目、环境、服务、服务实例、部署、域名、TCP 代理、卷、变量、令牌
-
Scaleway - 项目、IAM、本地存储、实例
-
SentinelOne - 账户、代理、应用程序、应用程序版本、CVE
-
Slack - 团队、用户、用户组、频道
-
SnipeIT - 用户、资产
-
Socket.dev - 组织、仓库、依赖项、安全警报(CVE、恶意软件、供应链风险)、修复
-
Spacelift - 账户、空间、用户、堆栈、工作池、工作节点、运行、Git 提交
-
SubImage - 租户、团队成员、API 密钥、Neo4j 用户、模块、框架
-
Tailscale - 尾网、用户、设备、组、标签、姿态集成、设备姿态、设备姿态条件、设备姿态合规关系
-
Trivy Scanner - AWS ECR 镜像
社区
- 加入我们的 Slack:CNCF Slack 的
#cartography频道。 - 每月社区会议 — 会议纪要 · 过往录像
贡献
感谢您考虑为 Cartography 做出贡献!
所有贡献者和参与者必须遵守 CNCF 行为准则。
提交 GitHub issue 以报告 bug 或请求新功能。较大的讨论发生在 GitHub Discussions。
开始使用我们的开发者文档。
谁在使用 Cartography?
- Lyft
- Thought Machine
- MessageBird
- Cloudanix
- Corelight
- SubImage
- Superhuman
- {Your company here} :-)
如果您的组织使用 Cartography,请提交一个 PR 并更新此列表。也请在 Slack 上打个招呼!
许可证
本项目采用 Apache 2.0 License 授权。
Cartography 是一个 Cloud Native Computing Foundation 沙箱项目。