Node.jsサーバーからアクセスできるLinuxシステムにいくつかの環境変数を設定したいと思います。これらの変数には、データベースパスワードやAPIキーなどの機密情報が含まれます。
私の現在の設定は、権限が少ない(sudoもできません)、ユーザーがNode.jsサーバーを実行することです。このユーザーをサーバーだけを実行するように制限したいので(誤解を招くのですか?)、ユーザーの〜/ .bash_profileに環境変数を入れたくありません。
だから私の考えは、サーバーに必要な環境変数を/ etc / profileに入れることでした。そうすることで、サーバーを実行する権限の低いユーザーには構成に変数はありませんが、まだ使用できます。ただし、/etc/profile の権限はすべてのユーザーに読み取りアクセス権を付与します。これは論理的に理解されますが、始めた場所に戻ります。
LinuxシステムのWebサーバー環境変数のベストプラクティスは何ですか?すべてのユーザーが常に読むことができる場合は、プロジェクトのルートにあるキーと値を含むテキストファイルをWebサーバーにインポートするよりも、環境変数を使用する方がよいでしょう。(dotenvに類似)?環境変数はセキュリティ上の問題ではなく、メンテナンスのためのベストプラクティスにすぎないので、ここでポイントをリンクできませんか?
答え1
機密データをプレーンテキストとして保存しないでください。誰も解読できないように暗号化する必要があります。
JSONファイルへのすべての構成の追加 一部のパスワードを使用してJSONファイルを暗号化し、ストレージ・サーバー上でアプリケーションの実行中にファイルを復号化し、変数を使用する
このモジュールを参照してください。 https://github.com/nareshv/secure-conf
注:このタイプのコードを保護するには、次のコマンドを使用して、本番環境で読み取れない形式でjavascript形式を指定できます。https://javascriptobfuscator.com/。
この技術を使用してコードを保存します。
答え2
他のグループが所有するファイルに追加できます。次に、/etc/sudoers
そのユーザーがサーバーを別のグループとして実行できるように構成します。
これは、ユーザーに追加のsudo権限(ルートなど)を付与しません。その後、シェルラッパーを使用してユーザーを支援できます。
Sudoは非常に設定可能です。