Hashicorp Vault

KeeperシークレットマネージャーとHashiCorp Vaultを連携させてデータソースとして使用

概説

KeeperシークレットマネージャーとHashiCorp Vaultの連携により、KeeperボルトのシークレットをHashiCorp Vaultのデータストアとして使用できます。

機能

  • HashiCorp Vaultスクリプトとコマンドを使用して、Keeperボルトのシークレットを使用します

  • HashiCorp Vaultを使用してシークレット情報を読み取ります

  • HashiCorp Vaultからシークレット情報を更新します

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

要件

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

インストール

1. シークレットマネージャープラグインのダウンロード

以下のKSM GitHubのページから最新のインテグレーションリリースをダウンロードします。

シークレットマネージャーリリース

一覧からご利用のプラットフォームに適合するvault-pluginのリリースを探します。

プラグインを解凍し、HashiCorp Vaultのpluginsディレクトリに配置します。 この例では、フォルダはC:\vault\plugins (Windows) または/etc/vault/vault_plugins (MacOS/ Linux) にあります。

2. HashiCorp Vaultにプラグインを登録

開発モード

プラグインをテストしたり、迅速な開発を可能にしたりするために、開発モードを使用して、HashiCorp Vault CLIをすばやく起動できます。

HashiCorp Vaultを開発モードで起動

シークレットマネージャープラグインを有効化

本番モード

本番環境に移行する準備ができたら、プラグインのSHA256ハッシュを使用して、プラグインを登録します。

シークレットマネージャープラグインの登録と有効化

SHA256ハッシュの生成

本番環境のHashiCorp Vaultサーバーでプラグインを有効にするには、プラグインファイルのハッシュが必要です。このハッシュは、シークレットマネージャープラグインに対して生成できます。

Windows 7以降の環境には、SHA256ハッシュを生成するための組み込みツールとして CertUtil が含まれています。以下は、CertUtilを使ってSHAハッシュを生成する方法の例です。ただし、SHA256形式でファイルのハッシュを生成できるツールであれば、他のツールを使用しても問題ありません。

3. シークレットマネージャー接続の構成

HashiCorp Vaultプラグインがインストールされたので、シークレット認証情報へアクセスできるよう、Keeperボルトとのセキュアな接続を確立します。この接続を作成するには、シークレットマネージャー構成を作成し、それをプラグインに割り当てる必要があります。

シークレットマネージャー構成を作成

シークレットマネージャーの構成は、KeeperコマンダーまたはシークレットマネージャーCLIを使用して作成できます。構成の作成方法については、構成のページをご参照ください。

構成が生成されたら、その内容をVaultプラグインで使用するために変数に設定します。

プラグインの使用

シークレットを一覧表示

レコードは以下の形式で表示されます。

例:

個々のシークレットを取得

例:

TOTPコードの読み取り

例:

シークレットを更新

既存のシークレットを更新するには、以下のコマンドを使用して、更新されたシークレットの情報を表すJSONデータを渡します。 Keeperボルト内の対応するレコードは、渡されたJSONデータと一致するように更新されます。

この例では、更新データをファイルから渡しています。CLIコマンドをより簡潔でわかりやすくするために、この方法が推奨されます。JSONデータをコマンドライン上で直接渡すことも可能ですが、その場合は引用符をエスケープする必要があります。

データファイルの例:

ヒント 以下のコマンドを使用して、シークレットの現在の値をJSON形式で確認できます。 vault read -field=data -format=json ksm/record uid=<UID>

シークレットの作成

シークレットの更新と同様に、次のコマンドにJSONデータを渡して新しいシークレットを作成します。

この例では、更新データをファイルから渡しています。CLIコマンドをより簡潔でわかりやすくするために、この方法が推奨されます。JSONデータをコマンドライン上で直接渡すことも可能ですが、その場合は引用符をエスケープする必要があります。

データファイルの例:

シークレットの削除

最終更新