安全

这仍然是一项正在进行中的工作。

在Jenkins 1.x的默认配置中, Jenkins 不执行任何安全检查。这意味着 Jenkins能够启动进程并访问本地文件,任何人都可以访问Jenkins web UI和更多。

保护 Jenkins 可从两个方面着手。

  • 访问控制, 这确保用户在访问Jenkins及其活动时进行身份验证。

  • 保护Jenkins免受外部威胁

访问控制

你应该所得对 Jenkins UI 的访问以便于用户进行身份认证,并授予一组合适的权限。 还设置主要由两个轴控制:

  • Security Realm, 他决定用户和他们的密码, 以及用户所属的组。

  • Authorization Strategy,他决定谁有权访问什么。

这两个轴是正交的, 需要单独配置。比如, 你可以选择使用外部的 LDAP 或Active 目录作为安全域, 你也可以选择 "每个人都完全访问" 模式的授权策略。或者你还可以选择让Jenkins运行 他自己的用户数据库, 并基于权限/用户矩阵执行访问控制。

保护Jenkins用户免受其他威胁

在Jenkins中有另外的安全子系统,可以保护Jenkins和Jenkins的用户免受间接攻击。

下面的主体将讨论 off by default下的特性。我们建议你先阅读并立即行动。

下面的主题讨论默认情况下的其他安全特性。你只需要在它们造成问题的时候查看他们。

禁用安全

你可能意外的设置了安全域 / 权限,在这种情况下你可能无法重新配置Jenkins。

当出现这种情况时, 你可以通过以下步骤修复它:

  • 停止Jenkins (最简单的方法是停止servlet容器)

  • 进入文件系统的 $JENKINS_HOME并找到config.xml 文件。

  • 在编辑器中打开该文件。

  • 在该文件中寻找 <useSecurity>true</useSecurity> 元素。

  • false取代true

  • 删除 authorizationStrategysecurityRealm

  • 启动Jenkins

  • 当Jenkins回来时, 它将处于一种不安全的模式,每个人都能完全访问系统。

如果仍然不起作用, 尝试重命名或删除 config.xml