web-dev-qa-db-ja.com

Jenkinsコンソール出力でパスワードを非表示にする方法は?

Mask Passwordsプラグインは、事前設定されたパスワードのみをビルドプロセスに渡すことを許可するため、ジョブのセキュリティに対して実際には何もしません。

ジョブを実行するたびに(パラメーターとして)入力する必要があるパスワードパラメーターが必要であり、コンソール出力でマスクする必要があります。

私が読んでいるものから、Jenkinsの管理->システムの設定に進み、パスワードパラメータをマスクすることを選択する必要がありますが、それは何らかの理由ではありません..提案はありますか?

14
Ian Tait

Jenkins 1.609.1および Mask Passwords Plugin 2.7.3でテスト済み。 「システムの設定」およびこれを使用するジョブで有効化する必要があります。ジョブ構成には、「パスワードをマスクする」ポイントがあります。これはアクティブにする必要があり、グローバル構成を使用してパスワードをマスクします。

10
mszalbach

linuxビルダーを使用している場合は、コマンドテキストボックスでシェルの実行の下にシェルコマンドの出力を非表示にできます。最初の行に次の行を追加します。

#!/bin/bash +x
some other commands...

これにより、コンソール出力にパスワード付きのコマンドの出力のみが非表示になります

7
dsaydon

資格情報を使用できます。秘密テキストの資格情報を追加し、使用するIDとIDを次のように追加します。

          withCredentials([string(credentialsId: 'DOCKER_USER', variable: 'DOCKER_USER'), string(credentialsId: 'DOCKER_PASSWORD', variable: 'DOCKER_PASSWORD')]) {
            sh "docker login -u $DOCKER_USER -p $DOCKER_PASSWORD"
            sh "docker Push '$DOCKER_USER/appName:test'" 
          }

DOCKER_USERおよびDOCKER_PASSWORDはjenkins認証情報ストアにあり、ログでは***に置き換えられます

2
Bruck Wubete

ここでは、「ビルド環境」から「環境変数としてビルドにパスワードを挿入する」を使用しています。それは本当に素晴らしい作品です。コンソールからパスワードを非表示にします。さらに、「パスワードパラメータ」を介してユーザー入力パスワードを非表示にします

すごくかっこいい !! :)

1
santosh verma

mask Passwordsプラグインを使用できます。これは非常に便利です https://wiki.jenkins-ci.org/display/JENKINS/Mask+Passwords+Plugin

0
lanni654321

[マスクパスワードプラグインを使用せずに]ソリューションで私の調査結果を以下で見つけてください。

私のjenkinsジョブに関する簡単な説明:実行時に指定されたパラメーターに基づいてNexusからアーティファクトをダウンロードし、データベースSQL接続を作成し、maven flywayプラグインを使用してSQLスクリプトをデプロイするジョブを作成しました。私の仕事は、環境、データベーススキーマ、アーティファクトバージョン番号、Flywayコマンド、データベースユーザー、および入力パラメーターとしてのパスワードです。

問題に関する簡単な背景: MAVEN GOAL(パラメータ)としてパスワードを渡す際、Jenkins Consoleにプレーンテキストとして入力されていました。実行時にパスワードを渡すために「パスワードパラメータ」を使用していましたが、コンソールではプレーンテキストとして送信されていました。

「秘密のテキスト」を使用してパスワードを暗号化しようとしましたが、暗号化されたパスワードがMaven Goalsに渡され、DBに接続できなかったため、ジョブが失敗し始めました。

解決策:

ビルド環境から "環境変数としてビルドにパスワードを挿入"を使用し、その値を「パスワードパラメータ」として定義しました(パスワードパラメータ名はdb_passwordでした)実行時にパラメータとして渡します(例:私は自分のインジェクトパスワード値を$ {db_password}として定義しました)。

そして、これは期待どおりに機能しています。ジョブの実行中に渡すパスワードは[*******]として来ています

[コンソールログ:Mavenの実行:-B -f /work/jenkins_data/workspace/S2/database-deployment-via-flyway-EDOS/pom.xml clean compile -Ddb = UAT_cms_core -DdatabaseSchema = cms-core -Dmode = info- DdeploymentVersion = 1.2.9 -Ddb_user = DB_USER -Ddb_password = [*******]]

0
RohitLucky