2017-10-09 15 views
0

私たちは現在、nodejsに 'nconf' npmモジュールを使用して、単一のjson構成ファイルを使用して環境固有の設定を処理しています。この設定はgitリポジトリにチェックインされ、アプリケーションによって使用されます。しかし、アプリケーションが大きくなると、構成ファイルに機密情報が含まれるようになりました。私は、環境ごとにこれらの資格情報の設定を処理するための良い方法が何であるかを知りたいと思っていました。私は多くのフォーラムで、ノードサーバを起動してソースリポジトリに保存しない環境ランタイムパラメータとしてこれらの資格情報を提供しています。サーバーを手動で起動している場合はこれが有効ですが、自動コンテナの展開をドッキングすることを計画しています。その場合は、資格情報の設定をどこかに保存する必要があります。そのため、このような状況に対処するための良い戦略が何であるかについての提案を探してください。NodeJS環境固有の設定(秘密鍵など)を扱うための戦略

+0

ドッカーに秘密の '.env'ファイルを作成しようとしていますか? – imcvampire

+0

アプリケーションのドッキングを開始したところです。私は個人的にDockerの秘密を使用していませんが、私の初期の読者は、SECRETのキー/値を作成し、Dockerを使ってアプリケーションに注入できることを示唆しています。すべてのキーと値を作成してハッシュ化するために、構成ファイル全体を一度に提供することが可能であることが期待されます。 – Dev

答えて

0

インフラストラクチャに依存していると思います。たとえば、herokuを使用している場合は、ENV_VARSを設定してそれを設定できます。 管理者としてサーバーを所有している場合は、それらの変数を設定でき、アクセスできるユーザーのみがわかります。

0

私はHerokuと.envノードライブラリと同様のことをしました。

このライブラリは、サーバーが.envファイルから検索を開始すると、一連の環境変数をプッシュします。

ローカル環境でのみ.envファイルを作成し、.gitignoreファイルに設定して、リモートにアップロードされないようにします。

あなた .envファイルは次のようになります

AMAZON_CLIENT_ID=ABCDEFG 
AMAZON_CLIENT_SECRET=CATDOGCOW 

私が代わりの広範なコードの周りにそれらを見つけることができるように単一のファイルにすべての私の設定変数や定数を置くのが好き。

は、だから私はこの

require('dotenv').config({silent: true}); 

module.exports = { 
    AMAZON_CLIENT_ID:process.env.AMAZON_CLIENT_ID, 
    AMAZON_CLIENT_SECRET:process.env.AMAZON_CLIENT_SECRET, 
} 

のように見えますconfig.jsのは少なくともHerokuので、私はセットアップを手動でHerokuのウェブサイト上のすべてのそれらの環境変数は、私はあなたが行うことができます引き受けることができますと呼ばれるファイルを作成しますDockerのようなものです。私はそれがドッカーないですけど、あなたは上記の多くを知ることに興味があるならば、私はそれについてtutorialを書いた

var config = require('./config'); 
//some random code 

if(req.query.amzclientid == config.AMAZON_CLIENT_ID) 

は、次に、あなたのようなあなたのコード内の任意の場所にそれを使用します。

関連する問題