Hashicorp Vault命令行在尝试使用kv时返回403错误

40

我设置了一个由consul集群支持的保险库。我使用https进行了安全保护,并尝试在另一台机器上使用cli获取和设置kv引擎中的秘密。我正在使用CLI和Vault服务器的1.0.2版本。

我已使用根令牌登录,因此应该可以访问所有内容。我还适当地设置了我的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引擎中的机密,但我错过了什么?

3个回答

61

这是我没有阅读文档的结果。

请求失败是因为在该路径上没有挂载保密引擎。

您可以通过运行 vault secrets list -detailed 来检查您的保密引擎路径。

这表明我的kv保密引擎映射到路径kv而不是我尝试的secret

因此,运行vault kv put kv/my-secret my-value=yea就像预期的那样工作了。


3
好的,以下是我的翻译:我会将这个答案和@yan在https://dev59.com/t1QJ5IYBdhLWcg3wNjK4#55648532上的答案结合起来。 - FilBot3
另外需要注意的是,有些教程使用kv格式,而其他的则使用secret格式,因此您不能在它们之间跳来跳去并进行剪切和粘贴。 - mianos

24

1
对于原始问题,我们需要:'vault secrets enable -path=secret kv' - Igor Kanshyn

0

当您启用kv密钥引擎时,需要将secret/my-secret更新为您挂载的路径。

例如,如果您像这样启用了密钥引擎:

vault secrets enable -version=2 kv-v2

你应该挂载到kv-v2而不是secret

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接