2016-08-02 1 views
0

У меня есть параметр пароля, установленный в моей сборке Jenkins, содержащий некоторую информацию, которую я хочу хранить в секрете. Конструкция Jenkins создаст контейнер Docker, который нуждается в доступе к этому параметру. В настоящее время моя команда выглядит такой:Передача Masked Jenkins Environment Переменная для контейнера-докера

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

Это работает, как я ожидал, что это - параметр ПАРОЛЬ Я дал в моей сборки передается в качестве переменной среды в контейнер Докер, который затем может использовать его , Это часть моей консоли вывода:

+ docker run -e PASSWORD=abc123efg my_image my_command

Проблема заключается в том, что исходный пароль показан на выходе выше. Есть ли какое-либо решение или альтернативное решение, которое я могу использовать для передачи маскированного параметра в мой контейнер, не подвергая его воздействию на выходе?

ответ

0

Есть много плагинов, которые могут маскировать определенные параметры в консоли вывода, такие как https://wiki.jenkins-ci.org/display/JENKINS/Mask+Passwords+Plugin

+0

Да, похоже, мы что плагин установлен, но вместо того, чтобы использовать его, я использовал Маске пароль вариант в чем Я считаю, что это плагин Parameterized Build (похоже, не работает). Я просто задал это как ответ и назову его днем – kshah

0

Передача конфиденциальной информации, как открытым текстом IMHO не является хорошим выбором, даже если замаскирован. Если вы управляете конвейером сборки, тогда вместо этого может быть более надежным вариантом для совместного использования секретного подхода. Это относительно просто реализовать и хорошо документировать. Из быстрого поиска Google я выберу http://bigthinkingapplied.com/key-based-encryption-using-openssl/, что объясняет это довольно хорошо. В двух словах ...

  • Создать случайный файл («общий секрет») и сделать его доступным в вашей системе сборки, а также в Докер контейнере
  • зашифровать пароль, используя общий секретный
  • Пропустите зашифрованный пароль для докер контейнера
  • в контейнере Docker, используйте общий секрет для расшифровки пароля