Skip to content

Robot-Wranglers/aws-ssm-tool

Repository files navigation

aws-ssm-tool     
SSM tool is a small helper for interacting with Amazon Simple Systems Manager, focusing on secrets storage/retrieval.


Overview

The AWS SSM Parameter-Store is great, but can be awkward to work with via the awscli tool. This project provides the ssm tool as an alternative interface with simple CRUD. It also supports moving or copying trees of multiple parameters, and performing those operations across multiple AWS profiles.

See setup.cfg to find the latest info about required versions of boto. There are other dependencies, including the popular click library for CLI support and rich for pretty output.

See the Usage section for more details.


Installation

See pypi for available releases.

pip install aws-ssm-tool

Usage

After installation, you can invoke this tool as either ssm or python -m ssm.

Usage info follows:

Usage info follows:

$ ssm --help

Usage: ssm [OPTIONS] COMMAND [ARGS]...

  Tool for accessing secrets

Options:
  --help  Show this message and exit.

Commands:
  copy       copy a secret
  delete     delete secret (keeping a local-backup is default)
  get-many   get many secrets from hierarchy/namespace
  list       list prefixes below the given path
  move       move a secret
  move-many  move a whole path of secrets
  put-many   put many secrets
  read       get a secret
  update     put a secret
  cp         ALIAS for `copy`
  get        ALIAS for `read`
  get-path   ALIAS for `get-many`
  ls         ALIAS for `list`
  move-path  ALIAS for `move-many`
  mv         ALIAS for `move`
  mv-many    ALIAS for `move-many`
  mv-path    ALIAS for `move-many`
  put        ALIAS for `update`
  put-path   ALIAS for `put-many`
  rm         ALIAS for `delete`
  set        ALIAS for `update`

See the integration tests for more examples.


Usage from Docker

If you want to build locally, see the Dockerfile in this repo and use the Makefile:

$ make docker-build docker-test

If you don't want to build the container yourself, you can pull it like this:

$ docker pull robotwranglers/aws-ssm-tool
Using default tag: latest
latest: Pulling from robotwranglers/aws-ssm-tool
docker.io/robotwranglers/aws-ssm-tool:latest

See a typical invocation below. The 1st volume is for authenticating with SSM. The 2nd volume shares the working directory with the container so commands using files (like ssm put --file ./path/to/file /path/to/key) can still work.

$ docker run \
  -v ~/.aws:/root/.aws \
  -v `pwd`:/workspace \
  -w /workspace \
  docker.io/robotwranglers/aws-ssm-tool:latest \
    ssm ls /