Hashicorp Vault
Keeperシークレットマネージャーと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のドキュメントをご参照ください
以下のKSM GitHubのページから最新のインテグレーションリリースをダウンロードします。
一覧からご利用のプラットフォームに適合するvault-pluginのリリースを探します。
プラグインを解凍し、HashiCorp Vaultのpluginsディレクトリに配置します。 この例では、フォルダはC:\vault\plugins
(Windows) または/etc/vault/vault_plugins
(MacOS/ Linux) にあります。
プラグインをテストしたり、迅速な開発を可能にしたりするために、開発モードを使用して、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
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:[username@email.com]] map[type:password value:[Pd08fi@1]]]
notes Example Login Record
title Sample KSM Record
type login
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> data=@update.json
この例では、更新データをファイルから渡しています。CLIコマンドをより簡潔でわかりやすくするために、この方法が推奨されます。JSONデータをコマンドライン上で直接渡すことも可能ですが、その場合は引用符をエスケープする必要があります。
データファイルの例:
{
"fields": [
{
"type": "login",
"value": [
"username@email.com"
]
},
{
"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> data=@data.json
この例では、更新データをファイルから渡しています。CLIコマンドをより簡潔でわかりやすくするために、この方法が推奨されます。JSONデータをコマンドライン上で直接渡すことも可能ですが、その場合は引用符をエスケープする必要があります。
データファイルの例:
{
"fields": [
{
"type": "login",
"value": [
"username@email.com"
]
},
{
"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