Scans your AWS cloud resources and generates reports. Check out free hosted version:
Collects info about various cloud resources and analyzes them against best practices and give a JSON, CSV, HTML, or PDF reports.
These collect the information about various cloud resources from the cloud provider. This information later used by Analyzers to analyze.
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.
These are for generating reports in various formats and currently supported formats are JSON, HTML and PDF.
We are implementing checks based on AWS Well Architected best practices.
This package is based on NodeJS framework so you can it install from here.
git clone https://github.com/tensult/cloud-reports.git
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
Make sure you are in the cloud-reports directory.
To convert typescript to javascript
npm run build
This collects and analyzes information about your AWS cloud and stores as a report file with name scan_report.pdf.
npm run scan -- --profile Your-AWS-profile
npm run scan -- -m s3,acm
npm run scan -- --profile Your-AWS-profile -m s3,acm
npm run scan -- --profile Your-AWS-profile -m s3
npm run scan -- --profile Your-AWS-profile -m s3,acm -r ap-south-1,ap-southeast-1
npm run scan -- --profile Your-AWS-profile -f html
npm run scan -- --profile Your-AWS-profile -f pdf
npm run scan -- --profile Your-AWS-profile -f pdf -i # This will only report issues
npm run scan -- --profile Your-AWS-profile -f csv
npm run scan -- --profile Your-AWS-profile -f csv -i # This will only report issues
npm run scan -- --profile Your-AWS-profile -f json
npm run scan -- --profile Your-AWS-profile -f json -o my-dev-account
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
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
npm install -S cloud-reports
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)));
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)));
We have written a script which updates the AWS regions data
node src/scripts/updateAwsServiceRegionsData.js
Currently this application only supports AWS, but can be extendable to other cloud providers. Contributions are most welcome.
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.