LogoLogo
KeeperPAMとシークレットマネージャー
KeeperPAMとシークレットマネージャー
  • KeeperPAM
  • 特権アクセス管理
    • セットアップ手順
    • クイックスタート (Sandbox)
    • はじめに
      • アーキテクチャ
        • アーキテクチャ図
        • ボルト (保管庫) のセキュリティ
        • ルータのセキュリティ
        • ゲートウェイのセキュリティ
        • 接続とトンネルのセキュリティ
      • KeeperPAMのライセンス
      • 強制適用ポリシー
      • ボルトの構造
      • レコードリンク
      • アプリケーション
      • デバイス
      • ゲートウェイ
        • ゲートウェイの作成
        • Dockerにインストール
        • Linuxにインストール
        • Windowsにインストール
        • 自動アップデータ
        • 高度な設定
          • AWS KMSでのゲートウェイ構成
          • カスタムフィールドを使用したゲートウェイ構成
      • PAM構成
        • AWS環境のセットアップ
        • Azure環境のセットアップ (英語)
        • ローカル環境のセットアップ (英語)
      • PAMリソース (英語)
        • PAMマシン (英語)
          • 例: Linuxマシン (英語)
          • 例: Azure仮想マシン (英語)
        • PAMデータベース (英語)
          • 例: MySQLデータベース (英語)
          • 例: PostgreSQLデータベース (英語)
          • 例: Microsoft SQL Serverデータベース (英語)
        • PAMディレクトリ (英語)
        • PAMリモートブラウザ (英語)
        • PAMユーザー (英語)
      • 共有とアクセス制御 (英語)
      • ジャストインタイムアクセス (JIT) (英語)
    • パスワードローテーション
      • ローテーションの概要
      • ローテーションの活用事例
        • Azure
          • Azure ADユーザー
          • Azure VMユーザーアカウント
          • Azureマネージドデータベース
            • Azure SQL
            • Azure MySQL - シングル/フレキシブルデータベース
            • Azure MariaDBデータベース
            • Azure PostgreSQL - シングル/フレキシブルデータベース
          • Azureアプリケーションシークレットローテーション
        • AWS
          • IAMユーザーのパスワード
          • Managed Microsoft ADユーザー
          • EC2仮想マシンユーザー
          • IAMユーザーのアクセスキー
          • マネージドデータベース
            • AWS RDS for MySQL
            • AWS RDS for SQL Server
            • AWS RDS for PostgreSQL
            • AWS RDS for MariaDB
            • AWS RDS for Oracle
        • ローカルネットワーク
          • Active DirectoryやOpenLDAPユーザー
          • Windowsユーザー
          • Linuxユーザー
          • macOSユーザー
          • データベース
            • ネイティブMySQL
            • ネイティブMariaDB
            • ネイティブPostgreSQL
            • ネイティブMongoDB
            • ネイティブMS SQL Server
            • ネイティブOracle
        • SaaSアカウント
          • Oktaユーザー
          • Snowflakeユーザー
          • REST APIを使用した認証情報のローテーション (英語)
        • ネットワークデバイス
          • Cisco IOS XE
          • Cisco Meraki
      • サービス管理
      • ポストローテーションスクリプト
        • 入力と出力
        • スクリプトの添付
        • コード例
    • 接続
      • はじめに
      • セッションプロトコル
        • SSH接続
        • RDP接続 (英語)
        • RBI接続 (英語)
        • MySQL接続 (英語)
        • SQL Server接続 (英語)
        • PostgreSQL接続 (英語)
        • VNC接続 (英語)
        • Telnet接続 (英語)
      • 具体例 (英語)
        • SSHプロトコル - Linuxマシン (英語)
        • RDPプロトコル - Azure仮想マシン (英語)
        • MySQLプロトコル - MySQLデータベース (英語)
        • PostgreSQLプロトコル - PostgreSQLデータベース (英語)
    • トンネル
      • トンネルの設定
    • リモートブラウザ分離
      • RBI (リモートブラウザ分離) の設定
        • URLパターンとリソースURLパターン
        • ブラウザの自動入力
    • セッションの録画と再生
    • SSHエージェント
      • Gitとの統合
    • 検出
      • コマンダーを使用した検出 (英語)
      • ボルトを使用した検出 (英語)
    • オンプレミス用コネクションマネージャー
    • 参考資料
      • ポートマッピング
      • SSHの設定
      • WinRMを設定
      • SQL Serverの設定 (英語)
      • Linuxへのsqlcmdのインストール (英語)
      • LinuxでのDockerインストール
      • ローテーション用のKSMアプリの作成
      • Active Directoryの最小権限
      • イベントレポート
      • PAMレコードのインポート
      • CLIによるローテーション管理
      • Commander SDK
      • Cron式で自動ローテーション設定
      • プレビュー版へのアクセス方法
  • エンドポイント特権マネージャー
    • 概要
  • セットアップ
  • デプロイメント (展開)
  • ポリシー
  • リクエストの管理
  • よくある質問
  • シークレットマネージャー
    • 概要
    • クイックスタートガイド
    • Keeperシークレットマネージャー (KSM) について
      • アーキテクチャ
      • 用語
      • セキュリティと暗号化モデル
      • ワンタイムアクセストークン
      • Secrets Managerの設定
      • Keeper表記法
      • イベントレポート
      • フィールド/レコードタイプ
    • シークレットマネージャーCLI
      • profileコマンド
      • initコマンド
      • secretコマンド
      • folderコマンド
      • syncコマンド
      • execコマンド
      • configコマンド
      • versionコマンド
      • 各種コマンド
      • Dockerコンテナ
      • カスタムのレコードタイプ
    • パスワードローテーション
    • 開発者用SDK
      • Python SDK
      • Java/Kotlin SDK
        • レコードフィールドクラス
      • JavaScript SDK
      • .NET SDK
      • Go SDK
        • レコードフィールドクラス
      • PowerShell
      • ボルトのSDK
    • インテグレーション
      • Ansible
        • Ansibleプラグイン
        • Ansible Tower
      • AWS CLI認証プロセス
      • AWSシークレットマネージャー同期
      • AWS KMSでの暗号化
      • Azure DevOps拡張機能
      • Azure Key Vaultとの同期
      • Azure Key Vaultでの暗号化
      • Bitbucketプラグイン
      • Dockerイメージ
      • Dockerランタイム
      • Docker Writerイメージ
      • Entrust HSM
      • Git - SSHでコミットに署名
      • GitHub Actions
      • GitLab
      • GCPシークレットマネージャー
      • Google Cloud Key Management Encryption (英語)
      • Hashicorp Vault
      • Heroku
      • Jenkinsプラグイン
      • Keeper Connection Manager
      • Kubernetes外部シークレットオペレータ
      • Kubernetes
      • Linux Keyring
      • Octopus Deploy
      • Oracle Key Vault Encryption (英語)
      • PowerShellプラグイン
      • ServiceNow
      • TeamCity
      • Teller
      • Terraformプラグイン
        • Terraformレジストリ
      • Windows資格情報マネージャー
      • XSOAR
    • トラブルシューティング
  • コマンダーCLI
    • コマンダーの概要
    • インストールとセットアップ
      • WindowsでのCLIインストール
      • MacでのCLIインストール
      • LinuxでのCLIインストール
      • Python開発者用セットアップ
      • .NET開発者用セットアップ
      • PowerShellモジュール
      • ログイン
      • 設定と使用法
        • AWS Secrets Manager
        • AWS Key Management Service
      • Windowsタスクによる自動化
      • AWS Lambdaで自動化
      • アンインストール
    • コマンドリファレンス
      • データのインポートとエクスポート
        • インポート/エクスポートコマンド
        • CyberArkからのインポート
        • LastPassデータのインポート
        • Delinea/Thycotic Secret Serverインポート
        • Keepassインポート
        • ManageEngineインポート
        • Mykiインポート
        • Proton Passインポート
        • CSVインポート
        • JSONインポート
      • レポート作成コマンド
        • レポートの種類
      • エンタープライズ管理コマンド
        • ユーザーの作成と招待
        • コンプライアンスコマンド
        • Breachwatchコマンド
        • SCIMプッシュ配信設定
      • レコードに関するコマンド
        • レコードタイプに関するコマンド
        • レコードタイプの作成
      • 共有コマンド
      • KeeperPAMコマンド
      • 接続コマンド
        • SSH
        • SSHエージェント
        • RDP
        • connectコマンド
        • SFTP同期
      • シークレットマネージャーコマンド
      • MSP管理コマンド
      • 各種コマンド
      • パスワードローテーション
        • パスワードローテーションコマンド
        • AWSプラグイン
        • Azureプラグイン
        • Microsoft SQL Serverのプラグイン
        • MySQLプラグイン
        • Oracleプラグイン
        • PostgreSQLプラグイン
        • PSPasswdプラグイン
        • SSHプラグイン
        • Unix Passwdプラグイン
        • Windowsプラグイン
        • Active Directoryプラグイン
        • 自動実行
    • サービスモードREST API
    • トラブルシューティング
GitBook提供
このページ内
  • 機能
  • 要件
  • 概説
  • インストール
  • ソースコード
  • シークレットマネージャークライアントの作成
  • Jenkinsにクレデンシャルを追加
  • 使用例: フリースタイルプロジェクト
  • 使用例: パイプライン連携 (ワークフロー)
GitHubで編集
  1. シークレットマネージャー
  2. インテグレーション

Jenkinsプラグイン

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

前へHeroku次へKeeper Connection Manager

最終更新 5 か月前

機能

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

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

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

要件

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

    • Keeperアカウントでシークレットマネージャーのアドオンが有効である

    • シークレットマネージャー強制適用ポリシーが有効になっているロールのメンバーシップ

このプラグインではSecureRandomを使用しており、エントロピーが少なすぎるために一部のシステムで速度が低下する可能性があります。 Linuxでは、cat /proc/sys/kernel/random/entropy_availを実行すると、利用可能なエントロピーが表示されます。200未満の場合は、エントロピーを生成するためにrng-toolsのようなソフトウェアが必要になります。

概説

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

インストール

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

Keeperシークレットマネージャープラグインのベータ版がインストールされている場合は、まずそれを削除する必要があります。[Manage Jenkins] (Jenkinsの管理) -> [Manage Plugins] (プラグインの管理) -> [Installed] (インストール済み) のタブで、[Uninstall] (アンインストール) ボタンをクリックします。すでにインストールされている場合は、[Available] (インストール可能) タブには表示されません。

ソースコード

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

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

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

My Vault> secrets-manager client add --app MyApplication

------------------------------------------------------------------
One Time Access Token:XX:XXXXXXXXXXXXX
------------------------------------------------------------------

デフォルトでは、クライアントデバイスはワンタイムアクセストークンを使用する最初のIPアドレスに固定されます。Jenkinsサーバーに複数の外部IPアドレスが設定されている可能性がある場合は、ワンタイムアクセストークンを生成するときに--unlock-ipパラメータを追加してください。

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ステップを新たに追加し、別のアカウントまたはアプリケーションからシークレットを選択することもできます。

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

#!/bin/bash

my_app --login "${MY_LOGIN}"
echo "My Login = ${MY_LOGIN}"

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

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

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

pipeline {
  agent any 
  stages {
    stage('Hello') {
      steps {
        withKsm(application: [
          [
            credentialsId:'5142ceb84e9b4a2a9179cc5b6fe2798b',
            secrets: [
              [destination: 'env', envVar:'MY_LOGIN', filePath: '',
                notation:'1adh_WZxtbbHWqf6IALMVg/field/login'],
              [destination: 'env', envVar:'MY_SEC_PHONE_NUM', filePath: '',
                notation:'Atu8tVgMxpB-iO4xT-Vu3Q/custom_field/phone[1][number]'],
              [destination: 'file', envVar: '', filePath: 'img.png',
                notation:'V8lFbio0Bs0LuvaSD5DDHA/file/IMG_0036.png']
            ]
          ]  
        ]) {
          sh'''
              # Will be redacted in console  
              echo "MY_LOGIN = ${MY_LOGIN}"
              echo "MY_SEC_PHONE_NUM = ${MY_SEC_PHONE_NUM}"

              ./my/build/script --login  "${MY_LOGIN}" --phone "${MY_SEC_PHONE_NUM}"
              file img.png
          '''
        }
      }
    }
  }
}

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

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

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

Keeperシークレットマネージャーへのアクセス (詳細についてはのページをご参照ください)

シークレットを共有するKeeper

アプリケーションの作成手順については、をご参照ください

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

シークレットマネージャーアプリケーションおよびクライアントの作成の詳細については、をご参照ください。

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

概要
クイックスタートガイド
ワンタイムアクセストークン
GitHubリポジトリ
スニペット生成ツール
シークレットマネージャーアプリケーション
クイックスタートガイド
Secrets Managerコマンドのページ