私たちのサーバーにはUbuntu12.04 + PHP + nginxの設定があります。私たちの開発者は、/ usr/lib/php5 /と/ var/www/foldersの両方にアクセスできます。私たちは多くのプロジェクトに取り組んでいますが、その時々にdbが稼動している50-100の異なるアプリケーション/モジュールがあります。Multi-Dev nginxの設定でのパスワードの保護
私たちは、次の点を考慮して、当社のDBのパスワードを保護するためのメカニズムを思い付くしたいと思います:(sqliteのDBまたはそのようないくつかのファイルを、または)
- システム管理者は、パスワードを作成し、どこかでそれを登録
- アプリケーションは、どのDBとどのアクセス権レベルで必要なのかを示すキーを提供し、このモジュールは接続に必要なすべてのものを含むオブジェクトを返します。 "user_manager.client1.ro"、 "user_manager.client1.rw"のようなものです。
- このメカニズムは、アプリに特定のパスワードを提供する必要があり、したがって 'www-data'によってアクセス可能ですが、他のすべてのパスワードは、そのキーがわかっていなければ見ることができません。
このためにプロトタイプを作成することができましたが、中央のパスワード提供モジュールはwwwデータスペースで動作するため、/ var/www /ディレクトリの他のファイルからファイル/ sqliteにアクセスできます。または/ usr/lib/php5になり、すべてのパスワードが漏えいする可能性があります。
パスワード提供モジュールがルート権限で実行され、アプリがパスワードを要求するよう設定する方法はありますか?私たちはこれに対してまったく新しいサービスを構築することができますが、ビルドとメンテナンスがあまりにも難しいと思われます(特に、このサービスは単一障害点になります)。
何か提案がありますか?
あなたの質問をよりよく理解するには:モジュールはPHPで書かれていますか?このモジュールを絶対に使用するソリューションを望んでいるのですか、または単にファイルのアクセス権で再生できますか?すべての開発者がすべてのファイルへのアクセスを維持することは必須ですか? – St0rM
中央パスワード提供モジュールは現在PHPで提供されており、通常のPHPクラスに過ぎません。 私たちにはアイデアが公開されているので、ファイルのパーミッションを持つものは何でも構いません。 すべてのファイルにアクセスできる開発者については、私たちが複数の帽子をかぶった若干少数のチームだと考えて、アクセスを分離するのはかなり難しいでしょうから、私はそれを妥協しません。 – Shreeni
各開発者がすべてにアクセスしてデータベースにアクセスしないようにするには、問題を解決できる方法はありません。そのアクセス権を持つもの(つまりコード)にアクセスできるようにするため、dbにアクセスできます。たとえば、パスワードを読み取って隠しファイルに保存するコード行を書くことができます。 質問自体に何か問題があると私は信じています。 – St0rM