aws-ssm-envから改行のあるパラメータを取得するときに嵌った話
はじめに
雑に作るとき、設定ファイルにパスワードとかAPI Token、private key(Google関連のAPIとか)を良くないのだが面倒になって書くことがある
公開するときに誤って含まれる可能性もあるし、1回でもcommitしちゃうとlogからバレちゃうしで面倒なので最近は環境変数から渡すようにしている
最近、個人のツール諸々をAWSで動かしている
AWSの場合はAWS Systems Manager パラメータストアという便利な機能がありそれを使うことにした
aws-ssm-envを使えば
> export $(AWS_REGION=<aws-region> aws-ssm-env --paths=/ --tags=userservice,production)
> env
...
...
SECRET_1=123456
PASSWORD=productionpass
こんな感じで簡単に環境変数に入れることがきる (READMEより抜粋)
改行のあるパラメータで嵌った
api token とかパスワードのような1行の文字列は問題ないのだが、private keyのような改行があるものだと途中で改行されてしまいエラーになってしまった…
解決方法
結構強引なやり方だがこんな感じで読み込むことができたにはできた…
ただしプロセス置換を使用しているので bash,zsh じゃないと動かない
(cshではできないことを確認済み)
$ source <(AWS_REGION=ap-northeast-1 aws-ssm-env -paths=/)
$ export $(cut -d= -f1 <(AWS_REGION=ap-northeat-1 aws-ssm-env -paths=/))
sourceだけだとシェル変数になってしまいプログラムから環境変数を取得することができなかった。
参考URL
Amazon Web Services 業務システム設計・移行ガイド 一番大切な知識と技術が身につく
posted with amazlet at 18.06.07
SBクリエイティブ (2018-01-20)
売り上げランキング: 7,922
売り上げランキング: 7,922