超详细的 Jenkins 安全tips
软件漏洞随时可能暴露,因此软件供应商需要不断更新他们的应用程序来修复问题或者添加新功能,同时也消除安全漏洞。Jenkins 有一个自带的安全建议页面,可以让用户了解平台上的漏洞。总之,保持更新(包括插件)是一个避免安全风险的不错选择。
-
从菜单中单击 Manage Jenkins -
Manage Jenkins 页面将在顶部提示是否有新版本可用。单击 Or Upgrade Automatically 按钮立即升级。如果不想自动升级,也可以只下载最新版本,并且任何自定时间进行升级即可。如果对升级后不满意,只需要单击 Downgrade 即可
-
从菜单中单击Manage Jenkins -
点击 Manage Plugins -
确保在 Updates 选项上,勾选要安装的更新并单击 Download now and install after restart -
重启 Jenkins 以完成更新
谨慎更改 Jenkins 默认安全设置
Jenkins 在安装时启用其大部分安全功能来尽可能保障使用安全。鉴于每个用户使用 Jenkins 的习惯和方式不同,因此需要根据使用实例来进行配置。Jenkins 提供了有关用户可以查看的重要功能的详细文档,请参阅 Jenkins 官方文档(见参考链接)获取安全建议。需要注意的是,任何安全配置需要在仔细考虑后更改,如果有条件的话可以与网络安全专业技术人员交流后再进行配置。
避免在控制器上构建
Jenkins 提供了一个内置节点,方便用户可以尽快运行测试看看它是否适合。但是在单个实例上运行的构建可以访问用户操作系统的文件系统。出于这个原因,Jenkins 建议用户在“代理”上运行作业(在可扩展的设置也是类似的操作,使用动态构建代理在 Jenkins 中自动扩展)。代理是替代控制器用来运行虚拟的 Jenkins 实例,在使用代理时,用户可以有效阻止控制器运行构建从而限制对可能造成伤害的文件的访问。
-
从菜单中单击 Manage Jenkins -
单击 Manage Nodes and Clouds -
单击 Built-In Node 右侧的图标。 -
用户有两个选项来防止在控制器上构建:
-
如果不想在控制器上构建,请将 Number of executors 更改为0 。 -
如果想在需要时在控制器上构建,请从 Usage 下拉列表中选择 Only build jobs with label expressions matching this node
除了避免外在的安全威胁,也需要从内部保护 Jenkins 的使用环境。如果出现以下情况,安全威胁将大大增加:
-
使用单个管理员帐户运行 Jenkins
-
每个人都可以访问所有内容
-
每个人都拥有更改内容的权限
-
从菜单中单击 Manage Jenkins -
向下并选择 Manage Users -
单击左侧的 Create User -
填写所有字段并点击 Create User
-
限制用户的访问权限,以便他们只能查看和管理他们所属项目的构建 -
授予项目经理只读访问权限,以便他们查看构建的进度
-
单击左侧菜单中的 Manage Jenkins -
点击 Manage Plugins -
单击 Available 选项并开始输入 Matrix Authorization -
勾选插件左侧的框然后单击 Install without restart
-
单击菜单中的管理 Jenkins。 -
单击配置全局安全性。 -
单击以下任一单选按钮: Matrix-based security——允许用户管理全局用户和组权限。 Project-based Matrix Authorization Strategy——允许用户在项目级别管理用户和组权限。 -
完成选择后,使用按钮添加用户或组,并使用表中的复选框选择他们的访问级别。完成后单击保存。
-
用户名和密码
-
SSH 用户名和私钥
-
机密文件
-
机密文本
-
证书
参考链接
https://www.jenkins.io/doc/book/security/