私は Rails を使用し、Capistrano を使用してアプリケーションをサーバーにデプロイしています。Jenkins サーバーがあります (自分の linode に)。
私が知りたいのは、請負業者が作業を完了し、私が持っているツール (Jenkins など) を使用するのに十分なアクセス権を持っているが、重大な損害を与えないようにする方法です。
ワークフローは次のようになります。
- 変更をプライベート git リポジトリにコミットする
- ジェンキンスにデプロイする
- ステージング サーバー (私の linode) に変更をデプロイする
- 変更をライブ サーバーにデプロイする (クライアントの linode)
私はすべてにSSHを使用していますが、sudoコマンドを実行してユーザーパスワードを変更し、SSHキー/ペア認証をバイパスできる可能性があるという点で、ユーザーにアクセスを許可しすぎているのではないかと思っています. 各ユーザーは制限付きの Linux ユーザー アカウントを持ち (同じ制限付きアカウントを共有している可能性があります)、それに SSH キーを追加する必要がありますか?
もう 1 つの質問は、Jenkins を使用してステージング/ライブ サーバーにデプロイし、Jenkins サーバーからそれらのサーバーへのアクセスのみを許可することはできますか?
開発者のみに git リポジトリへのアクセスを許可することで、これをすべて行うことはできますか? Jenkins はそれを追跡し、ステージング/ライブにデプロイしますか?