对于这样一个开放的、可定制的平台,Jenkins 即使在默认状态下也提供了良好的安全性。尽管它连接到无数的行业工具,但还有一些其他方法可以帮助保护您的项目。
在这篇文章中,我们将介绍一些方法和工具,以确保您的 Jenkins 实例安全并保护使用它的用户。
保持一切更新
正如 2021 年 12 月提醒我们的那样,软件漏洞随时都会暴露出来。软件提供商不仅更新其应用程序以修复错误或添加新功能,还消除安全漏洞。
Jenkins有一个安全建议页面,可以通知您其平台的漏洞。保持实例(包括其插件)更新仍然是一个好主意。
要检查 Jenkins 中的更新:
- 从菜单中单击“管理 Jenkins” 。
- “管理 Jenkins”屏幕将在顶部告诉您是否有可用的新版本。单击或自动升级按钮立即升级。否则,您可以下载最新版本并在预定时间升级。
您还可以从同一屏幕回滚升级 - 只需单击“降级”按钮即可。
更新 Jenkins 插件:
- 从菜单中单击“管理 Jenkins” 。
- 单击管理插件。
- 确保您位于“更新”选项卡上,勾选要安装的更新,单击“立即下载, 并在重新启动后安装”。
- 重新启动 Jenkins 以完成更新。
您可以在大多数主要操作系统和容器上安装 Jenkins,因此也要保持更新。有关操作方法的更多信息,请查阅操作系统的文档。
仅在确定时才更改 Jenkins 的安全默认值
Jenkins 在安装时启用了大部分安全功能,使事情尽可能安全。鉴于您可以使用 Jenkins 的多种方式,对于如何最好地配置或锁定实例,没有一种“一刀切”的方法。
因此,虽然我们无法就什么对您的团队最有利提供建议(除了我们接下来将探讨的例外情况),Jenkins 提供了有关您应该查看的重要功能的详细文档。请参阅保护 Jenkins 页面以获取与以下相关的安全性帮助:
- 基本设置
- 建立行为
- 用户界面
您只能在仔细考虑后进行更改,如果可能的话,请与您的网络安全专家交谈。您可以在“配置全局安全性”页面上进行这些更改- 通过从左侧菜单中选择“管理 Jenkins”来找到它。
避免在控制器上构建
Jenkins 提供了一个内置节点,因此您可以尽快运行测试,看看它是否适合您。但是,在单个实例上运行的构建可以访问操作系统的文件系统。因此,Jenkins 建议您在“代理”上运行作业。
代理是运行作业而不是控制器的虚拟 Jenkins 实例。使用代理时,您可以阻止控制器运行构建,以限制对可能造成损害的文件的访问。
要停止控制器运行构建:
- 从菜单中单击“管理 Jenkins” 。
- 单击管理节点和云。
- 单击内置节点右侧的齿轮。
- 您有 2 个选项可以防止在控制器上进行构建。选择一项并单击“保存”:
- 如果您不想在控制器上构建,请将执行器数量更改为0 。
- 如果您想在需要时在控制器上构建,请从“用途”下拉列表中选择“仅构建标签表达式与此节点匹配的作业” 。
只让您的团队访问他们需要的内容
安全不仅仅是保护自己免受传入威胁。它还涉及从内部保护您的环境,因为事故可能会发生。如果满足以下条件,则更有可能发生:
- 您正在使用单个管理员帐户运行 Jenkins 实例
- 每个人都可以访问一切
- 人们可以改变他们不应该改变的事情
以下是管理用户访问的一些建议。
为每个 Jenkins 用户提供一个帐户
为了帮助跟踪用户正在执行的操作,请为使用 Jenkins 实例的任何人创建单独的用户帐户。这样,您就可以看到所有活动以及谁做了什么。
要创建额外的用户:
- 从菜单中单击“管理 Jenkins” 。
- 向下滚动并选择管理用户。
- 单击左侧的“创建用户” 。
- 填写所有字段并单击“创建用户”。
使用Matrix授权策略插件
我们建议使用Matrix授权策略插件来更精细地管理用户对 Jenkins 的访问。例如,使用此插件,您可以:
- 限制用户的访问权限,以便他们只能查看和管理其所属项目的构建
- 为项目经理提供只读访问权限,以便他们可以查看构建的进展情况
要安装插件:
- 单击左侧菜单中的“管理 Jenkins” 。
- 单击管理插件。
- 单击“可用”选项卡并开始输入
Matrix Authorization
。该插件将出现在预测结果中。 - 勾选插件左侧的框,然后单击安装而不重新启动。
要使用插件设置权限:
- 从菜单中单击“管理 Jenkins” 。
- 单击“配置全局安全性”。
- 单击以下任一单选按钮:
- 基于矩阵的安全性– 允许您管理全局用户和组权限。
- 基于项目的矩阵授权策略– 允许您在项目级别管理用户和组权限。
- 无论您如何选择,都可以使用按钮添加用户或组,并使用表中的复选框选择其访问级别。完成后单击“保存” 。
您应该考虑的其他用户访问插件
如果您已经使用其他系统进行访问管理,您也许可以使用这些系统对您的 Jenkins 用户进行身份验证。
文件夹插件允许您根据需要在可嵌套文件夹中对作业进行分组。该插件可让您对共享安全需求的作业进行分组,这有助于您密切关注它们。
基于文件夹的授权策略插件允许您使用角色设置文件夹访问权限,从而扩展了文件夹的安全性。
安全地存储您的凭据
凭据绑定插件是加密和安全存储连接 Jenkins 与其他服务的凭据的最佳选择。Jenkins 也推荐它——作为第一次安装 Jenkins 时建议的插件之一。另外,许多其他插件使用它作为依赖项。
该插件允许您存储和重用所有类型的身份验证方法,例如:
- 用户名和密码
- SSH 用户名和私钥
- 秘密档案
- 密文
- 证书