モチベーション
GitHubで管理できないパラメータの管理。めんどうですよね。昔は.envrc.local
で管理していたんですけれども、チームで開発するときは、ちょっといじると周りに共有しなければならなくて手間でした。そうしなくて済む方法をawsのparameter store
で作ってみました。
Parameter Storeってなんだ
AWS のサービスの一つで、パスワード、データベース文字列、ライセンスコードなどのデータをセキュアに扱うためのものです。
Systems Manager パラメータストア - Amazon EC2 Systems Manager
Parameter Storeへのデータ設定方法
下記のコマンドを叩いて、parameter storeにデータを突っ込んでいきます。
aws ssm put-parameter --name SlackToken --type String --value xxxxx aws ssm put-parameter --name IAMRole --type String --value xxxxx
put-parameter — AWS CLI 1.14.16 Command Reference
コード
#!/bin/sh SlackToken=(`aws ssm get-parameters --names SlackToken --query "Parameters[*].{Value: Value}" --output text`) IAMRole=(`aws ssm get-parameters --names IAMRole --query "Parameters[*].{Value: Value}" --output text`) echo "export SlackToken=${SlackToken}" >> .envrc.local echo "export IAMRole=${IAMRole}" >> .envrc.local
ホントなら一回のリクエストで済ませたいのですが、複数パラメータを扱おうとすると、jsonを扱ったりする必要があって、ちょい手間なのでこんな感じですませちゃいました。
あと、.envrc.local
を .gitignoreに追加しておきましょう。
実行
bin/setup.sh
を実行すると、下記のように .envrc.local
が生成されます。
export SlackToken=xxxx export IAMRole=xxxxx
という感じで、簡単にパスワード管理ができるようになりました。