簡體   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