Jenkins用PAM360プラグイン

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

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

Jenkinsでのシークレット管理用PAM360プラグインの使用方法は、詳細をお読みください:

  1. Jenkins統合をPAM360で有効化
  2. PAM360プラグインをJenkinsにインストールおよび鵜有効化
  3. Jenkinsのフリースタイルプロジェクトジョブ用にパスワードをPAM360から取り込む
  4. 利用可能なPAM360属性のリスト

1.Jenkins統合をPAM360で有効化

  1. PAM360にログインし、[管理者] >> [統合] >> [CI/CDプラットフォーム統合] >> [Jenkins]の順に移動します。
  2. 認証トークン: [生成]をクリックして、認証トークンを自動的に入力します。これは、後で Jenkins のコンソールでプラグインを構成するときに必要になります。セットアップが完了したら、Jenkinsからのすべての着信接続は、認証トークンを使って、PAM360に認証されます。
  3. ユーザー名: ここで、アカウントがJenkinsにより自動的に使用され、PAM360のVaultから必要なパスワードを安全に取り込むアクティブPAM360ユーザーのユーザー名を入力します。

    注記: 指定するユーザー アカウントに、このワークフローに必要な最小限の権限 (Jenkins が接続する必要があるリソースのパスワードを表示/取得する権限) があることを確認してください。

  4. [有効化]をクリックします。

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

2.PAM360プラグインをJenkinsにインストールおよび鵜有効化

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

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

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

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

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

2.2 プラグインの有効化

  1. [Jenkins の管理] >> [システムの構成] に移動します。
  2. 取り込まれるUIで、 PAM360プラグインセクションにスクロールダウンして特定します。
    1. PAM360 URL: URLをPAM360インスタンスに、形式https://<hostname>:<portnumber>で入力します
    2. PAM360認証トークン: ここで、PAM360のインターフェイスで先に生成された認証トークンをコピーして貼り付けます。プラグイン構成とパスワード取り込みが正常に行われるには、PAM360とJenkinsの両方の認証トークンは常に一致する必要がありますので、注意してください。
    3. 変更を保存して、PAM360プラグインをJenkinsで有効化して使用を開始します。

3.Jenkinsのフリースタイルプロジェクトジョブ用にパスワードをPAM360から取り込む

現在、プラグインは、PAM360からJenkinsのフリースタイルプロジェクトジョブ用に必要な認証情報を取り込むのに使用できます。これには、ジョブ構成中にリソース名、アカウント名、およびパスワード等、各種のPAM360属性の追加が必要です。ジョブレベルでのこの属性構成時、これらのPAM360属性の値は、ジョブ実行中、「環境変数」として利用できます。JenkinsがPAM360に接続され、個別パスワードを取り込むとき、環境変数は、前者が後者の必要値を識別する方法になります。以下に、関連するアクションを段階的に説明します:

  1. 個別フリースタイルプロジェクトジョブを作成したら、「環境構築」セクションにそのジョブのPAM360プラグインを使用するオプションがあります。
  2. [PAM360 Pluginプラグインで認証情報を管理]の横のチェックボックスを有効にして、[アカウントを追加]をクリックします。
  3. リソース名アカウント名フィールドで、JenkinsがPAM360から取り込むリソースとアカウントの各名前を指定します。
  4. 次の手順では、JenkinsがPAM360から必要値を取り込むのに使う変数・属性ペアを作成します。ペアを作成するには、初めに、下に与えられた利用可能なPAM360属性のリストを参照し、PAM360属性フィールドで必要な属性を指定します。次に、対応するPAM360属性の値が自動的に割り当てられる環境変数,に、必要な名前を追加します。
  5. [変数/属性ペアを追加]をクリックし、すべてのPAM360属性を同様な形で含め、続いて、その構成を保存します。これで、プラグインを Jenkins で使用できるようになりました。

4.利用可能なPAM360属性のリスト

  • RESOURCE_NAME
  • RESOURCE_DESCRIPTION
  • オペレーティングシステム
  • DNS名
  • 部門
  • 場所
  • RESOURCE_URL
  • アカウント名
  • 注記
  • パスワード
  • ファイルベースの追加フィールドを除く、リソースレベルおよびアカウントレベルの追加フィールド。