🔑
LINE WORKSのBotを作ろうとしたら、環境変数に秘密鍵を格納する方法でハマった
この記事について
株式会社クオレガ 新人エンジニアの manamana です
社内ツールで使用するための LINE WORKS Bot を作成して、AWS Lambda の環境で Bot を利用しようとしたときに、
- 環境変数への秘密鍵の格納方法
- 環境変数から秘密鍵を取り出すときのフォーマット処理
でかなりハマったので備忘録として残しておきます
環境変数への秘密鍵の格納方法
秘密鍵では、改行コードも秘密鍵の一部なので改行コードを維持したまま環境変数に格納してあげる必要があります
以下のコマンドで、もともとの秘密鍵の改行部分を \n
という文字に置き換え、1 行化します(private.key には秘密鍵のファイル名を入れてください)
$ cat private.key | sed -e :loop -e 'N; $!b loop' -e 's/\n/\\n/g'
環境変数から秘密鍵を取り出すときのフォーマット処理
上記の手順で環境変数に秘密鍵を 1 行化して格納したら、実際に取り出して利用するときにはまた改行コードをもとに戻す必要があります
Python での実装は以下のようになります
import os
secret_key = os.environ["SECRET_KEY"].replace("\\n", "\n")
まとめ
もっといい方法ないのかな...🤔
Discussion