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

概説
KeeperシークレットマネージャーとHashiCorp Vaultの連携により、KeeperボルトのシークレットをHashiCorp Vaultのデータストアとして使用できます。
機能
HashiCorp Vaultスクリプトとコマンドを使用して、Keeperボルトのシークレットを使用します
HashiCorp Vaultを使用してシークレット情報を読み取ります
HashiCorp Vaultからシークレット情報を更新します
要件
この統合機能を利用するには以下が必要となります。
Keeperシークレットマネージャーへのアクセス (詳しくはクイックスタートガイドをご参照ください)
Keeperサブスクリプションのシークレットマネージャーアドオンの有効化
シークレットマネージャー関連ポリシーが有効化されたロールのメンバーシップ
シークレットを共有するKeeperシークレットマネージャーアプリケーション
アプリケーションの作成手順については、クイックスタートガイドをご参照ください
Keeperシークレットマネージャー構成の初期化
HashiCorp Vault連携では、Base64形式の設定を使用できます
HashiCorp Vaultコマンドライン、およびVaultサーバーの稼働
インストール方法は、HashiCorp Vaultのドキュメントをご参照ください
インストール
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を開発モードで起動
vault server -dev -dev-plugin-dir=C:\vault\plugins
シークレットマネージャープラグインを有効化
vault secrets enable -path=ksm vault-plugin-secrets-ksm.exe
HashiCorp Vault CLI開発モードでは、揮発性インメモリストレージを利用します。 Keeperボルトのシークレットに対して実行されるアクションはすべて即時に実行されますが、HashiCorp Vaultを開発モードで起動するたびにプラグインを再度有効にする必要があります。
本番モード
本番環境に移行する準備ができたら、プラグインのSHA256ハッシュを使用して、プラグインを登録します。
シークレットマネージャープラグインの登録と有効化
vault plugin register -command=vault-plugin-secrets-ksm.exe -sha256=<SHA256> secret vault-plugin-secrets-ksm
vault secrets enable -path=ksm vault-plugin-secrets-ksm
SHA256ハッシュの生成
本番環境のHashiCorp Vaultサーバーでプラグインを有効にするには、プラグインファイルのハッシュが必要です。このハッシュは、シークレットマネージャープラグインに対して生成できます。
Windows 7以降の環境には、SHA256ハッシュを生成するための組み込みツールとして CertUtil が含まれています。以下は、CertUtilを使ってSHAハッシュを生成する方法の例です。ただし、SHA256形式でファイルのハッシュを生成できるツールであれば、他のツールを使用しても問題ありません。
CertUtil -hashfile C:\vault\plugins\vault-plugin-secrets-ksm.exe SHA256
3. シークレットマネージャー接続の構成
HashiCorp Vaultプラグインがインストールされたので、シークレット認証情報へアクセスできるよう、Keeperボルトとのセキュアな接続を確立します。この接続を作成するには、シークレットマネージャー構成を作成し、それをプラグインに割り当てる必要があります。
シークレットマネージャー構成を作成
シークレットマネージャーの構成は、KeeperコマンダーまたはシークレットマネージャーCLIを使用して作成できます。構成の作成方法については、構成のページをご参照ください。
構成が生成されたら、その内容をVaultプラグインで使用するために変数に設定します。
vault write ksm/config ksm_config=<BASE64_CONFIG...>
プラグインの使用
シークレットを一覧表示
vault list ksm/records
レコードは以下の形式で表示されます。
Keys
----
UID RECORDTYPE:RECORDTITLE
例:
C:\Vault> vault list ksm/records
Keys
----
Hf6of4uo_2aD7IMjn4VPuA login: My Record
Lv3B9ObAjxdpdBl0IJ3oow folder:4 record(s)
Oq3fFu14hZY00d7sp3EYNA MyCustomType: My New Record (Custom record type)
YDx58Q94dE1k9B367ZVz1w databaseCredentials: MySQL Credentials
qe3EWYn840uR0bOMyZ2b0Q login: Dropbox Login
個々のシークレットを取得
vault read ksm/record uid=<UID>
例:
C:\Vault> vault read ksm/record uid=Hf6r5Zuo_2aD7IMjn4VPuA
Key Value
--- -----
fields [map[type:login value:[[email protected]]] map[type:password value:[Pd08fi@1]]]
notes Example Login Record
title Sample KSM Record
type login
TOTPコードの読み取り
vault read ksm/record/totp uid=<UID>
例:
C:\Vault> vault read ksm/record/totp uid=32t82-oRu-79yplIAZ6jmA
Key Value
--- ---
TOTP [map[token:392528 ttl:22 url:otpauth://totp/Generator:?secret=JBSWY3DPEZAK3PXP&issuer=Generator&algorithm=SHA1&digits=6&period=30]]
UID 32t82-oRu-79yplIAZ6jmA
シークレットを更新
既存のシークレットを更新するには、以下のコマンドを使用して、更新されたシークレットの情報を表すJSONデータを渡します。 Keeperボルト内の対応するレコードは、渡されたJSONデータと一致するように更新されます。
vault write -format=json ksm/record uid=<UID> [email protected]
この例では、更新データをファイルから渡しています。CLIコマンドをより簡潔でわかりやすくするために、この方法が推奨されます。JSONデータをコマンドライン上で直接渡すことも可能ですが、その場合は引用符をエスケープする必要があります。
データファイルの例:
{
"fields": [
{
"type": "login",
"value": [
"[email protected]"
]
},
{
"type": "password",
"value": [
"kjh4j3245DCD!d"
]
}
],
"notes": "\tThis record was updated with the Vault KSM plugin",
"title":"Sample Updated Record",
"type": "login"
}
シークレットの作成
シークレットの更新と同様に、次のコマンドにJSONデータを渡して新しいシークレットを作成します。
vault write -format=json ksm/record/create folder_uid=<UID> [email protected]
この例では、更新データをファイルから渡しています。CLIコマンドをより簡潔でわかりやすくするために、この方法が推奨されます。JSONデータをコマンドライン上で直接渡すことも可能ですが、その場合は引用符をエスケープする必要があります。
データファイルの例:
{
"fields": [
{
"type": "login",
"value": [
"[email protected]"
]
},
{
"type": "oneTimeCode",
"value": [
"otpauth://totp/Generator:?secret=JBSWY3JP9HPK3PXP\u0026issuer=Generator\u0026algorithm=SHA1\u0026digits=6\u0026period=30"
]
}
],
"notes": "\tExample Record wth TOTP",
"title":"Sample TOTP SECRET",
"type": "login"
}
シークレットの削除
vault delete ksm/record uid=Oq3fFu14hZY00d7sp3EYNA
最終更新