2016-12-29 2 views
0

私は、キーとクレデンシャルを使用して支払いゲートウェイ、データベースプロバイダなどの外部サービスからAPIエンドポイントを呼び出すWebアプリケーションを使用しています。Webアプリケーションの秘密鍵と認証情報はどこに保管しますか?

私は、これらの値に保つために心の中でこれらのオプションを持っている:アプリ開始する前に、環境変数を設定し

  1. をし、アプリの実行時にロードします。必要な値が利用できない場合、たとえば設定されていない場合は、アプリを終了します。
  2. アプリが起動すると、ユーザー(自分または管理者)に資格情報を入力するように依頼します。必要なフィールドが空の場合は終了し、それ以外の場合はアプリの読み込みを続行します。
  3. 設定ファイルにプレーン値として保存します。これは私にとっては最も好ましくない方法です。

可能な限り安全で安全なキーを保持するには、これらのうちどれを使用しますか?

+0

これはあなたのためによく見えます。https://www.vaultproject.io/ –

答えて

1

あなたが言ったように、設定ファイルを使うべきだと思います。おそらくそれを暗号化しますか?

2

googleamazonの両方でお勧めしますので、user environment variablesとします。

プレーンテキストファイルに保存する場合は、アプリケーションのソースツリーに保存しないでください(一部のバージョンコントロールを使用すると、公開される可能性があります)。

また、定期的に鍵を再生成してください。

+0

確かに環境変数を使用して、@old_mountainが述べたように、バージョンコントロールシステムには絶対含まれていないことを確認してください。 –

0

管理するキーがたくさんある場合は、環境変数が不調です。ハイブリッドのアプローチが私のために働いています:秘密を暗号化し、それらをすべて設定します(通常はbase64)。すべての暗号化キーに同じ暗号化キーを使用し、環境変数として渡します。

必要なだけ多くの秘密を保護するために、環境変数を1つだけ作成する必要があります。

関連する問題