Skip to main content

searches across all accounts and regions known to chaim for the item(s)

Project description

awsfind

searches across all accounts and regions known to chaim for the instance(s)

You should be able to obtain CrossAccountReadOnly chaim credentials for every account.

The script will obtain chaim rro permissions for each account in turn, deleting them when it has finished with that account, and then, using a thread per region query the AWS API for each specific instance mentioned on the command line.

Once all instances have been found the script stops and displays the results.

Should the script need to visit every account it will take approx. 13 minutes to do so.

install

Clone this repository, and enter the dir

git clone https://github.com/ConnectedHomes/awsfind.git
cd awsfind

If you don't currently use poetry get it with

pip[3] install poetry --user

Optional: If you intend to develop this script install the dependencies

poetry install

Optional: the script can be run from the development environment with

poetry run ifind

Install the script to the users local python installation

poetry build
vers=$(poetry version|sed 's/ /-/')
pip[3] install dist/${vers}*whl --user

You should now have a script ifind in your python user directories

$ which ifind
/home/chris/.local/bin/ifind

$ ifind -h
ifind 0.3.0
 ifind - AWS Instance Finder

Searches across all accounts and regions for instances using chaim credentials

search accounts in alphabetical order
    ifind <instance-id> <instance-id> ... <instance-id>

to search accounts in random order (maybe quicker)
    ifind -r <instance-id> <instance-id> ... <instance-id>


You can now add your .local/bin directory to your PATH if you haven't already.

Usage

You can run directly from this repository with poetry run ifind or install it as above

$ ifind <instance-id> <instance-id> ... <instance-id>

The above command will search through all accounts in alphabetical order, searching all regions for the instance ids.

If you want to search accounts in a random order (which maybe quicker) then add -r to the command

$ ifind -r i-0b7ff13d0219b8b58 i-014c4b3c01153aef8

It displays it's current progress

$ ifind i-0b7ff13d0219b8b58 i-014c4b3c01153aef8 i-09d8cfbb5fc425d26 i-0b42d2ae0db8cf231
ifind 0.3.0
Searching 119 accounts in 16 regions for 4 instances


  7/119 1/4    biqlite-qa-uk

i.e. looking in the 7th of 119 accounts for the last remaining instance id, having found 3 others.

Once it has found all the instances it stops, displaying the results

Account                       Region    Name                          Instance ID
------------------------------------------------------------------------------------------
biqlite-dev-uk                eu-west-1 UNNAMED                       i-0b7ff13d0219b8b58
biqlite-dev-uk                eu-west-1 UNNAMED                       i-014c4b3c01153aef8
biqlite-firmware              eu-west-1 simplicity                    i-09d8cfbb5fc425d26
biqlite-qa-uk                 eu-west-1 UNNAMED                       i-0b42d2ae0db8cf231

search took 59s

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

awsfind-0.4.0.tar.gz (5.1 kB view hashes)

Uploaded Source

Built Distribution

awsfind-0.4.0-py3-none-any.whl (5.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page