Extrai ativos de infraestrutura e suas relações de mais de 30 plataformas de nuvem, identidade e SaaS para um grafo Neo4j para consultas de segurança e análise baseada em regras.
Cartography é uma ferramenta Python que extrai ativos de infraestrutura e seus relacionamentos para um banco de dados de grafos Neo4j.
O que ele conecta: AWS, GCP, Azure, Kubernetes, GitHub, Okta, Entra ID, CrowdStrike e mais de 30 plataformas.
Perguntas que ele responde:

pip install cartography
Instale cartography[neo4j-rust] em vez disso para usar o codec Bolt em Rust do Neo4j, que reduz o tempo de sincronização em cerca de 20-30%. Consulte Driver Neo4j mais rápido.
docker run -d --publish=7474:7474 --publish=7687:7687 -v data:/data --env=NEO4J_AUTH=none neo4j:5-community
Confirme que http://localhost:7474 está no ar.
Certifique-se de que suas credenciais AWS e região padrão estejam configuradas (por exemplo, via AWS_PROFILE, AWS_DEFAULT_REGION ou ~/.aws/config). Consulte a documentação de credenciais da AWS para referência.
Execute o Cartography:
cartography --neo4j-uri bolt://localhost:7687 --selected-modules aws
Consulte o guia completo de instalação para outras plataformas.
Abra http://localhost:7474 e tente:
// 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
Consulte o tutorial de consultas e o esquema de dados para mais casos de uso.
Depois que o Cartography popular o grafo Neo4j acessível, liste, inspecione e execute regras de segurança. Este guia rápido usa o contêiner Neo4j sem autenticação iniciado acima, portanto nenhuma senha é necessária:
cartography-rules list
cartography-rules list object_storage_public
cartography-rules run object_storage_public
Para Neo4j autenticado, defina NEO4J_PASSWORD ou use uma das outras opções seguras
de senha na documentação de regras.