A Python package which wanders across your AWS account and records resources in multiple databases
Project description
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:
How old are my IAM users access keys?
What lambda functions do I have that are connected to VPCs that have access to the internet via a NAT gateway?
How many untagged VPCs do I have across all regions?
What does it do?
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!
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file cloudwanderer-0.29.2.tar.gz
.
File metadata
- Download URL: cloudwanderer-0.29.2.tar.gz
- Upload date:
- Size: 48.6 kB
- Tags: Source
- Uploaded using 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
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ec74961d6d2c0fc16fd7986bc152fb016f11c0cf5bcccfbf2ee840cccad56e96 |
|
MD5 | fa6a0e228d48102d1bde1bed856c3c77 |
|
BLAKE2b-256 | ff48f3c6abcf7ce1d6807a963c511afa24b094bb9dec42e312aa5a3c737600b9 |
File details
Details for the file cloudwanderer-0.29.2-py3-none-any.whl
.
File metadata
- Download URL: cloudwanderer-0.29.2-py3-none-any.whl
- Upload date:
- Size: 68.5 kB
- Tags: Python 3
- Uploaded using 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
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2e8e6882b8892dc30f9dfbb6c485db46230b401cd9de8d1533cdef216d17f9a9 |
|
MD5 | b88b5212ec86529d3a8f36cde12a7641 |
|
BLAKE2b-256 | b3c45429c9aeb31071bcf8b020739248eb06ca9831484488c13cbf8924eabbff |