繁体   English   中英

将屏蔽的Jenkins环境变量传递给Docker容器

[英]Passing Masked Jenkins Environment Variable to Docker container

我在Jenkins版本中设置了一个密码参数,其中包含一些我想保密的信息。 Jenkins构建将创建一个需要访问此参数的Docker容器。 目前,我的命令如下所示:

docker run -e PASSWORD=${PASSWORD} my_image my_command

这可以按我预期的那样工作-我在构建中设置的PASSWORD参数作为环境变量传递给Docker容器,然后可以利用它。 这是我的控制台输出的一部分:

+ docker run -e PASSWORD=abc123efg my_image my_command

问题是原始密码显示在上面的输出中。 是否可以使用任何变通方法或替代解决方案,以将被屏蔽的参数传递给我的容器而不在输出中暴露该参数?

有许多插件可以掩盖控制台输出中的特定参数,例如https://wiki.jenkins-ci.org/display/JENKINS/Mask+Passwords+Plugin

即使将敏感信息屏蔽,也不能将其作为纯文本imho传递。 如果您控制构建管道,那么使用共享秘密方法可能是一个更可靠的选择。 实施起来相对简单,并且有据可查。 从Google的快速搜索中,我将选择http://bigthinkingapplied.com/key-based-encryption-using-openssl/ ,它对此进行了很好的解释。 简而言之...

  • 创建一个随机文件(“共享机密”)并使其在构建系统以及Docker容器中可用
  • 使用共享机密加密密码
  • 将加密的密码传递到Docker容器
  • 在Docker容器中,使用共享密钥来解密密码

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM