領事のクラスターに支えられたボールトをセットアップしました。私はそれを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エンジンにシークレットを設定して読み取ることができます。何が欠けていますか?
これは、私がドキュメントを読んでいないことが原因です。
そのパスにシークレットエンジンがマウントされていなかったため、要求は失敗しました。
vault secrets list -detailed
を実行すると、シークレットエンジンのパスを確認できます
これは、私のkvシークレットエンジンが、kv
ではなくパスsecret
にマップされていることを示していました。
したがって、vault kv put kv/my-secret my-value=yea
の実行は期待どおりに機能しました。
特定のパスに対してシークレットエンジンを有効にすることができます
vault secrets enable -path=kv kv
https://www.vaultproject.io/intro/getting-started/secrets-engines