サーバーにはUbuntu12.04 + PHP + nginxがセットアップされています。当社の開発者は、/usr/lib/php5/ と /var/www/ フォルダーの両方にアクセスできます。私たちは多くのプロジェクトに取り組んでおり、特定の時点で、それぞれ db がアクティブな 50 ~ 100 の異なるアプリ/モジュールがあります。
次の点を考慮して、DB パスワードを保護するメカニズムを考え出します。
- システム管理者はパスワードを作成し、それをどこかに登録します(ファイル、またはsqlite dbなど)
- アプリは、必要な DB とアクセス許可レベルを示すキーを提供し、このモジュールは接続に必要なすべてを含むオブジェクトを返します。「user_manager.client1.ro」、「user_manager.client1.rw」のようなもの。
- メカニズムはアプリに特定のパスワードを提供する必要があり、したがって「www-data」からアクセスできますが、他のすべてのパスワードは、それらのキーが既知でない限り表示できません。
このためのプロトタイプを作成することができましたが、中央のパスワード提供モジュールは www-data スペースで実行されるため、file/sqlite は /var/www/ または /usr/lib/ 内の他のファイルからいつでもアクセスできます。 php5 であるため、すべてのパスワードが危険にさらされる可能性があります。
パスワード提供モジュールがルート権限で実行され、アプリがこれからパスワードを要求するように設定する方法はありますか? このためにまったく新しいサービスを構築できることはわかっていますが、構築して維持するには多すぎるように思えます (特に、このサービスが単一障害点になるため)。
助言がありますか?