【问题标题】:Replace passwords in config files using Jenkins使用 Jenkins 替换配置文件中的密码
【发布时间】:2021-03-11 20:59:01
【问题描述】:

我有各种带有配置文件的 nodeJS 包,其中包含特定于环境的配置变量的组合,但也包含敏感信息/秘密(密码、api 密钥等)。

有没有办法将占位符放在配置文件中并有一个詹金斯插件,将它们换成有效值?特别是我希望能够使用 Jenkins 凭据插件获取密码信息?

如果不是安全地为每个环境自定义配置文件的最佳方法是什么?

【问题讨论】:

  • 将密码放在环境变量中安全吗?我不这么认为?
  • 只要你使用.env文件而不是把变量声明放在你的代码中,你只需要确保你不提交那些.env文件...阅读dotenv 包自述文件

标签: node.js jenkins passwords


【解决方案1】:

根据您的具体用例,您可以使用环境变量,或者您可以将信息保存为 Jenkins 机密并在您的管道中像这样引用它们:

environment {
        AWS_ACCESS_KEY_ID     = credentials('jenkins-aws-secret-key-id')
        AWS_SECRET_ACCESS_KEY = credentials('jenkins-aws-secret-access-key')
}

在此处查看更多信息:https://www.jenkins.io/doc/book/pipeline/jenkinsfile/#secret-text

【讨论】:

  • 我想我让这变得比它需要的更难。我在想环境变量是不安全的。在我的无知中,我假设环境变量是全局的,一个用户可以看到所有的系统环境变量(因此密码会暴露给系统上的每个用户)。不过我猜不是这样的?
  • 您绝对可以拥有系统范围的环境变量,尽管这些与您打算做的非常不同。环境变量,取决于您在 Jenkinsfile 中的实现方式,是短暂的,仅在阶段或作业运行期间存在。
猜你喜欢
  • 2012-06-13
  • 1970-01-01
  • 2015-12-23
  • 2013-12-07
  • 2015-10-20
  • 2016-03-15
  • 1970-01-01
  • 2015-11-25
  • 2010-11-11
相关资源
最近更新 更多