Skip to content

Latest commit

 

History

History
155 lines (104 loc) · 3.8 KB

README.md

File metadata and controls

155 lines (104 loc) · 3.8 KB

Parade

release badge test badge Coverage Status

Parade is a simple CLI tool for AWS SSM parameter store. Easy to read and write key values in your parameter store.

Install

Homebrew

brew install chroju/tap/parade

Download binary

Download the latest binary from here and place it in the some directory specified by $PATH.

go get

If you have set up Go environment, you can also install parade with go get command.

go get github.com/chroju/parade

Authentication

Parade requires your AWS IAM user authentication. The same authentication method as AWS CLI is available. Tools like aws-vault can be used as well.

# with command line options
$ parade --profile YOUR_PROFILE

# with aws-vault
$ aws-vault exec YOUR_PROFILE -- parade

Parade uses the following AWS API. If you are dealing with SecureString, you will also need permission to access the kms key.

  • ssm:DeleteParameter
  • ssm:DescribeParameters
  • ssm:GetParameter
  • ssm:PutParameter

Usage

There are simple 4 sub commands. It is similar to redis-cli.

keys

Search keys and display their types together.

keys command supports exact match, forward match, and partial match. It usually searches for exact matches.

$ parade /service1/dev/key1
/service1/dev/key1  Type: String

Use * as a postfix, the search will be done as a forward match. Furthermore, also use * as a prefix, it becomes a partial match. You can't use * as a prefix only.

$ parade keys /service1*
/service1/dev/key1   Type: String
/service1/dev/key2   Type: String
/service1/prod/key3  Type: SecureString

$ parade keys *prod*
/service1/prod/key3  Type: SecureString

If no argument is given, all keys will be retrieved.

$ parade keys
/service1/dev/key1   Type: String
/service1/dev/key2   Type: String
/service1/prod/key3  Type: SecureString
...

get

Display the value of the specified key.

$ parade get /service1/dev/key1
value1

You can also do a partial search using * as well as the keys command.

$ parade get /service1*
/service1/dev/key1   value1
/service1/dev/key2   value2
/service1/prod/key3  value3

The --decrypt or -d option is required to decrypt SecureString.

$ parade get /service1/dev/password
(encrypted)

$ parade get /service1/dev/password -d
1234password

set

Set new key and value.

$ parade set /service1/dev/key4 value4

If the specified key already exists, you can choose to overwrite it. Use --force flag if you want to force overwriting.

$ parade set /service1/dev/key4 value5
WARN: `/service1/dev/key4` already exists.
Overwrite `/service1/dev/key4` (value: value4) ? (Y/n)

$ parade set /service1/dev/key4 value5 --force

The value is stored as String type by default. It also supports SecureString with the --encrypt flag. If you don't specify a key ID with --kms-key-id flag, uses the default key associated with your AWS account.

StringList type is not supported.

del

Delete key and value. Use --force flag if you want to skip the confirmation prompt.

$ parade del /service1/dev/key4
Delete `/service1/dev/key4` (value: value5) ? (Y/n)

$ parade del /service1/dev/key4 --force

LICENSE

MIT