共有アカウントアクセス管理のベストプラクティスは何ですか?

共有アカウントアクセス管理のベストプラクティスは何ですか?

私たちの会社には開発に使用されるWebサーバーがあり、開発者はそれぞれユーザーアカウントを持っています。サーバーにもユーザーアカウントがあります。アプリ'。ユーザー「アプリケーション」は一人に属しません。これは、すべての開発者がQA用に準備されたコードを展開するために使用できる共有アカウントです。テストの準備が整ったコードは /home/app/public_html/ にアップロードされました。

私たちは、この共有アカウントへのアクセスを管理するための効率的なシステムを見つけることに取り組んでいます。現在、私たちはすべて「アプリケーション」ユーザーのパスワードのみを共有しています。これはいくつかの理由で悪いことです。

私たちは、開発者がSFTPまたはFTPを使用してアプリケーションユーザーアカウントに直接ファイルをアップロードできるシステムが必要です。 "wheel"グループのメンバーも、ファイルを追加、変更、および削除する権限を持つように/ home / appおよびサブフォルダのグループを変更することを検討しました。しかし、問題が発生します。ユーザーが/home/appにアップロードするファイルは、「app」の所有ではなく、そのファイルをアップロードしたユーザーの所有です。

共有アカウントへのアクセスを管理するためのベストプラクティスはありますか?

答え1

共有アカウントを管理する最善の方法は、共有アカウントをロックすることです。

共有アカウントへのアクセスを管理する代わりに、すべての開発者を1つのグループ(たとえばapp_development)に追加し、テスターを別のグループ(たとえば)に追加する必要があります。これはいくつかの理由で悪いことです。app_testingはい一人しか使えないように)は、現在実行中のジョブおよび/またはジョブに基づいてグループに配置され、そのグループにファイルに対する適切な権限を付与します。

software_developmentこの例では、Webアプリケーションを開発するために雇われたソフトウェア開発者は、およびに属しますweb_development(ローカルアプリケーションを開発する開発者はapplication_developmentnotに属することができますweb_development)。チームのテスター/QAメンバーはsoftware_testingおよびweb_testingグループに属します。

グループのユーザーはwheel常にrootとして読み取りおよび書き込み権限を持っています(SELinuxを使用してアクセスを直接制限しない限り)。

sudo -i
groupadd software_development
groupadd web_development
groupadd software_testing
groupadd web_testing
mkdir -p /home/software_development/web_development/staging`

POSIX アクセス制御リスト

コラボレーションディレクトリ構造を開発し、グループに最小限の権限を付与します。

chown -R root:software_development /home/software_development
chmod 550 /home/software_development
setfacl -m g:software_development:r-x /home/software_development
setfacl -m g:software_testing:r-x /home/software_development

chown -R root:web_development /home/software_development/web_development
chmod -R 2570 /home/software_development/web_development
setfacl -R -m g:web_development:rwx /home/software_development/web_development
setfacl -R -m d:g:web_development:rwx /home/software_development/web_development
setfacl -m g:web_testing:r-x /home/software_development/web_development
setfacl -m d:g:web_testing:0 /home/software_development/web_development
setfacl -m d:g:web_testing:r-x /home/software_development/web_development/staging
setfacl -R -m d:u:root:r-x /home/software_development
  1. rootグループ内のすべてのユーザーがそのコンテンツを入力して表示できますsoftware_developmentsoftware_testing/home/software_testing
  2. 誰でもすべてのサブディレクトリ(現在存在するすべてのサブディレクトリと将来作成されるサブディレクトリ)web_developersの内容を表示および変更できます。/home/software_development/web_development
  3. web_testers直接の内容は誰でも見ることができますが、/home/software_development/web_development他のサブディレクトリは見ることができませんstaging
  4. 操作を実行するには書き込み権限が必要ないため、書き込み権限はまったくありませんweb_testingsoftware_testing

Web開発者は自分のプロジェクトサブディレクトリweb_development(通常はプロジェクト名:ie。)にweb_development/project_1設定して、現在開発中のソースコードへのテスターのアクセスを拒否します。テスト/QAの準備ができたら、それをステージングサブディレクトリにコピーします。

関連情報