web-dev-qa-db-ja.com

JWTシークレットをdocker env変数として格納できますか?

私はJWTがどのように機能するかを理解しており、私の秘密があれば誰でも新しいトークンを発行できます。私はノードのWebサイトが実行されているサーバーを制御しており、キーをホストするためのさまざまなオプションを検討しています。

  1. コード内-私のコードはgithubリポジトリにあるため許容できません
  2. ENV変数-githubにリークせずに、開発用と本番用に別々の秘密
  3. データベースに保存-マシン上の攻撃者がとにかくデータベースへのアクセスを見つけることができるという点で、より多くの作業を伴う2番目のオプションのようです

2番目のオプションは、シンプルなウェブサイトに最適な方法のように見えます(クレジットカードやSSNなどの非常に機密性の高いユーザー情報はありません)。

これは良い解決策ですか?

3
DeTraygus

言ったように環境変数を使用します。ログにリークしないように、変数に値を実際に渡す方法に注意してください。

たとえば、_docker run -e SECRET=foo_の代わりにdocker run -e SECRET=$(cat my_secret)を使用します。

1
eez0