web-dev-qa-db-ja.com

Jenkinsはユーザーごとのジョブの表示を制限します

Jenkinsで特定のジョブのみを表示するようにユーザーを制限する方法はありますか。

Jenkinsでは、「プロジェクトベースのマトリックス認証戦略」を使用して、プロジェクトごとのユーザーの能力を制限できます。問題は、ユーザーが「全体」「読み取り」設定なしでは何にもアクセスできないことです。これにより、すべてのジョブを表示できるようになります。

ジョブ制限を許可する別のプラグインはありますか?

62
ulrichenslin

これは、あなたが探しているものだと思う: ユーザーの特定のプロジェクトへのアクセスを許可する

スクリーンショットなしの短い説明:
。各プロジェクトの構成ページに、「プロジェクトベースのセキュリティを有効にする」があります。次に、許可する各ユーザーを追加します。

55
Christian

助けてくれるプラグインは1つだけです:ロールベースの戦略

wiki.jenkins-ci.org/display/JENKINS/Role+Strategy+Plugin

しかし、公式のドキュメント(wiki.jenkins-ci.org/display/JENKINS/Role+Strategy+Plugin)は不十分です。

次の構成がうまくいきました。

http://kblearningacademy.com/configure-role-strategy-plugin-in-jenkins

基本的には、ロールを作成し、正規表現を使用してジョブ名と一致させる必要があります。

12
JRichardsz

プロジェクトベースのマトリックス認証戦略を使用して、読み取り全体のアクセス許可を有効にすることはできますが、システムレベルでジョブの読み取りを無効にすることができます。その後、現在のユーザーに表示したい特定のプロジェクトごとにジョブの読み取りを有効にする必要があります。詳細については、 この解決された問題 を参照してください。そこからいくつかの情報:

ジョブレベルで読み取り権限を実装しています。これが完了すると、特定のジョブのREAD権限を持たないユーザーは、ビューでそのジョブを参照したり、ジョブページに直接アクセスしたり、ジョブへの参照を参照したりできません(たとえば、アップストリームまたはダウンストリームの依存関係)

また、さらに進んで Role Strategy Plugin を確認することをお勧めします。ユーザー/ロールの管理を簡素化できます。上記を使用して特定のジョブへのアクセスを許可できます。

7
Vadim Kotov

Vadimで前述したように、Jenkinsの「Project-based Matrix Authorization Strategy」を「Manage Jenkins」=>「Configure System」の下で使用します。そこに管理者ユーザーを追加し、すべての権限を付与することを忘れないでください。ここで、制限されたユーザーを追加し、全体的な読み取りアクセス権を付与します。次に、各プロジェクトの構成ページに移動すると、「プロジェクトベースのセキュリティを有効にする」オプションがあります。次に、許可する各ユーザーを追加します。

2
NMS

私はいくつかのプラグインの組み合わせを使用します-ロールとパーミッションの基本的な割り当てにはRole Strategy Pluginを使用します。

パラメーターに応じていくつかの役割を分割する必要がある場合(たとえば、ジョブランナーを持つすべてのユーザーがジョブを実行できますが、ユーザーUUUのみが展開ジョブを実行してマシンMMMに展開できる)、Pythonプラグインそして、pythonスクリプトを最初のビルドステップとして定義し、指定されたパラメーターの組み合わせでジョブを実行することが禁止されている場合はsys.exit(-1)で終了します。

ユーザー変数プラグインのビルドは、環境変数としてジョブを実行しているユーザーに関する情報を提供します。

例えば:

import os
import sys

print os.environ["BUILD_USER"], "deploying to", os.environ["target_Host"]

# only some users are allowed to deploy to servers "MMM"
mmm_users = ["UUU"]

if os.environ["target_Host"] != "MMM" or os.environ["BUILD_USER"] in mmm_users:
    print "access granted"
else:
    print "access denied"
    sys.exit(-1)
2
Rostislav Matl

「拡張読み取り許可」プラグインをインストールできます。次に、「グローバル設定」または個別のジョブ設定のいずれかで、ユーザーに「拡張読み取り」権限を付与できます。

0
Rahul Singhai

「Jenkinsの管理」->「ユーザーの管理」に移動して、特定のユーザーに移動し、構成を編集します。「マイビュー」セクションのデフォルトビュー。

0
jordilin