前回は Jenkins2 をインストールする方法と、認証周りの設定をまとめました。
-
-
Jenkins2インストールと初期設定〜ユーザ、権限、git連携〜
Jenkins2 を試しました。今回から 3 回にわたって Jenkins2 のメモが続きます。初回は Jenkins2 ...
続きを見る
Jenkins を運用してプロジェクトやユーザが増えてくると、プロジェクト(ジョブ)ごとに細かい権限設定をしたいケースが出てくると思います。例えば「プロジェクト A は管理者にしか実行できない」とか「プロジェクト B は管理者以外のユーザは参照のみ」といった具合です。
Jenkins デフォルトではこれらの権限設定ができないので、Role-based Authorization Strategy Plugin というプラグインで対応します。
このプラグインを使うと、トップ画面でログインユーザ全員に表示されていたプロジェクトが

ログインしたユーザの権限に応じて、表示を制限したりできるようになります。

目次
- Role-based Authorization Strategy Plugin をインストール
- Role-Based Strategy を有効化
- Global roles を登録する
- Project roles を登録する
- 作成した Role をユーザに関連付ける
- 権限を確認
Role-based Authorization Strategy Plugin をインストール
プロジェクト毎の権限設定できるようにするプラグイン Role-based Authorization Strategy Plugin をインストールします。
Jenkinsの管理 > プラグインの管理
- 「利用可能」タブを選択
- 右上の検索窓に「role based」と入力
- 表示された「Role-based Authorization Strategy Plugin」にチェック
- 「ダウンロードして再起動後にインストール」をクリック

インストール完了後 Jenkins を再起動します。
Role-Based Strategy を有効化
インストールした Role-based Authorization Strategy Plugin を有効にします。
Jenkinsの管理 > グローバルセキュリティの設定
- 「セキュリティを有効化」にチェック
- 権限管理 > 「Role-Based Strategy」を選択

Role-Based Strategy を有効化すると、Jenkinsの管理に Manage and Assign Roles というメニューが現れます。

Global roles を登録する
表示された Manage and Assign Roles メニューから権限の設定を行います。
Jenkinsの管理 > Manage and Assign Roles > Manage Roles > Global roles
Global roles を登録します。

上記の例では admin と dev-operator という Role を定義しています。admin は全権限、dev-operator は全体の Read 権限のみ持っています。dev-operator は開発環境の作業ユーザ用の Role として定義しており、この後の Project Roles でプロジェクト別の設定を行います。
Project roles を登録する
Global roles のすぐ下にある Project roles を登録します。
Jenkinsの管理 > Manage and Assign Roles > Manage Roles > Project roles

上記の例では、dev-operator という Role に「dev-」で始まるプロジェクトの閲覧・実行・キャンセル権限を与えています。今回は Pettern に dev-.*
という正規表現を書いて複数のプロジェクトをまとめて設定していますが、プロジェクト名を個別に設定することもできます。登録した Role はこの後ユーザに関連付けます。
Project roles より、Global roles のほうが優先されるので、Global roles と設定が重複しないようにしましょう。
作成した Role をユーザに関連付ける
作成した Global roles と Project roles をユーザに関連付けします。
Jenkinsの管理 > Manage and Assign Roles > Assign Roles


上記の例では、admin と suzuki ユーザに管理者権限(admin)として全権限を与え、それ以外のユーザは作業ユーザ(dev-operator)として開発環境用の権限を与えています。
権限を確認
では、ここまでの設定を確認してみましょう。管理者権限の suzuki ユーザでログインすると、すべてのプロジェクトが表示されます。

次に、作業ユーザの sato ユーザでログインすると dev-
で始まるプロジェクトのみが表示されていることが確認できます。

詳細画面を開くと、プロジェクトの実行しかできず、設定変更や削除はできないことが確認できます。
まとめ
ユーザに対し、プロジェクト毎に細かい権限設定をする方法を紹介しました。次回は Jenkins2 の新機能 Pipeline を紹介します。
-
-
Jenkins2のPipelineとJenkinsfileの使い方
前回は Jenkins2 でジョブごとに権限を設定する方法を紹介しました。 今回は Jenkins2 になって追加された ...
続きを見る