単一サーバー上のマルチノード・アプリケーションのベスト・プラクティス

単一サーバー上のマルチノード・アプリケーションのベスト・プラクティス

最善の方法は、アプリケーションごとに別々のシステムアカウントを作成することです。これにより、セキュリティ違反が発生すると、攻撃者は特定のアカウント内で隔離され、それ以上害を及ぼすことができなくなります。

ホームディレクトリとシステムのユーザー数に関するベストプラクティスが何であるかを尋ねたい。

Node.jsアプリケーションは複数ありますが、すべて私のサーバーが所有する1つのユーザーアカウントで実行されます。

アプリケーションごとにユーザーを作成し、関連ファイルをホームディレクトリに保存する必要がありますか、またはすべてのNode.jsアプリケーションに対して1人のユーザーを作成する必要がありますか?私がしなければならないいいえホームディレクトリを作成し、各アプリケーションをシステムディレクトリに配置しますか?

どんなアドバイス*でもいただければ幸いです。

答え1

理想的には、次の場合は異なるアプリケーションを分離する必要があります。

  • たとえば、サービスを実行しているユーザーhttp
  • データが必要な場合は、特定のホームディレクトリを入手してください。その他httpadmin適切なファイルシステム権限を持つユーザー(たとえば)とユーザーhttpgroupのグループを設定すると、アプリケーションはファイルを読み取ることができますが、変更することはできません。httphttpadmin
permission user      group     file
-rw-r--r-- httpadmin httpgroup somefile

最も重要なのは、これらのユーザーが使用するリソース(CPU、メモリ、プロセス、ディスク領域)も制限する必要があることです。これはかなり複雑になる可能性があり、コンテナなどの技術が役立ちます。

これらはすべて基本的に最小権限の原則

関連情報