Как код Java может читать учетные данные Jenkins Global во время сборки Jenkins? - PullRequest
0 голосов
/ 06 сентября 2018

У меня есть проект Java, основанный на Jenkins.Для этого кода требуется секретный файл ( .pem формат ).Я не могу сохранить файл в самом проекте Java (по соображениям безопасности).

Формат файла - key_v2-XXXXX.pem, а содержимое -

-----BEGIN PRIVATE KEY-----
XXX
XXXX
-----END PRIVATE KEY-----

. В настоящее время код Java обращается к секретному файлу, присутствующему в Local.Так что местная сборка в порядке.Но когда этот код выполняется в Jenkins, сборка завершается неудачно, потому что не удается найти локальный файл или файл недоступен для Jenkins.

Я добавил секретный файл 1011 * в качестве глобального удостоверения личности (неограниченно) в Jenkins.(Ссылка - https://jenkins.io/doc/book/using/using-credentials/)

Мне нужно найти способ для Java-кода , чтобы получить доступ к этому Секретному файлу (хранящемуся в Jenkins) при выполнении сборки Jenkins.

Или есть другой способ справиться с этой ситуацией?

1 Ответ

0 голосов
/ 06 сентября 2018

Есть много способов сделать это.

Самым простым из них является использование подключаемого модуля Jenkins Credentials (можно определить ключ, файл и т. Д.) https://wiki.jenkins -ci.org / display / JENKINS / Credentials + Plugin

Используются довольно распространенные модели:

1) Использование возможностей шифрования инструмента CI / CD (т. Е. Jenkins, используйте плагин Jenkins Credentials)

2) Храните свои секреты в СКМ (зашифрованные явно). Затем возникает проблема безопасной доставки секрета во время сборки (или его доступности при запуске), чтобы иметь возможность расшифровать секреты (пароль, учетные данные, секреты, сертификаты), которые были развернуты. Именно здесь появляется инструмент управления секретами (например, хранилище). Инструмент управления секретами позволит вам безопасно извлекать свой секрет для использования при расшифровке секретов, когда это необходимо.

3) Другой способ - фактически хранить все секреты, сертификаты и т. Д. Вне SCM в самом инструменте управления секретами и извлекать их во время развертывания / запуска.

Я бы сказал, используйте подход № 2. В этом случае ваш код каждый раз обращается к файлу одинаково (тот же путь к файлу и т. Д.). Фактический файл, который вы пытаетесь расшифровать, находится где-то в рабочем каталоге, когда дело доходит до сборки. Так что доступ к вашему Java-коду не должен вызывать проблем, если код знает, где искать файл секретов и т. Д. Затем используйте плагин Credentials Secret для дешифрования файла в качестве начального этапа сборки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...