Giter VIP home page Giter VIP logo

amazon-neptune-aws-config-visualization's Introduction

Visualize your AWS Infrastructure with Amazon Neptune and AWS Config

This repository contains the resources referred in the blog post Visualize your AWS Infrastructure with Amazon Neptune and AWS Config. Follow the steps mentioned in the blog to deploy the infrastructure to visualize the AWS resources and their relationships using Amazon Neptune and AWS Config.

Amazon Neptune is a fast, reliable, fully managed graph database service available from AWS. With Amazon Neptune you can use open source and popular graph query languages such as Apache TinkerPop Gremlin for property graph databases or SPARQL for W3C RDF model graph databases.

AWS Config is a service that enables you to assess, audit, and evaluate the configurations of your AWS resources. Config continuously monitors and records your AWS resource configurations and allows you to automate the evaluation of recorded configurations against desired configurations.

Architecture

image

The workflow includes the following steps:

  1. Enable AWS Config in your AWS account and set up an Amazon Simple Storage Service (Amazon S3) bucket where all the config logs are stored.
  2. Amazon S3 Batch Operations uses AWS Lambda on an existing S3 bucket to populate the Neptune graph with the existing AWS Config inventory and build out the relationship map. AWS Lambda function is also triggered when a new AWS Config file is delivered to an S3 bucket and updates the Neptune database with all the changes.
  3. User authenticates with Amazon Cognito and makes a call to an Amazon API Gateway endpoint
  4. The static website calls an AWS Lambda function which is accessed through the proxy and exposed to the internet using Amazon API Gateway.
  5. AWS Lambda function is used to query the graph in Amazon Neptune and passes the data back to the app to render the visualization.

Security

See CONTRIBUTING for more information.

License

This library is licensed under the MIT-0 License. See the LICENSE file.

amazon-neptune-aws-config-visualization's People

Contributors

amazon-auto avatar rohanraizada1 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

amazon-neptune-aws-config-visualization's Issues

Module initialization error

During execution on Lambda function "configparser_lambda" I received error below. How to fix?

Test Event Name
teste

Response
{
"errorMessage": "module initialization error"
}

Function Logs
START RequestId: 82b1fe25-4b8c-4369-8e2c-60d13805935f Version: $LATEST
module initialization error: Please install AIOHTTP or pass custom transport factory

END RequestId: 82b1fe25-4b8c-4369-8e2c-60d13805935f
REPORT RequestId: 82b1fe25-4b8c-4369-8e2c-60d13805935f Duration: 395.90 ms Billed Duration: 396 ms Memory Size: 256 MB Max Memory Used: 69 MB Init Duration: 676.56 ms
Unknown application error occurred

Request ID
82b1fe25-4b8c-4369-8e2c-60d13805935f

Missing PROXY_API_URL in visualize-graph.html

Reading through your blog:
https://aws.amazon.com/blogs/database/visualize-your-aws-infrastructure-with-amazon-neptune-and-aws-config/

In the section entitled "Upload the HTML file to Amazon S3", the steps outlined mention swapping the value PROXY_API_URL with the user's actual URL, and the example in the blog is this value: "https://7brms4lx43.execute-api.us-east-2.amazonaws.com/test"

However, in this visualize-graph.html, there is no such keyword to replace it with the actual URL. The blog references this GH repository. I've been unsuccessful in trying to figure out how to get past this issue.

Several questions on capabilities of the tool

Hello @rohanraizada1

I was experimenting with the tool and found several things I wanted to get confirmation on:

  1. I found that the tool covers only certain type of resources - major ones like ec2 instances, sgs, volumes, buckets
    But when it comes to some other resource types - it doesn't detect the connection between them or doesn't recognize them as resources at all.
    TGW, tgw attachments, cfn stacks, network firewall, ecs clusters and services, ASGs, launch templates, sns topic, sqs queues etc.
    Question is -
    a) any plans to add support for those?
    b) is the reason that there is currently no support - specifics of how configuration items look like for those? (lacking attachment and connection details maybe) or modification is required in one of the lambda functions within this project?
    c) is there a full list of supported resources by the tool?

  2. In the interface there is a possibility to filter by smth that is called Label.
    What exactly is meant by that? Is that a tag?

Would really appreciate an answer

Thank you

Edge adds in configparser Lambda fail with Gremlin versions >= 3.5.0

Due to strictness changes in TinkerPop version 3.5.0, non-anonymous child traversals are not allowed anymore, this causes your edge adding to fail:

TinkerPop v3.5.0 release notes

this line 55:
result = g.V(str(edge_from)).addE(str(edge_label)).to(g.V(str(edge_to))).property(T.id, str(edge_id)).next()

should be updated to specify the anonymous version:
result = g.V(str(edge_from)).addE(str(edge_label)).to(__.V(str(edge_to))).property(T.id, str(edge_id)).next()

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.