如何在构建服务器上保护凭据?

时间:2017-09-15 07:46:52

标签: jenkins build continuous-integration bamboo

我得到了一个设置,开发人员将代码推送到存储库,然后在我们的CI服务器上触发构建。部署当前也由CI服务器完成。对于部署到生产环境,jenkins需要在prod-servers上以root用户身份登录。

这意味着我必须将凭证(例如用户名/密码或密钥)放到CI系统上。这导致了这样的问题:每个有权访问存储库的开发人员都能够通过将代码注入构建过程来读取这些秘密凭据。

如何确保对repo的访问权限无法访问我的CI服务器上的凭据?

1 个答案:

答案 0 :(得分:1)

你可以使用Jenkins" Credentials"对象(" Credentials"插件),仅供参考。导航到"凭据"从Jenkins侧边菜单中创建一个新的凭据项。这些项目保存在Jenkins中,而不是保存在SCM存储库中。

然后,您可以使用Jenkins管道或自由式作业中的凭据。 设置Jenkins权限,以便开发人员无权访问凭据。 Jenkins通过用星号(***)替换它们来防止将这些凭据泄露到控制台输出。

如果您正在使用jenkins文件,那么您实际上是在完全控制开发人员 - 这是一种糟糕的安全措施!为了分离Developer和DevOps角色,我将创建一个单独的Jenkins作业,仅将工件部署到生产中。不要将部署管道存储在jenkinsfile中(或将其存储在具有不同权限的新" DevOps"存储库中)。配置构建作业以在成功时触发部署作业。使用范围/权限保护对凭据和部署作业的访问