Security 如何强制Jenkins安全性以防止用户能够在另一个用户下执行命令';s账户

Security 如何强制Jenkins安全性以防止用户能够在另一个用户下执行命令';s账户,security,jenkins,Security,Jenkins,例如,user1创建了一个job1,可以在node1上执行,其中jenkins从属代理使用user1的凭据连接到host1 存在安全风险: User2可以编辑此job1,并在host1上以user1的名义运行任何命令 或者,user3可以创建一个新的job2来连接node1,并使用user1的帐户在host1上运行任何命令 我们如何避免这种情况 我已经在使用角色策略,让用户扮演不同的角色,如JobCreator/Editor/NodeCreator等。但这并不能解决问题:我们肯定有不止一个用

例如,user1创建了一个job1,可以在node1上执行,其中jenkins从属代理使用user1的凭据连接到host1

存在安全风险:

  • User2可以编辑此job1,并在host1上以user1的名义运行任何命令
  • 或者,user3可以创建一个新的job2来连接node1,并使用user1的帐户在host1上运行任何命令
我们如何避免这种情况

我已经在使用角色策略,让用户扮演不同的角色,如JobCreator/Editor/NodeCreator等。但这并不能解决问题:我们肯定有不止一个用户扮演JobCreator或Editor角色

有什么建议吗?

假设“使用角色策略”是指允许:

创建项目角色,只允许在项目基础上设置作业和运行权限

允许防止user2通过应用正确的项目模式来编辑作业1

创建从属角色,允许设置与节点相关的权限

允许通过应用正确的节点模式,防止user3在node1上执行作业


注:不幸的是,插件页面上的用户指南已经过时:它没有提到从属角色。此外,从属角色的内联帮助→ 模式也是错误的。这只是项目角色的模式内联帮助的C&P。

感谢您的快速回复。是的,我使用角色策略插件。我也使用项目角色,但目前有两个以上的人拥有给定项目的作业编辑权限(例如,该过程不应该因为休假而被阻止).关于从属角色,我的理解是,每个用户都需要创建与其帐户关联的自己的节点,然后我们可以设置一个模式,以便每个用户只能在其自己的节点上(在其自己的帐户下)执行作业。我将尝试此方法。如果我们可以限制每个项目只有一名管理员,并且一个节点只能由一个人使用。项目和从属角色解决了此问题。但是,在现实世界中,节点和作业可以由几个成员使用,则风险仍然存在。