web-dev-qa-db-ja.com

kvを使用しようとすると、Hashicorp Vault CLIが403を返す

領事のクラスターに支えられたボールトをセットアップしました。私はそれをhttpsで保護し、別のマシンでcliを使用してkvエンジンでシークレットを取得および設定しようとしています。 CLIとVaultサーバーの両方のバージョン1.0.2を使用しています。

Rootトークンでログインしたので、すべてにアクセスできるはずです。また、VAULT_ADDRを適切に設定しました。

これが私のリクエストです:

vault kv put secret/my-secret my-value=yea

これが応答です:

Error making API request.

URL: GET https://{my-vault-address}/v1/sys/internal/ui/mounts/secret/my-secret
Code: 403. Errors:

* preflight capability check returned 403, please ensure client's policies grant access to path "secret/my-secret/"

ここで何が起こっているのか理解できません。 Vault UIから問題なくkvエンジンにシークレットを設定して読み取ることができます。何が欠けていますか?

11
Dillon Courts

これは、私がドキュメントを読んでいないことが原因です。

そのパスにシークレットエンジンがマウントされていなかったため、要求は失敗しました。

vault secrets list -detailedを実行すると、シークレットエンジンのパスを確認できます

これは、私のkvシークレットエンジンが、kvではなくパスsecretにマップされていることを示していました。

したがって、vault kv put kv/my-secret my-value=yeaの実行は期待どおりに機能しました。

11
Dillon Courts

特定のパスに対してシークレットエンジンを有効にすることができます

vault secrets enable -path=kv kv

https://www.vaultproject.io/intro/getting-started/secrets-engines

5
yan