Jenkinsプラグイン

Keeper Secrets ManagerのJenkinsへの統合によるシークレットの動的な取得

機能

  • Jenkinsを使用して、Keeperボルトからシークレットを取得します。

  • Jenkins FreestyleプロジェクトまたはJenkins PipelineプロジェクトとKeeperシークレットマネージャーを連携して使用します。

  • Keeperボルトからファイルを取得します。

Keeperシークレットマネージャー機能の完全なリストについては、概要をご参照ください。

要件

この統合を利用するには、以下が必要となります。。。

概説

Keeperシークレットマネージャー用のJenkinsプラグインを使用すると、Keeperボルトからシークレットを取得し、ビルドパイプラインおよびワークフローパイプライン内の環境変数またはファイルに値を格納できます。

インストール

Keeperシークレットプラグインは、Jenkinsで利用できるプラグインのリストから選んでインストールできます。Jenkins内で、[Manage Jenkins] (Jenkinsの管理) -> [Manage Plugins] (プラグインの管理) -> [Available] (インストール可能) に移動します。検索バーを使用して「Keeper Secrets Manager」を検索し、プラグインを見つけます。[Install] (インストール) チェックボックスをオンにして、インストールボタンをクリックします。Jenkinsをすぐに再起動するか、後にしてインストールを完了するかを選択できます。Jenkinsを再起動すると、プラグインが使用できるようになります。

ソースコード

GitHubリポジトリでKeeper Secrets Manager Jenkinsプラグインのソースコードを検索します。

シークレットマネージャークライアントの作成

まだの場合は、クイックスタートガイドをご参照の上、Jenkins専用のシークレットマネージャーアプリケーションとクライアントデバイスを作成してください。

Keeperコマンダーを使用して、Jenkins用のクライアントデバイスを生成します。ワンタイムアクセストークンをメモします。

Jenkinsにクレデンシャルを追加

プラグインを使用する最初の手順は、ワンタイムアクセストークンからJenkinsのクレデンシャルを作成することです。

Jenkins内で、[Manage Jenkins] (Jenkinsの管理) > [Manage Credentials] (クレデンシャルの管理) > [Scope] (スコープ) > [Add Credentials] (クレデンシャルの追加) に移動し、[Kind] (種類) のドロップダウンで[Keeper Secrets Manager]を選択します。以下のようなフォームが表示されます。

クレデンシャルがJenkinsの他の領域で見つけやすくなるように、クレデンシャルの[Description] (説明) を設定します。

ワンタイムアクセストークンをフォームフィールドに貼り付けて保存します。

初回接続

クレデンシャルを保存すると、JenkinsサーバーがKeeperシークレットマネージャーサービスに接続し、ワンタイムアクセストークンを初期化します。続いて、以降のリクエストに備えて、必要な暗号化鍵とクライアント識別子をJenkins内に格納します。この時点で、ワンタイムアクセストークンフィールドは消去されます。

ワンタイムアクセストークンの初期化に問題があった場合は、エラーメッセージがフィールドに表示されます。Jenkinsのクレデンシャルは、エラーがない状態になるまで使用できません。新しいワンタイムアクセストークンを作成して、クレデンシャルの既存の情報を置き換えることができます。コマンダーを使用して新たなトークンを作成し、それを[Token] (トークン) フィールドに貼り付けてて保存します。

クライアントID、秘密鍵、アプリキーは閲覧できなくなります。[Replace Keys...] (鍵の置換) ボタンをクリックすると、既存の設定から鍵を置き換えることができます。

[Replace] (置換) ボタンをクリックすると、既存の設定からJenkinsに値をカットアンドペーストできます。次に、[Validate Credential] (クレデンシャルの検証) ボタンをクリックして、IDと鍵を検証できます。

使用例: フリースタイルプロジェクト

フリースタイルプロジェクトの場合、環境変数の挿入はビルドステップを介して行われます。

[Add build step] (ビルドステップの追加) ドロップダウンで、[Keeper Secrets Manager]を選択します。

[Credential] (クレデンシャル) ドロップダウンで、前の手順で作成したKeeperシークレットマネージャーのクレデンシャルを選択します。

Keeper表記法を使用すると、環境変数はKeeperボルト内のレコードから一致する値に自動的に置き換えられます。Keeperボルト内のシークレットに含まれるログイン、パスワード、カスタムフィールド、ファイル名など、任意のフィールドを参照できます。

次に、シークレットの代入先を選択します。シークレットは、ビルドのワークスペース内の環境変数またはファイルに格納できます。

ビルドステップに複数の環境変数を追加するには、[Add Secret] (シークレットの追加) をクリックし、環境変数と表記法のフィールドに値を入力します。

Keeper表記法

Keeper表記法を使用して、シークレットとして使用するレコードフィールドを選択します。Keeper表記法では以下の形式を使用します。

keeper://<レコードUID>/field/<フィールド名>

ここで、「レコードUID」は、フィールドとしてシークレットのクレデンシャルを含むレコードのUIDであり、「フィールド名」は、クレデンシャルが「パスワード」などとして格納されるフィールドです。

例: keeper://3FXqmP5nFKwju0H8pl0DmQ/field/password

レコードUIDは、Keeperコマンダーまたはウェブボルトユーザーインターフェース内で確認できます。

シークレットの使用

設定された環境変数は、以下のビルドステップで使用できます。Keeper Secrets Managerステップを新たに追加し、別のアカウントまたはアプリケーションからシークレットを選択することもできます。

環境変数は、シェルの実行ステップで使用および表示できます。以下に例を示します。

上記では、環境変数MY_LOGINはアプリケーションmy_appにパラメータとして渡されますが、echo命令文はコンソールに「****」というテキストを出力します。テキストベースのシークレットは、コンソールで自動的に編集されます。

使用例: パイプライン連携 (ワークフロー)

Keeperシークレットマネージャープラグインでは、以下のようにwithKsmラベルの付いたステップを使用するJenkinsfileファイル内で使用できます。

Keeperシークレットマネージャーのスニペットは、Jenkins内のパイプライン構文スニペット生成ツールを使用して作成できます。[Sample Step] (サンプルステップ) ドロップダウンから[withKsm]を選択して、Keeperシークレットマネージャーアプリケーションを追加します。これでクレデンシャルを選択してシークレットを追加できるようになります。

アプリケーション、クレデンシャル、シークレットの設定が完了したら、[Generate Pipeline Script] (パイプラインスクリプトの生成) をクリックしてwithKsmブロックを生成できます。これで、このスニペットをJenkinsfileに追加できます。

シークレットを含む環境変数は、それらが定義されているwithKsmブロック内でのみアクセスできます。ブロックを終了すると、シークレットにアクセスできなくなります。

最終更新