Giter Site home page Giter Site logo

akhileshthipparthi / bovine Goto Github PK

View Code? Open in Web Editor NEW

This project forked from chick-fil-a/bovine

0.0 2.0 0.0 1.56 MB

Building Operational Visibility Into (n) Environments

License: Apache License 2.0

Python 31.19% HTML 19.75% JavaScript 47.62% CSS 1.24% Shell 0.20%

bovine's Introduction

Alt text

BOVI(n)E - Building Operational Visibility Into (n) Environments

As Enterprises adopt AWS public cloud, one common strategy to use is the multi-account strategy. This strategy can help security teams isolate workloads and provide a strong security boundary around sensitive applications. The biggest problem with the multi-account strategy is visibility and governance. BOVI(n)E helps provide a 10,000 foot view of all your AWS accounts and audit security standards around them.

BOVI(n)E is a fully serverless single page application leveraging AngularJS, AWS API Gateway, AWS Lambda, and AWS DynamoDB.

User Guide

Quickstart Guide

Runtime

The application backend is run on AWS Lambda, and front end is an Angular app. Authentication is handled through AWS Cognito, and the REST API is exposed through AWS APIGateway.

Deployment

Prerequisites

Prior to calling the deployment scripts, the following items must already be deployed on AWS:

  • A role in security account that has a trust relation with an assumable role in the target accounts. This role needs readonly rights in the target account.
  • Cognito user pool setup
  • Custom domain setup in Amazon Certificate Manager, API Gateway, and Route 53 (or other DNS provider)
  • DynamoDB table called AWS-Accounts-Table with accountNum as the primary key

You must also have proper serverless config files built:

  • ex: config.prod.json

Deployment at the top level

Deployment of the API backend application is done with a simple serverless command.

  • To do the initial deploy of the application
$ serverless deploy --profile <aws credentials profile> --stage <deployment stage (dev/prod)>
  • After deploying API Gateway, you need to add binary content support:
    • In the AWS Console under API Gateway, click the newly deployed BOVI(n)E API endpoint -> settings. Under "Binary Media Types" add the following content-types: image/png, image/x-icon

Angular application

Deployment of the static content is an AWS S3 sync of the frontend directory. A simple bash script can be found in the tools directory. This will sync to the appropriate S3 bucket for the stage.

$ sh deploy-content.sh <aws credential profile> <stage>

What's next?

  • Better documentation
  • Unit tests -- we are working on them but welcome contributions
  • Frontend framework update (Angular 4? React? Please share if you have thoughts)
  • Compliance rule engine

Additional Info

You can find additional information on Chick-fil-A's journey around this problem here: https://www.youtube.com/watch?v=_0BCJLIxowQ

We welcome ideas around how to improve this project.

bovine's People

Contributors

robertdavis1 avatar brianchambers24 avatar patrickbrandt avatar mmcenti avatar

Watchers

 avatar  avatar

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.