Skip to main content
https://user-images.githubusercontent.com/803607/101322139-7111b800-385e-11eb-9277-c6bf3a580987.png

PyPI GitHub Workflow Status (branch) Documentation Status

A Python package which allows you to enumerate and store your AWS Resources in AWS Neptune (or Gremlin for local execution) in order to be able to ask questions like:

  1. What EC2 instances do I have that are in Public Subnets that have roles and are accessible from the internet?

  2. How old are my IAM users access keys?

  3. What lambda functions do I have that are connected to VPCs that have access to the internet via a NAT gateway?

  4. How many untagged VPCs do I have across all regions?

AWS resources represented on a graph

What does it do?

YouTube video demonstrating how to query public ec2 instances with CloudWander and OpenCypher.

What the above YouTube video to see an example of what you can do with CloudWanderer.

Installation

pip install cloudwanderer

Local Quickstart

Spin up a local Gremlin Graph Database server and a Jupyter Notebook.

$ git clone https://github.com/CloudWanderer-io/docker-graph-notebook.git
$ cd docker-graph-notebook
$ docker-compose up

Look in the output for something that looks like:

jupyter-notebook_1  |     Or copy and paste one of these URLs:
jupyter-notebook_1  |         http://localhost:8888/?token=88dc054886e3ea73480de91066937a33c9bc8bd484eb395c

Open the URL in question in a tab in your browser.

Open up Python in your preferred IDE and import and initialise CloudWanderer

>>> import logging
>>> from cloudwanderer import CloudWanderer
>>> from cloudwanderer.storage_connectors import GremlinStorageConnector
>>> storage_connector = GremlinStorageConnector(
...     endpoint_url="ws://localhost:8182"
... )
>>> wanderer = CloudWanderer(storage_connectors=[storage_connector])
>>> logging.basicConfig(level='INFO')

Get all the resources from your AWS account and save them to your local Gremlin graph database.

>>> wanderer.write_resources()

Go to the Jupyter Notebook link you opened earlier and, create a new notebook by hitting ‘new’ on the top right, and type the following into a new cell to get a list of VPCs.

%%gremlin
g.V().hasLabel('aws_ec2_vpc').out().path().by(valueMap(true))

Voila!

Example Query and graph output

You can learn more Gremlin (the language that’s supported by the local setup here) by reading Kevin Lawrence’s amazing book on Gremlin OR you can get stuck in to the much more straightforward OpenCypher language by following the Neptune Quickstart guide.

Metadata

Release files for cloudwanderer 0.29.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cloudwanderer 0.29.2
File Size Uploaded
cloudwanderer-0.29.2.tar.gz 48.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cloudwanderer 0.29.2
File Interpreter ABI Platform
cloudwanderer-0.29.2-py3-none-any.whl Python 3 none any Details

Total release size: 117.1 kB

Release files / cloudwanderer-0.29.2.tar.gz

Download URL cloudwanderer-0.29.2.tar.gz
Size 48.6 kB
Tags Source
SHA-256 checksum
How to use checksums
ec74961d6d2c0fc16fd7986bc152fb016f11c0cf5bcccfbf2ee840cccad56e96
BLAKE2b-256 checksum
How to use checksums
ff48f3c6abcf7ce1d6807a963c511afa24b094bb9dec42e312aa5a3c737600b9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

Release files / cloudwanderer-0.29.2-py3-none-any.whl

Download URL cloudwanderer-0.29.2-py3-none-any.whl
Size 68.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2e8e6882b8892dc30f9dfbb6c485db46230b401cd9de8d1533cdef216d17f9a9
BLAKE2b-256 checksum
How to use checksums
b3c45429c9aeb31071bcf8b020739248eb06ca9831484488c13cbf8924eabbff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

Release history Release notifications | RSS feed

This release

0.29.2 This release

2 release files

0.29.0

2 release files

0.28.0

2 release files

0.27.2

2 release files

0.27.1

2 release files

0.27.0

2 release files

0.26.1

2 release files

0.26.0

2 release files

0.25.2

2 release files

0.25.0

2 release files

0.24.0

2 release files

0.23.0

2 release files

0.22.0

2 release files

0.20.0

2 release files

0.19.5

2 release files

0.19.4

2 release files

0.19.3

2 release files

0.19.2

2 release files

0.19.1

2 release files

0.18.0

2 release files

0.17.0

2 release files

0.16.1

2 release files

0.14.1

2 release files

0.14.0

2 release files

0.12.0

2 release files

0.11.0

2 release files

0.10.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page