AWS Inventory
AWS Inventory is a command line tool written in Go to fetch data from AWS and use it to generate a FedRAMP compliant inventory of your assets.
FedRAMP Compliance
AWS Inventory aims to output a CSV in accordance to the FedRAMP inventory template found here.
Usage
To use awsinventory, simply download the latest release for your system, make the binary executable, then call it, passing any configuration flags. It uses the AWS SDK for Go to create a session based on the default credential provider chain, including ~/.aws/credentials
and ~/.aws/config
.
# Example for Linux 64-bit
wget -O awsinventory https://github.com/manywho/awsinventory/releases/download/$VERSION/awsinventory-$VERSION-linux-amd64
chmod 700 awsinventory
# Build an inventory of services in the Europe (London) AWS region
./awsinventory --regions eu-west-2
Flags
Usage of ./awsinventory:
-l, --log-level string set the level of log output (default "warning")
-o, --output-file string path to the output file (default "inventory.csv")
--print-regions prints the available AWS regions
-r, --regions strings regions to gather data from
-s, --services strings services to gather data from (default [cloudfront,codecommit,dynamodb,ebs,ec2,ecr,ecs,elasticache,elb,elbv2,es,iam,kms,lambda,rds,s3,sqs])
-v, --version prints the version information
Development
Building
The provided Makefile
has a build target to handle building the binary.
# Build the binary in the current directory
make build
Testing
The Makefile
has 2 targets for local testing: test
and test-full
.
# Run tests
# This is meant for rapid development
make test
# Run tests with coverage and race detection
# This target should be run before committing
make test-full