ssm-diff
ssm-diff copied to clipboard
KMS Choice and Documentation
In this PR (built on #19 for simple merging):
- Added a
Secret
YAML tag class that supported custom KMS keys. I later added aSecureString
class (and!SecureString
tag) as a more memorable syntax for adding secrets (all backwards compatible withSecureTag
). - Converted all of the CLI commands to
git
equivalents. The only alias I left was forplan
as I rarely use git in the CLI sostatus
is not as obvious (to me) asclone
,pull
, andpush
. - I updated the README to reflect all of the new changes. I thought it was important to warn people of the risks around paths (as discussed in #15) and strongly recommend measures to protect themselves.
- One of the recommended measures was to keep a local backup of the Parameter Store, but it's not a good idea to leave unencrypted secrets lying around so I added the
SSM_NO_DECRYPT
option.- Restoring encrypted parameters is not trivial, but should be rare enough that the added effort is offset by the ability to (securely) prevent data loss.
This will probably be my last PR for some time (unless I discover a bug or someone needs a behavior tweaked). I dove into this project so we could use it to migrate YAML configs to Parameter Store and continue to maintain those configs on parameter store. At this point, the project does enough of what we need to get back to the migration itself.