Skip to content

dtylman/AWSRetriever

Folders and files

NameName
Last commit message
Last commit date

Latest commit

7642847 · Dec 24, 2020
Dec 24, 2020
Dec 20, 2018
May 27, 2019
May 27, 2019
Feb 7, 2019
May 28, 2019
Feb 11, 2019
Feb 6, 2019
Dec 17, 2018
Jan 2, 2019
Feb 6, 2019
Feb 7, 2019
Dec 24, 2020
May 27, 2019
Jan 9, 2019
Jan 8, 2019

Repository files navigation

AWSRetriever

Lists all resources in a AWS account.

Build Status

Features

  • Supports over 390 APIs from over 70 services, all regions

  • Objects saved in JSON format

  • Define and save profiles for specific service queries

  • Runs a single operation

  • CLI Support

Overview

AWSRetriever scans sets of predefined AWS APIs, saved in "profile" files.

Profiles are json based files, holding a (potentially) very long list of operations to run. AWSRetriever is shipped with a default.profile.js, that holds a generic wide-variety of calls.

The profile is scanned when choosing "Full Scan" from the side-bar menu, or using the command-line parameter -p (combined with -r)

Profiles can be saved & loaded. The default profile loaded is defined in the configuration file.

A typical use-case is to define and test profiles for various AWS resources views and then use the CLI to periodically retrieve the items from AWS.

Command-line interface

To export all items provided in my ec2.profile.js, and save them in object.json, use the following switches:

>AWSRetriever.exe -r -p ec2.profile.js -o objects.json
AWS Retriever
Using profile: 'ec2.profile.js'
Writing to 'objects.json'
Queueing from 'default' profile...1825 operations queued.
Scanning...

To export all items to myobjects.json using the default profile and settings:

>AWSRetriever.exe -r -o myobjects.json
AWS Retriever
Using profile: 'default.profile.js'
Writing to 'myobjects.json'
Queueing from 'default' profile...1825 operations queued.
Scanning...
EC2 DescribeInternetGateways ap-northeast-1: 1 items retrieved
EC2 DescribeInternetGateways ap-south-1: 1 items retrieved
EC2 DescribeInternetGateways ap-northeast-2: 1 items retrieved
EC2 DescribeInternetGateways ca-central-1: 1 items retrieved
.
.
.

The resulting myobjects.json file, holds a JSON array with the following structure:

[
    {
        // the type of the object listed:
        "Type": "InternetGateway",
        // the service it was retrieved from:
        "Service": "EC2",
        // the region:
        "Region": "ap-northeast-2",
        //the object itself, will change according to the object:
        "Source": {
            "Attachments": [
                {
                    "State": {
                        "Value": "available"
                    },
                    "VpcId": "vpc-e2e9f18a"
                }
            ],
            "InternetGatewayId": "igw-0562ad6d",
            "OwnerId": "000000000000",
            "Tags": []
        }
    },
    {
    // more objects...
    }
]

Profile Record

Each profile record holds:

 {
    // AWS service to execute
    "ServiceName": "EC2",
    // Specific API to execute:
    "Name": "DescribeInternetGateways",
    // A list of regions to call:
    "Regions": "ap-northeast-1 ap-northeast-2 ap-south-1 ap-southeast-1 ap-southeast-2 ca-central-1 eu-central-1 eu-north-1 eu-west-1 eu-west-2 eu-west-3 sa-east-1 us-east-1 us-east-2 us-west-1 us-west-2",
    // if false, this API is skipped
    "Enabled": true,
    // if this API supports paging, this value will be the page size for each request.
    "PageSize": 18
}

Download & Run

Download the latest for Windows or Linux.

Windows

  1. Requires .NET
  2. Create a folder AWSRetriever
  3. Unzip to folder.
  4. Run AWSRetriever.exe

Linux / Ubuntu

Make sure mono is installed:

sudo apt-get install mono-runtime
mkdir awsretriver
cd awsretriver
unzip path_to_downloaded_awsretriver.zip 
mono AWSRetriver.exe

Screenshots

Main Screen with some data

main-screen

Profile Editor

profile-editor

Launching a specific API

single-operation

Thanks