概要
ユーザーによってジョブの操作を制限したい
Jenkinsバージョン:2.270
Role-based Authorization Strategy:3.1
※Jenkinsとプラグインのバージョンが異なると動作しない可能性があります
1. プラグイン追加
まず最初に
Jenkinsの管理 > プラグインの管理 > 「利用可能」タブ
から「Role-based Authorization Strategy」を探してインストールしてください
再起動は不要だと思うので「install without restart」でインストール
2. 権限管理設定
Jenkinsの管理 > グローバルセキュリティの設定
から画像のように「Role-Based Strategy」を選択
3. 制限するユーザーの作成
※すでにあれば作成不要
Jenkinsの管理 > ユーザーの管理 > ユーザー作成
からユーザーを作成してください
ユーザー名とパスワードはJenkinsログイン時に使用するものです
この時点で上記で設定したユーザーでログインしてみてください
特に制限していないのでジョブは操作し放題だと思います
4. 制限設定
どういう制限をかけるかはその時の状況によると思うけど
今回は指定したユーザーは一部のジョブの閲覧とビルドだけできるようにしてみます
管理設定
Jenkinsの管理 > Manage and Assign Roles > Manage Roles
役割名を適当に付けて「Role to add」に入力してAddボタン
リストに追加されるので「Read」だけチェックをつける
画像の例の役割名がsampleでややこしいけどユーザー名とは別物です(画像みたいに一緒でもいいです)
次に制限するジョブの設定をします
こちらも役割名なので自由に付けてください
Patternには制限したいジョブ名を記載します
ジョブ名がルール付けされてる(プロジェクト名とか)のであれば正規表現(.*
)でまとめられます
画像の例であれば「sample-」が一致するジョブがすべて当てはまります
Addボタンでリストに追加後、Patternに記載されてる文字をクリックすると当てはまるジョブが表示されます
画像ではビルドとビルドキャンセルと閲覧を可能にするためにチェックを入れてます
※旧バージョン?だと「Item roles」が「Project roles」って名前になってるので注意
一通り設定し終わったら一番下にあるSaveボタンを押すのを忘れずに
割り当て設定
Jenkinsの管理 > Manage and Assign Roles > Assign Roles
今度はユーザー名を「User/group to add」に入力してAddボタン
リストにManage Rolesで追加した役割の列があるので指定のユーザーのチェックを入れる
こちらも同じく「User/group to add」にユーザー名を入力してAddボタン
さらに同じくリストにManage Rolesで追加した役割の列があるので指定のユーザーのチェックを入れる
これで設定完了
5. 制限されたユーザーでログイン
作成したユーザーでログインしてみます
指定したジョブしか閲覧できなくなってるかと思います
ビューも閲覧可能なジョブのものしかでてこないです
ちなみにプラグインの公式サイトもあるんですが画像が最新じゃないので逆に混乱した(2020/12/14時点)
参考まで
https://plugins.jenkins.io/role-strategy/