【发布时间】:2014-06-25 17:49:13
【问题描述】:
在使用 Jenkins-m2-release 插件进行 maven-release 时,构建作业正在创建一个 release.properties 文件,该文件显示 SCM 连接信息,例如要连接的 URL、标签在 svn 中的位置、要连接的用户名和密码连接等,。一旦用户安排了一个 Maven 发布版本,这个文件就会在 Jenkins WORKSPACE 目录下生成。该文件最大的安全问题之一是它以明文形式显示 SCM.password 的值。如果构建通过,此文件会在发布完成后从工作区中清除。如果构建失败,则该文件保留在 Jenkins 工作区中,并且可以由服务器中的任何管理员用户访问。 根据 Jenkins 社区的说法,这个问题应该在最新的 M2 版本插件中得到修复 https://wiki.jenkins-ci.org/display/JENKINS/M2+Release+Plugin ,但是我们仍然在我们的 Jenkins 服务器中看到了这个问题。 (请在下面找到我们的服务器配置)
- Jenkins 版本:1.532.1
- Maven:2.2.1 / 3.0.5
- SCM:颠覆
- M2-release 插件:0.14.0
我尝试了以下解决方法,但似乎都没有工作
- 使用屏蔽密码插件屏蔽我的 scm 密码并将其作为参数传递给 mvn 发布目标(它未能通过身份验证。它读取变量作为密码而不是读取值)
- 尝试使用 Chmod 700 -R ${WORKSPACE} 更改 Jenkins WORKSPACE 目录的权限(由于管理员用户和运行构建的用户不同,因此无法正常工作)
提到使用 maven-encryption 加密密码并将其添加到 settings.xml 文件以访问服务器的帖子之一。这对我们不起作用,因为多个(独立)团队共享同一个 svn 服务器。
我正在寻找其他方法来克服这种安全风险。
【问题讨论】: