Передача секретов в конвейере Jenkins - PullRequest
0 голосов
/ 05 августа 2020

Я новичок в мире Jenkins, у меня есть случай, когда я настроил конвейер jenkins с помощью JenkinsFile. На этапе развертывания мы вызовем несколько сценариев ansible в серверной части, чтобы развернуть образ в кластере Kubernetes, работающем в облачной среде. Сценарий ожидает несколько секретов в переменной среды, поэтому мне нравится понимать, какой лучший вариант для обработки секретов в Jenkins , нужно ли мне вводить учетные данные jenkins и читать их в теге среды jenkins как показано ниже. Или безопасно получить значение от пользователя с помощью плагина ввода при выполнении конвейера, но если я получу от пользователя, я не смогу полностью автоматизировать конвейер, и будет ждать, пока пользователь не введет секрет. Не могли бы вы помочь безопасным способом обрабатывать учетные данные.

pipeline{
  agent any {
    environment {
        SECRET_VALUE=credentials('SECRET_VALUE_FROM_JENKINS_CREDENTIALS')
    }
  }
}

Ответы [ 2 ]

2 голосов
/ 05 августа 2020

Это зависит от вашего варианта использования, действительно, оба подхода, как вы упомянули выше, будут работать.

Не должно быть никаких проблем с хранением ваших секретов в качестве учетных данных Jenkins, в моем случае все мои секреты находятся в хранилище Hashicorp и мои учетные данные Jenkins указывают на расположение хранилища в качестве примера ...

      - usernamePassword:
          scope: GLOBAL
          id: serviceUser
          username: svc_admin
          password: "${secret/xyz/service_user/password}"
          description: My secret service user

Развертывание Jenkins осуществляется через JCas C.

0 голосов
/ 06 августа 2020

Как администратор jenkins я могу сказать, что хранить учетные данные в jenkins безопасно.

Просто создайте учетные данные в jenkins и используйте их в конвейере. Также неплохо, если в jenkins установлен плагин mask password, который будет маскировать учетные данные в выводе jenkins jobs.

...