🔑

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")

まとめ

もっといい方法ないのかな...🤔

GitHubで編集を提案

Discussion