конвейер Дженкинса, раскрывающий кредитные карты на выходе

#jenkins #groovy #jenkins-pipeline #terraform #jenkins-groovy

Вопрос:

Итак, я запускаю Terraform на Дженкинсе, и у меня есть работа Дженкинса, которая запускает «план терраформирования».

Это задание запускает отличный скрипт, который собирает кредит с помощью:

 if [ "${env.repo_name}" = "repo5" ]; then
   export TF_VAR_github_token=${getgithubtokenfortf()["gitHubToken"]};
fi
 

и getgithubtokenfortf на самом деле является еще одним сценарием, который вызывается сценарием плана терраформирования:

 def call() {
  def gitHubToken
  withCredentials([string(credentialsId: 'xxxx', variable: 'GITHUB_TOKEN')]) {
      gitHubToken = GITHUB_TOKEN
  }

  [gitHubToken: gitHubToken]
}
 

и идентификатор учетных данных хранится в Jenkins со значением токена!

Теперь проблема в том, что — когда я запускаю задание плана терраформирования в Дженкинсе, в выводе консоли я вижу значение выставленного токена.

 [ repo5 = repo5 ]
export TF_VAR_github_token=xxxxx(valuefromtokenbeingexposedhere)
 

теперь я хочу именно этого … Я не хочу, чтобы значение было выставлено напоказ таким образом^ .. Я не хочу, чтобы он распечатывал значение токена.

как мне это исправить?

Комментарии:

1. Секреты в безопасности только внутри withCredentials блока. Если вы храните его в переменной и планируете использовать его за пределами блока, Дженкинс не сможет защитить эти секреты. Я рекомендую запустить всю вашу логику внутри withCrednetails блока.

2. @Ram я не храню токен в переменной .. я сохранил в Дженкинсе, и, как вы видите, код, который он вызывает, использует код Дженкинса с помощью блока withCredentials. Я не уверен, где и что не так..

3. ‘gitHubToken=GITHUB_TOKEN » — это место, где вы используете дополнительную переменную

4. Выпущена поддержка аутентификации приложений на GitHub

5. Также смотрите Инъекцию Дженкинса с помощью интерполяции