【发布时间】:2021-06-16 04:38:32
【问题描述】:
在 Jenkins 中,有没有办法限制某些作业,以便只有特定用户才能查看它们?
Jenkins 允许通过“基于项目的矩阵授权策略”限制每个项目的用户能力。问题是如果没有“整体”“读取”设置,用户将无法访问任何内容。这似乎允许他们查看所有作业。
是否有其他插件可以限制工作可见性?
【问题讨论】:
标签: jenkins
在 Jenkins 中,有没有办法限制某些作业,以便只有特定用户才能查看它们?
Jenkins 允许通过“基于项目的矩阵授权策略”限制每个项目的用户能力。问题是如果没有“整体”“读取”设置,用户将无法访问任何内容。这似乎允许他们查看所有作业。
是否有其他插件可以限制工作可见性?
【问题讨论】:
标签: jenkins
认为这就是您要搜索的内容:Allow access to specific projects for Users
没有截图的简短描述:
使用“管理 Jenkins”=>“配置系统”下的 Jenkins“基于项目的矩阵授权策略”。在每个项目的配置页面上,您现在拥有“启用基于项目的安全性”。现在添加您要授权的每个用户。
【讨论】:
只有一个插件可以帮助我:基于角色的策略:
wiki.jenkins-ci.org/display/JENKINS/Role+Strategy+Plugin
但是官方文档(wiki.jenkins-ci.org/display/JENKINS/Role+Strategy+Plugin)是有缺陷的。
以下配置对我有用:
configure-role-strategy-plugin-in-jenkins
基本上你只需要创建角色并使用正则表达式将它们与工作名称匹配。
【讨论】:
Step 9. Add Project Roles based on each project.
您可以使用基于项目的矩阵身份验证策略并启用读取整体权限,但在系统级别禁用读取作业。之后,您应该为您希望对当前用户显示的每个特定项目启用读取作业。请参阅this resolved issue 了解更多信息。那里的一些信息:
我正在作业级别实施 READ 权限。 完成此操作后,缺少特定作业的 READ 权限的用户 不会:在任何视图中查看该作业,能够直接访问作业页面,查看对作业的任何引用(例如在上游或下游依赖项中)
另外,我建议您进一步查看Role Strategy Plugin。它可以简化用户/角色管理,您可以使用上述方法来授予对某些工作的访问权限。
【讨论】:
我使用多个插件的组合 - 对于角色和权限的基本分配,我使用 Role Strategy Plugin。
当我需要根据参数拆分某些角色时(例如,每个拥有 job-runner 的人都可以运行作业,但只允许用户 UUU 运行部署作业以部署在机器 MMM 上),我使用 Python 插件 并定义一个 Python 脚本作为第一个构建步骤,并在禁止使用给定的参数组合运行作业时以 sys.exit(-1) 结束。
Build User Vars Plugin 为我提供有关执行作业的用户作为环境变量的信息。
例如:
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)
【讨论】:
如上所述,Vadim 使用Jenkins《基于项目的矩阵授权策略》下 “管理 Jenkins” => “配置系统”。不要忘记在此处添加您的管理员用户并授予所有权限。现在在此处添加受限用户并授予整体读取权限。 然后转到每个项目的配置页面,您现在有“启用基于项目的安全性”选项。现在添加您要授权的每个用户。
【讨论】:
尝试转到“管理 Jenkins”->“管理用户”转到特定用户,编辑他/她的配置“我的视图部分”默认视图。
【讨论】:
您可以安装“扩展读取权限”插件。 然后在“全局设置”或单个作业配置中,您可以授予用户“扩展读取”权限。
【讨论】: