CONTACT
お問い合わせ

Jenkins#4 ユーザ・ロール管理

ユーザ・ロールを作成し、ユーザ毎に実行できるジョブを制限させる

目次

Jenkins#4 ユーザ・ロール管理

  1. 概要
  2. インストールおよび実行手順
  3. ユーザ作成
  4. 権限設定
  5. ユーザと権限の紐づけ
  6. 動作確認

1.概要

Jenkinsにユーザアカウントを作成し、アカウント毎に実行できるジョブを制限させる。そのために、ロール(役割)を作成し、ロールとユーザの紐づけを行う。

ジョブ作成

ユーザによって「見せる・見せない」を確認するため、以下のジョブを準備する

ジョブ名 概要
DEV_WebAP 開発環境のWebAPサーバに対して資材配布する
DEV_Batch 開発環境のBatchサーバに対して資材配布する
ST_WebAP システムテスト環境のWebAPサーバに対して資材配布する
ST_Batch システムテスト環境のBatchサーバに対して資材配布する

作成するロール

ロール名 概要
開発者(developer) 開発環境への資材配布が可能
管理者(manager) システムテスト環境への資材配布が可能

2.プラグインの導入

プラグイン「Role-based Authorization Strategy」の導入

ロールの管理を行うため、プラグインの追加を行う。

Jenkinsの管理をクリックする

プラグインの管理をクリックする

  1. 利用可能タブをクリック
  2. フィルタにて「Role-based Authorization Strategy」と入力
  3. 表に表示されるので、チェックを入れる
  4. ダウンロードして再起動後にインストールをクリック

再起動後に以下を確認する。

  1. インストール済みタブをクリック
  2. フィルダーにて「Role-based Authorization Strategy」を入力
  3. 表に表示されることを確認する

Jenkinsの管理にて、グローバルセキュリティの設定をクリックする

権限設定にて「Role-Based Strategy」を選択し、保存をクリックする

Jenkinsの管理に、Manage and Assing Rolesが表示される

3.ユーザ作成

Jenkinsの管理にて、ユーザの管理をクリックする

ユーザー作成をクリックする

必要な情報を入力する

今回は、user01、user02、user03を作成した

user01でログインを行う

何も設定していないため、何のジョブも参照できない状態となる

adminでログインしなおす

4.権限設定

動作確認用に以下の4つのジョブを用意した

Jenkinsの管理にて、Manage and Assign Rolesをクリックする

Manage Rolesをクリックする

Global rolesで全体の権限設定を行う

  1. Global rolesのRole to addにて今回は”general”を追加
  2. 表にgeneralが追加されるので、全体/read/generalにチェックを入れる

※ここで作成したgeneralロールはuser01,user02,user03に後ほど紐づけする

Item rolesでジョブに関する権限設定

  1. Role to addにてdeveloperを指定、Patternに「DEV_.*」を指定し、Addをクリック
  2. Role to addにてmanagerを指定、Patternに「ST_.*」を指定し、Addをクリック
  3. 表に追加されたdeveloper, managerそれぞれにてジョブ/Build,Cancel, Read ビルド/Delete, Replayにチェックを入れる。

Patternには対象とするジョブ名を正規表現で指定している

Node rolesでノードに関する権限設定

今回、Node rolesには特に指定せず、saveをクリックするユーザと権限の紐づけ

5.ユーザと権限の紐づけ

Manage and Assign RolesにてAssign Rolesをクリックする

Global rolesにてAnonymous/generalにチェックを入れる

その他のユーザに「Manage Roles画面で追加したgeneralの設定(全体のread)」を割り当てする

Item rolesにて以下の通り設定する

  1. user01には「Manage Roles画面で追加したdeveloperの設定(DEV_で始まるジョブの実行権限)」を割り当てる
  2. 同様にuser02には「managerの設定(ST_で始まるジョブの実行権限)」を割り当て
  3. user03には「developer, manager」の両方を割り当てする

今回、Node rolesには特に指定せず、saveをクリックする

設定を反映するため、アドレスバーの/jenkins/の後ろにrestartと入力しエンターを押下、はいをクリックする

6.動作確認

user01でログインすると、DEV_で始まるDEV_Batch, DEV_WebAPのみ表示されていることを確認できる

user02でログインすると、ST_で始まるST_Batch, ST_WebAPのみ表示されていることを確認できる

user03でログインすると、DEV_またはST_で始まるジョブが表示されていることを確認できる