Jenkins用のPassword Manager Pro プラグイン

Jenkins は、ソフトウェア プロジェクトを継続的に構築およびテストするために DevOps 環境で広く使用されている、Java ベースの主要なオープン ソース自動化ツールです。ソフトウェアの構築、テスト、配信または展開に関連する SDLC タスクは、Jenkins で[ジョブ]と呼ばれる自動化スケジュールとして作成できます。これらの[ジョブ]の実行には、多くの場合、ユーザーの認証情報や、特権パスワード、API キー、他のシステムやサービスと接続するためのアクセス トークンなどの同様の機密情報が必要です。ほとんどの DevOps 環境では、このような認証情報は Jenkins サーバーのプレーン テキスト ファイル内に保存されるため、セキュリティと管理に関する多くの問題が発生する可能性があります。

Jenkins でのシークレット管理用に開発された Password Manager Pro プラグインは、組織の DevOps パイプラインのセキュリティの向上に役立ちます。このプラグインを Jenkins で有効にすると、ジョブが実行されるたびに、必要な資格情報がスクリプト ファイル内のプレーン テキストに埋め込まれるのではなく、Password Manager Pro のVaultから取得されるようになります。安全に取得すると、ビルドのアクティブ化のためにリモート サーバーに接続するなど、認証情報を環境変数で使用できます。また、このプラグインにより、ユーザーは、更新があるたびにスクリプト ファイル内のパスワードを手動で更新するという面倒な作業から解放されます。スクリプト ファイル内のパスワードが古いために、ユーザーがターゲット アプリケーションまたはサーバーからロックアウトされ、ジョブを実行できない場合がよくあります。Password Manager Pro に保存された認証情報は定期的にローテーションされ、それぞれのリモート デバイスでも更新されるため、ジョブの実行中に最新のパスワードのみがVaultから取得されるようになります。現在、このプラグインはジョブ レベルでのシークレット管理、つまりフリースタイル プロジェクト ジョブに使用できます。

Jenkins でのシークレット管理に Password Manager Pro プラグインを使用する方法の詳細については、さらに以下をお読みください:

  1. Password Manager ProでのJenkins連携の有効化
  2. Jenkins での Password Manager Pro プラグインのインストールと有効化
  3. Jenkins の Freestyle プロジェクト ジョブ用に Password Manager Pro からパスワードを取得
  4. 利用可能なPassword Manager Pro属性のリスト

1.Password Manager ProでのJenkins連携の有効化

  1. Password Manager Pro にログインし、[管理]>>[連携]>>[CI/CD プラットフォーム連携]>>[Jenkins]に移動します。
  2. AUTHトークン: [生成]をクリックして、AUTHトークンを自動的に入力します。これは、後で Jenkins のコンソールでプラグインを構成するときに必要になります。セットアップが完了すると、Jenkins からのすべての受信接続は、この AUTH トークンを使用して Password Manager Pro によって検証されます。
  3. ユーザー名: ここで、アクティブな Password Manager Proのログインユーザー名を入力します。このユーザーのアカウントは、Password Manager Pro のVaultから必要なパスワードを安全に取得するために Jenkins によって自動的に使用されます。
  4. 重要: 指定するユーザー アカウントに、このワークフローに必要な最小限の権限 (Jenkins が接続する必要があるリソースのパスワードを表示/取得する権限) があることを確認してください。

  5. [有効化]をクリックします。
  6. 注:Jenkins には複数のインスタンスがある可能性があるため、Jenkins 要求に対してホスト名のチェックは無効になります。

2.Jenkins での Password Manager Pro プラグインのインストールと有効化

Jenkins のコンソールで実行される次のアクションには、ツールのプラグインを管理する権限を持つユーザー役割が必要です。

2.1 プラグインのインストール

  1. まず、ここからプラグインをダウンロードします。
  2. Jenkins のコンソールを開き、[Jenkins の管理] >> [プラグインの管理] >> [詳細]に移動します。
  3. [プラグインのアップロード] セクションで、プラグイン ファイルをアップロードします。
  4. さらに、Jenkins は接続を確立する際に、Password Manager Pro インストールの SSL 証明書も必要とします。したがって、SSL 証明書を Jenkins のキーストアに追加する必要があります。以下のコマンドを使用して SSL 証明書を追加します。

    keytool -import -trustcacerts -keystore <<PATH_TO_JENKINS_JAVA_KEYSTORE>> -alias <<ALIAS_NAME>> -import <<PATH_TO_PMP_SSL_CERTIFICATE>>

  5. インストール後、Jenkins サーバーを再起動して変更を適用します。

2.2 プラグインの有効化

  1. [Jenkins の管理] >> [システムの構成] に移動します。
  2. 読み込まれる UI で、下にスクロールして、Password Manager Pro プラグイン セクションを見つけます。
    1. PMP URL: Https://<hostname>:<portnumber> の形式で、Password Manager Pro インスタンスの URL を入力します。
    2. PMP AUTHトークン: ここで、Password Manager Pro のインターフェイスで前に生成した AUTH トークンをコピーして貼り付けます。プラグインの設定とパスワードの取得を正常に行うには、Password Manager Pro と Jenkins の両方の AUTH トークン エントリが常に一致する必要があることに注意してください。
    3. 変更を保存して有効にし、Jenkins で Password Manager Pro プラグインの使用を開始します。

3.Jenkins の Freestyle プロジェクト ジョブ用に Password Manager Pro からパスワードを取得

現時点では、このプラグインを使用して、Jenkins のフリースタイル プロジェクト ジョブに必要な認証情報を Password Manager Pro から取得できます。これには、ジョブの構成時にリソース名、アカウント名、パスワードなどのさまざまな Password Manager Pro 属性を追加する必要があります。ジョブ レベルでこの属性を設定すると、これらの Password Manager Pro 属性の値は、ジョブの実行中に環境変数として使用できるようになります。Jenkins が特定のパスワードを取得するために Password Manager Pro に接続するとき、環境変数は、前者が後者の必要な値を識別する方法になります。以下に、関連するアクションを段階的に説明します。

  1. 特定のフリースタイル プロジェクト ジョブを作成すると、そのジョブの [ビルド環境] セクションで、そのジョブに Password Manager Pro プラグインを使用するオプションが表示されます。
  2. [Password Manager Pro (PMP) プラグインで資格情報を管理]の横のチェックボックスをオンにし、[アカウントの追加]をクリックします。
  3. [リソース名]フィールドと[アカウント名]フィールドに、Jenkins が Password Manager Pro から取得するリソースとそのアカウントのそれぞれの名前を指定します。
  4. 次のステップでは、変数と属性のペアを作成します。これを使用して、Jenkins は Password Manager Pro から必要な値を取得します。ペアを作成するには、まず以下に示す利用可能な Password Manager Pro 属性のリストを参照し、[Password Manager Pro 属性]フィールドに必要な属性を指定します。次に、環境変数に希望の名前を追加します。これには、対応する Password Manager Pro 属性の値が自動的に割り当てられます。
  5. [変数/属性ペアの追加]をクリックして、同様の方法で必要なすべてのPassword Manager Pro属性を含め、構成を保存します。これで、プラグインを Jenkins で使用できるようになりました。

4.利用可能なPassword Manager Pro属性のリスト

  • RESOURCE_NAME
  • RESOURCE_DESCRIPTION
  • OPERATINGSYSTEM
  • DNSNAME
  • DEPARTMENT
  • LOCATION
  • RESOURCE_URL
  • ACCOUNTNAME
  • NOTES
  • PASSWORD
  • ファイルベースの追加フィールドを除く、リソースレベルおよびアカウントレベルの追加フィールド。