ユーザーの作成/追加方法 Jenkins 権限の管理

⚡ スマートサマリー

ユーザーの作成 Jenkins 4回のクリックが必要ですが、それぞれに異なる権限を割り当てるには、組み込みの単一のグローバルロールを置き換えるロールベースの承認戦略プラグインが必要です。 Jenkins アカウントはそれ以外の共有も行います。

  • 🔘 組み込み制限: Jenkins すぐに多数のユーザーを作成できますが、それらはすべて同じグローバル権限を受け取ります。
  • ☑️ まずプラグインしてください。 ロールベースの認証戦略をインストールし、ロール画面が表示される前に認証をロールベースの戦略に切り替えてください。
  • 役割の種類は3つあります。 グローバルロールはコントローラー全体を対象とし、アイテムロールはジョブとフォルダーを対象とし、エージェントロールはビルドマシンを対象とします。
  • 🧪 実例: 開発者ロールが作成され、権限が付与され、「ロールの割り当て」画面でユーザーguru99に割り当てられます。
  • 🛠️ パターンマッチング: アイテムロールは、tester.* のような正規表現を使用するため、一致するすべてのジョブまたはユーザーは自動的にロールを取得します。
  • ⚙️ 安全ルール: 常に「全体管理者」権限を持つアカウントを1つ確保してください。そうしないと、役割変更を保存すると全員がアクセスできなくなる可能性があります。

ユーザーの作成と追加方法 Jenkins 権限の管理

一般的に、大規模な組織では、複数の独立したチームが業務を管理・運営しています。 Jenkinsしかし、こうした多数のユーザーを管理し、それぞれに役割を割り当てるのは、厄介な作業となる可能性がある。

デフォルトでは、 Jenkins ユーザー作成オプションは非常に基本的なものしか用意されていません。複数のユーザーを作成することはできますが、割り当てられるグローバルロールと権限は同じものに限られます。これは、特に大規模な組織にとっては理想的とは言えません。

その 役割戦略プラグイン 異なるユーザーに異なる役割と権限を割り当てることができます。まず、プラグインをインストールする必要があります。 Jenkins 環境によって手順が異なるため、以下のチュートリアルでは、まずユーザーの作成、次にプラグイン、そしてプラグインによって有効化される役割画面について説明します。

ユーザーの作成/追加方法 Jenkins

以下に、新しいユーザーを作成する手順を示します。 Jenkins:

ステップ1)ログイン Jenkins ダッシュボード

あなたへのログイン Jenkins ダッシュボードにアクセスするには http://localhost:8080/

インストールしていない場合 Jenkins ローカルサーバーで、適切な場所に移動してください。 URL ログイン情報を使用してダッシュボードにアクセスしてください。表示されるダッシュボードは以下のとおりです。

Jenkins ダッシュボードがブラウザで開きました Jenkins インストールパス

ステップ 2) オプションを選択します

これで、ユーザーの作成と追加を行うオプションが表示されます。 Jenkins そして、現在のユーザーを管理する。

管理  Jenkins ユーザーの作成と管理に関するオプションを表示する画面

ステップ 3) 新しいユーザーを作成する

  • 管理下 Jenkins「ユーザーを作成」をクリック
  • Enter Jenkins パスワード、名前、メールアドレスなどのユーザー情報を追加します。
  • 「ユーザーの作成」をクリックします

ステップ4) ユーザーの作成

ダッシュボードに新しい Jenkins 入力された情報に基づいてユーザーが作成されました。以下に示すユーザーリストをご覧ください。

ユーザーリスト Jenkins 新規ユーザー作成後のダッシュボード

⚠️ バージョンノート: 現在 Jenkins リリースではこの画面を次のようにリストしています 管理 Jenkins ユーザー ではなく ユーザーの管理を選択します。 ユーザーの作成 ボタンとその上のフィールドは変更されず、画面は Jenkins独自のユーザーデータベースはセキュリティ領域であり、LDAPまたはシングルサインオン領域は代わりに外部でアカウントを管理します。

Role Strategyプラグインのインストール方法 Jenkins

組み込みのユーザー画面ではアカウントを作成できますが、アカウントごとに異なる権限を付与することはできません。その機能は、以下の手順でインストールするロールベース認証戦略プラグインによって提供されます。

プラグインをインストールするには 2 つの方法があります Jenkins:

  1. インストールは Jenkins ダッシュボード
  2. プラグインをダウンロードするには Jenkins ウェブサイトから手動でインストールする。

ステップ1)

  1. に行く 管理 Jenkins
  2. 「プラグインの管理」オプションをクリックします。

管理  Jenkins プラグイン管理オプションが強調表示されたページ

ステップ2)

  1. 利用可能なセクション画面で、「役割」を検索してください。
  2. 役割を選択ベースの認可戦略 プラグイン
  3. クリック "再起動せずにインストールする” (インターネット接続がアクティブであることを確認してください)

プラグインマネージャーの検索結果に、ロールベースの認証戦略プラグインが表示されます。

⚠️ バージョンノート: 道は今 管理 Jenkins プラグイン タブにはラベルが付いています 利用可能なプラグイン検索ボックスとプラグイン名が同じなので、上記の2つの手順は引き続き適用されます。

ステップ3)

プラグインのインストールが完了すると、以下のインストール画面に示すように、「成功」ステータスが表示されます。

役割戦略プラグインのインストール成功ステータスを示すプラグインインストール画面

ソフトウェアの制限をクリック トップページに戻ります。

ステップ4) に行く 管理 Jenkins -> グローバルセキュリティの設定 -> の下 認可、 select 役割ベースの戦略。 をクリックしてください Save認証セクションは次のようになります。

ロールベース戦略が選択されたグローバルセキュリティ画面の認証セクション

現在 Jenkins このページへのリンクは 管理 Jenkins >セキュリティ、そしてページ自体の見出しは依然として グローバルセキュリティの設定 同じ承認ドロップダウンメニューを使用します。

役割戦略プラグインにおける役割の種類

ロールベース戦略が有効になると、プラグインは3つの異なるロールスコープを提供します。権限が効果を発揮しない最も一般的な原因は、スコープの選択ミスです。そのため、何かを作成する前に、それぞれのスコープが何をカバーしているのかを理解しておくことが重要です。

役割の種類 対象領域 典型的な使用
グローバルな役割 全体 Jenkins コントローラーであり、アイテムロールで設定されたものを上書きします。 管理者、認証済み読み取り専用ロール、匿名
アイテムの役割 正規表現パターンに一致する完全な名前を持つジョブ、パイプライン、およびフォルダー 1つのチームに、自身のジョブのみに対するビルドおよび構成権限を付与する。
エージェントの役割 パターンに一致するエージェントを構築する チームが自身のエージェントを接続または切断できるようにする

以下のチュートリアルでは、グローバルロールを使用します。 開発者 そしてアイテムの役割 テスター命名規則に注目してください。プラグインは2番目のスコープを呼び出します。 アイテムの役割なぜなら、フォルダやパイプラインだけでなく、通常のジョブも対象としているからです。以前のリリース(およびこのページの下部にあるスクリーンショット)では、同じ表にラベルが付けられています。 プロジェクトの役割.

ユーザーと役割の管理方法 Jenkins

役割の管理と割り当ての手順は次のとおりです。 Jenkins:

ステップ1)

  1. に行く 管理 Jenkins
  2. 選択 役割の管理と割り当て

管理  Jenkins プラグインによって追加された「役割の管理と割り当て」エントリを表示するページ

注意: その 役割の管理と割り当て このオプションは、ロール戦略プラグインをインストールし、認証をロールベース戦略に切り替えた場合にのみ表示されます。

ステップ2) ソフトウェアの制限をクリック 役割の管理 組織に基づいて新しい役割を追加します。

「役割の管理」オプションを使用した「役割の管理と割り当て」画面

ステップ3) 「開発者」という新しい役割を作成するために、

  1. 「役割」の下に「開発者」と入力します。
  2. 「追加」をクリックして新しい役割を作成します。
  3. それでは、 Jenkins 「開発者」ロールに割り当てるユーザー権限。
  4. [保存]をクリックします

表示されるチェックボックスのグリッドを以下に示します。

開発者ロールが追加され、その権限にチェックが入った状態で、ロールの管理画面が表示されます。

Jenkins ロールに割り当てることができる権限グループ

「役割の管理」画面のチェックボックスは、各権限が作用するオブジェクトごとにグループ化されています。以下の表は、各グループが制御する内容を説明しており、チームが実際に必要とする最小限の権限のみを付与することを容易にします。

権限グループ それが与えるもの
全体 管理、読み取り、およびその他のコントローラー全体に適用される権限。 管理者 完全な制御権を与えるのであれば、慎重に与えるべきだ。
Credentials 保存された認証情報の表示、作成、更新
エージェント ビルドエージェントの設定、接続、切断、削除
Job ジョブの構築、キャンセル、構成、作成、削除、読み取り、ワークスペース、移動
ラン 個々のビルドレコードの削除、再生、更新
表示 ダッシュボードビューの作成、構成、削除、および読み取り
SCMの ソース管理フックからビルドをトリガーする

新しい役割を始めるにあたって 全体/閲覧 さらに 仕事/読書これら2つの権限がないと、他の権限が有効になっている場合でも、ログインしているユーザーには空のダッシュボードが表示されます。これは、このプラグインで最も多く報告されている混乱事項です。

役割を割り当てる方法 Jenkins

ステップ1) ロールを作成したので、特定のユーザーにロールを割り当てましょう。

  1. に行く 管理 Jenkins
  2. 「役割の管理と割り当て」を選択します

「役割の管理と割り当て」画面が開き、「役割の割り当て」オプションにアクセスできます。

ステップ2) 新しいロール「開発者」をユーザー「」に追加します。guru99 

  1. 開発者ロールのチェックボックスを選択します
  2. [保存]をクリックします

ユーザーguru99の開発者ロールのチェックボックスがオンになっているロール割り当て画面

必要に応じて、任意のロールを任意のユーザーに割り当てることができます。

プロジェクトロールの作成方法 Jenkins

グローバルロールはあらゆる場所に適用されます。権限を特定のジョブセットのみに適用したい場合は、プロジェクトロールを作成してください。これは、プラグインでは現在「アイテムロール」と呼ばれているスコープです。

プロジェクト固有のロールは以下で作成できます。 プロジェクトの役割。

ステップ1) In Jenkins役割の管理と割り当て

  1. 「テスター」としてロールを入力します
  2. を追加してこれにパターンを追加します テスター。*, これにより、「tester」で始まるユーザー名には、指定したプロジェクト ロールが割り当てられます。
  3. [追加]をクリック
  4. 権限の選択
  5. [保存]をクリックします

完成したプロジェクト役割表を以下に示します。

テスターの役割とテスターのドットスターパターンが入力されたプロジェクト役割テーブル

このパターンはアイテムのフルネームにマッチする正規表現なので、 tester.* また、という名前のフォルダにも一致します。 テスタースイート そしてその中のすべて。新しいパターンは、本番環境に適用する前に、使い捨てのジョブでテストしてください。 フリースタイルプロジェクト または パイプラインジョブ.

マトリックス型セキュリティとロールベース型戦略の比較

ロールベース戦略は、そのドロップダウンメニューにある唯一の認証オプションではありません。 Jenkins マトリックスベースのセキュリティ機能が組み込まれており、小規模な設置であればそれで十分な場合もある。

比較のポイント マトリックスベースのセキュリティ 役割に基づく戦略
設置 内蔵 Jenkins ロールベースの認証戦略プラグインが必要です
配属部署 各ユーザーまたはグループには直接権限が付与されます。 権限は名前付きロールに属し、ユーザーはそのロールに割り当てられます。
10人目のユーザーを追加 許可行全体が手作業で繰り返されます 役割のチェックボックスを1つ選択してください
ジョブごとの制御 プロジェクトベースのマトリックス認証、ジョブごとに設定可能 パターンを持つ1つのアイテムロールで、すべての該当するジョブをカバーできます。
最適 ほぼ同一のアクセス権を持つ少数のユーザー 複数のチーム、多くの仕事、人々の移動に伴って変化するアクセス

経験則としては、権限が繰り返される回数が目安となります。3人目のユーザーに対して同じチェックパターンが入力されると、ロールの維持管理コストが安くなります。これは、チームがアドホックなジョブからレビュー済みのジョブへと移行する動機付けとなるのと同じ考え方です。 CI / CDパイプライン.

よくあるご質問

2つの条件が両方とも満たされている必要があります。ロールベース認証戦略プラグインがインストールされていること、そしてセキュリティ画面の認証設定が「ロールベース戦略」に設定されていることです。このエントリは、2番目の手順が保存されるまで非表示のままです。

Force Stop Jenkins、 開いた config.xml JENKINS_HOME で、 authorizationStrategy を持つ要素 <authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured"/>その後、再起動してください。この操作を回避できるよう、常に「全体管理」/「管理者」権限を持つアカウントを1つ保持しておいてください。

はい。役割割り当て画面では、ユーザー名だけでなくグループ名も入力できるため、LDAPグループまたはActive Directoryグループを一度役割に割り当てれば、その後はディレクトリ内でメンバーシップを完全に管理できます。

機械学習ツールは、付与された権限と各アカウントが実際に使用している権限を比較し、未使用の権限を特定することで、権限マトリックスを手作業で読み取るよりもはるかに速く、過剰な権限を持つ役割を明らかにします。

GitHubコパイロット 書き込み Groovy または、役割を一括作成し、アイテム役割のパターン式を作成するREST呼び出し。 Rev実行する前に、生成されるものをすべて確認してください。間違ったパターンは、知らず知らずのうちにアクセス範囲を拡大してしまうからです。

アカウントは以下にあります JENKINS_HOME/usersユーザーごとに1つのフォルダ config.xml 内部。役割とその権限はメインにあります JENKINS_HOME/config.xmlそのため、そのフォルダをバックアップすれば両方とも保存されます。

ユーザーリストからアカウントを削除すると、ログイン情報は削除されますが、作成履歴は残ります。何も削除せずにアクセス権を取り消すには、「役割の割り当て」画面で該当ユーザーの役割チェックボックスをオフにして保存してください。

はい。ロール管理画面の「資格情報」権限グループは、保存されているシークレットの表示、作成、更新をカバーしているため、ロールはジョブの実行を許可されつつ、そのジョブが使用する資格情報の読み取りはブロックされるといったことが可能です。