ssm parameter storeを簡単に弄れるツールを作った
About
最近周りでツールリリースラッシュが続いてたので、とりあえず動くようになったのでリリースしました。
ssm-editとは
Go で s3-edit という CLI アプリケーションを作った | tsub's blog
このツールに触発されて作った自分のエディターを使ってssm paremter storeを弄れるツールです。go製です。
作った経緯
現職だとアプリケーションの環境変数だったり、slack botの設定値だったりをparameter storeに入れています。なので、結構な頻度で修正する機会がありライトに弄るためのツールが欲しいなと思ってたので作りました。一括登録ツールはありますが、都度の編集が大変だったのでちょっと弄るときの利用を想定しています。(というか私が使いたかった)
事前設定
インストール
まだ雑にしか用意してないですが、releaseページにバイナリがあるのでそれが楽です。
事前設定
README.mdに書いて無いですが、~/.aws/credentials
の設定値を見ています。source_profileにも対応しています。サンプルの設定を置いておきます。
[default] aws_access_key_id = hogehoge aws_secret_access_key = fugafuga [test] role_arn = arn:aws:iam::123456789012:root source_profile = default
使い方
4つのサブコマンド(実質2つ)が用意されています。
$ ssm-edit help $ ssm-edit version $ ssm-edit list $ ssm-edit edit
グローバルオプションとして--region
と --profile
の指定が可能です(AWS CLIと似たような感じです)。optionを渡さないとそれぞれap-northeast-1
、default
が設定されます。
list
parameter storeの情報を一覧で取得できます。 pagenationがある場合は追随するようになっています。
$ ssm-edit Name: test Type: String Name: test2 Type: SecureString Name: test3 Type: StringList
edit
このツールのキモですが、指定したパラメータの値を取得しEDITOR上で編集ができます。
--name
で編集したいparameterを指定します。
$ ssm-edit edit --name test
実行すると、私の環境だとvimが開かれます。
{ "Parameter": { "Name": "test", "Type": "String", "Value": "123" } }
ここでValueを変更すると、その値がparameter storeに反映されるという仕組みです。
edit周りはまだ対応が荒くて、Value以外の編集も可能になっています。したがって既存の値をコピーしたい場合、Nameをtest2
として編集を終了すると新しいparameterが作成されたりします。意外に便利な気がするので、あんまり制限しないでおこうかなーと思っています。
ただ注意点があって、SecureStringの対応ができていないので暗号化された状態の値しか見れません。もともとStringとなっているTypeをSecureStringにしてしまうと値が暗号化されてしまいました。
今後
まだ雑な感じなので、ちょこちょこ気になるところは引き続き修正していきたいと思います!
久々にツール書けて楽しかったのが今回一番よかったです(๑•̀ㅂ•́)و✧