All Projects → tensult → Cloud Reports

tensult / Cloud Reports

Licence: gpl-3.0
Scans your AWS cloud resources and generates reports. Check out free hosted version:

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to Cloud Reports

Pulumi
Pulumi - Developer-First Infrastructure as Code. Your Cloud, Your Language, Your Way 🚀
Stars: ✭ 10,887 (+4169.41%)
Mutual labels:  aws, cloud, cloud-computing
Cloud Custodian
Rules engine for cloud security, cost optimization, and governance, DSL in yaml for policies to query, filter, and take actions on resources
Stars: ✭ 3,926 (+1439.61%)
Mutual labels:  aws, cloud, cloud-computing
Playwright Aws Lambda
Support for running Microsoft's Playwright on AWS Lambda and Google Cloud Functions
Stars: ✭ 107 (-58.04%)
Mutual labels:  aws, cloud, puppeteer
Howtheyaws
A curated collection of publicly available resources on how technology and tech-savvy organizations around the world use Amazon Web Services (AWS)
Stars: ✭ 389 (+52.55%)
Mutual labels:  aws, cloud, cloud-computing
Tensorflow Lambda Layer
Lets you import Tensorflow + Keras from an AWS lambda
Stars: ✭ 79 (-69.02%)
Mutual labels:  aws, cloud, cloud-computing
Awstaghelper
AWS bulk tagging tool
Stars: ✭ 98 (-61.57%)
Mutual labels:  aws, cloud, cloud-computing
Pulumi Aws
An Amazon Web Services (AWS) Pulumi resource package, providing multi-language access to AWS
Stars: ✭ 169 (-33.73%)
Mutual labels:  aws, cloud, cloud-computing
Chrome Aws Lambda
Chromium Binary for AWS Lambda and Google Cloud Functions
Stars: ✭ 2,502 (+881.18%)
Mutual labels:  aws, puppeteer
Cloudskew
Create free cloud architecture diagrams
Stars: ✭ 183 (-28.24%)
Mutual labels:  aws, cloud-computing
Opencspm
Open Cloud Security Posture Management Engine
Stars: ✭ 191 (-25.1%)
Mutual labels:  aws, cloud
Checkov
Prevent cloud misconfigurations during build-time for Terraform, Cloudformation, Kubernetes, Serverless framework and other infrastructure-as-code-languages with Checkov by Bridgecrew.
Stars: ✭ 3,572 (+1300.78%)
Mutual labels:  aws, scans
Aws Serverless Data Lake Framework
Enterprise-grade, production-hardened, serverless data lake on AWS
Stars: ✭ 179 (-29.8%)
Mutual labels:  aws, best-practices
Ssm Cache Python
AWS System Manager Parameter Store caching client for Python
Stars: ✭ 177 (-30.59%)
Mutual labels:  aws, cloud-computing
Aws Lambda Fastify
Insipired by aws-serverless-express to work with Fastify with inject functionality.
Stars: ✭ 190 (-25.49%)
Mutual labels:  aws, cloud
Externalsecret Operator
An operator to fetch secrets from cloud services and inject them in Kubernetes
Stars: ✭ 177 (-30.59%)
Mutual labels:  aws, cloud
Firecamp
Serverless Platform for the stateful services
Stars: ✭ 194 (-23.92%)
Mutual labels:  aws, cloud
Smogcloud
Find cloud assets that no one wants exposed 🔎 ☁️
Stars: ✭ 168 (-34.12%)
Mutual labels:  aws, cloud
Aws Auto Remediate
Open source application to instantly remediate common security issues through the use of AWS Config
Stars: ✭ 191 (-25.1%)
Mutual labels:  aws, cloud
Cluster Lifecycle Manager
Cluster Lifecycle Manager (CLM) to provision and update multiple Kubernetes clusters
Stars: ✭ 200 (-21.57%)
Mutual labels:  aws, cloud
Aws Ssh Config
Generate SSH config files from AWS EC2 inventory
Stars: ✭ 229 (-10.2%)
Mutual labels:  aws, cloud

Board Status Donate

Cloud Reports

Collects info about various cloud resources and analyzes them against best practices and give a JSON, CSV, HTML, or PDF reports.

Modules

Collectors

These collect the information about various cloud resources from the cloud provider. This information later used by Analyzers to analyze.

Analyzers

Analyzers are the codified best practices for the cloud and these analyzes each best practice against the collected information and generates report which then consumed by Reporters to generate reports in a desired format.

Reporters

These are for generating reports in various formats and currently supported formats are JSON, HTML and PDF.

AWS (Amazon Web Services)

We are implementing checks based on AWS Well Architected best practices.

Install NodeJS

This package is based on NodeJS framework so you can it install from here.

Installing cloud-reports from source

Download

git clone https://github.com/tensult/cloud-reports.git

To get updates

If you have already cloned this repository before then for getting new updates, change directory to the cloud-reports directory and then do git pull.

git pull

Installing and Building

Make sure you are in the cloud-reports directory.

To convert typescript to javascript

npm run build 

Scan

This collects and analyzes information about your AWS cloud and stores as a report file with name scan_report.pdf.

  • To run for all modules
npm run scan -- --profile Your-AWS-profile
  • To run on an EC2 instance
    • It is recommended not to keep the hard coded credentials on the instance so make sure to configure IAM EC2 instance profile role with Read access to AWS account.
    • Kindly make sure the machine has minimum 2 GB RAM available and the IAM role has atleast ReadOnly access to the AWS account.
    • Once the above conditions are met, CloudReports can run on the instance using instance profile role so no need to pass the profile parameter.
npm run scan -- -m s3,acm
  • To run for specific module
npm run scan -- --profile Your-AWS-profile -m s3,acm
  • To run for single module
npm run scan -- --profile Your-AWS-profile  -m s3
  • To run for specific regions
npm run scan -- --profile Your-AWS-profile -m s3,acm -r ap-south-1,ap-southeast-1
  • We can generate report in following formats:
  • To generate HTML report file
npm run scan -- --profile Your-AWS-profile  -f html
  • To generate PDF report file
npm run scan -- --profile Your-AWS-profile  -f pdf
npm run scan -- --profile Your-AWS-profile  -f pdf -i # This will only report issues
  • To generate CSV report file
npm run scan -- --profile Your-AWS-profile  -f csv
npm run scan -- --profile Your-AWS-profile  -f csv -i # This will only report issues
  • To generate JSON report file
npm run scan -- --profile Your-AWS-profile  -f json
  • To generate report with custom name
npm run scan -- --profile Your-AWS-profile  -f json -o my-dev-account

Sample reports

Debugging

You can run this tool in debug mode to generate intermediate reports: collector_report.json and analyzer_report.json

npm run scan -- --profile Your-AWS-profile  -f pdf -d

Reusing Collector report

When we are working on analyzers, we will be testing them multiple times and every time collecting data will cause delays, to avoid such delays you can use the following command to reuse already collected collector report.

npm run scan -- --profile Your-AWS-profile  -f pdf -d -u

Install as npm module to an existing package

Install cloud-reports npm module

npm install -S cloud-reports

Usage

Make sure you have initialized AWS.config, otherwise this will use default AWS profile.

    const cloudReporter = require('cloud-reports');
    // To collect for all modules
    const collectionPromise = cloudReporter.collect()
    // To collect for specific modules
    // const collectedJson = cloudReporter.collect(['s3', 'iam']);
    // const collectedJson = cloudReporter.collect('vpc');
    const analysisPromise = collectionPromise.then((collectedJson) => cloudReporter.analyze(collectedJson));
    analysisPromise.then((analysisJson) => console.log(JSON.stringify(analysisJson, null, 2)));

Multiple credentials support

You may want to run the report for multiple accounts with different set of credentials at once, then in that case you can pass different credentials to collect method.

    const cloudReporter = require('cloud-reports');
    const account1CollectionPromise = cloudReporter.collect(all, credentials1);
    const account2CollectionPromise = cloudReporter.collect(all, credentials2);

    const analysisPromise = Promise.all([account1CollectionPromise, account2CollectionPromise])
                                   .then((collectedJsons) => {
                                       return collectedJsons.map((collectedJson) => {
                                           return cloudReporter.analyze(collectedJson);
                                       });
                                    });
    analysisPromise.then((analysisJsons) => console.log(JSON.stringify(analysisJsons, null, 2)));

Update service regions[Broken as AWS changed the documentation UI]

We have written a script which updates the AWS regions data

node src/scripts/updateAwsServiceRegionsData.js

Contribute

Currently this application only supports AWS, but can be extendable to other cloud providers. Contributions are most welcome.

Contact us

This product is supported and actively developed by Tensult. You can contact us at [email protected]. Also, we have a SaaS version also for this and currently it is free so please try it.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].