我想测试Spring Cloud Vault配置。
我在本地安装了Vault服务器,当我尝试write
某些键值失败并要求我使用vault kv put
命令时。
虽然Spring Cloud Config in this link的示例显示了Vault写命令的使用
这是我得到的错误
$ vault write secret/my-app foo=bar
Error writing data to secret/my-app: Error making API request.
URL: PUT http://127.0.0.1:8200/v1/secret/my-app
Code: 404. Errors:
WARNING! The following warnings were returned from Vault:
* Invalid path for a versioned K/V secrets engine. See the API docs for the
appropriate API endpoints to use. If using the Vault CLI, use 'vault kv put'
for this operation.
答案 0 :(得分:19)
尝试以下方法..
./vault kv put secret/my-app password=123
我将补充说这是0.10.0中的新内容。
似乎0.10.0有一些重大的API更改...所以解决方案#2是使用早期版本的Vault(v0.9.6)。这包括默认为版本化的KV秘密引擎的v2。
解决方案#3是使用KV的v1重新创建/ secret引擎。运行以下内容:
./vault secrets disable secret
./vault secrets enable -version=1 -path=secret kv
答案 1 :(得分:6)
在使用以下命令
启用单独路径后,我能够写入vault secrets enable -path=my-app kv
vault write my-app/my-app password=123
在Spring Cloud Config中,我不得不在bootstrap.yml
文件中提到文件夹名称作为后端
spring:
cloud:
vault:
token: bc53d1a4-2551-4869-9574-7a9e60501ec1
scheme: http
generic:
backend: my-app
答案 2 :(得分:1)
在使用python,hvac,vault和kv作为引擎期间,我遇到了相同的错误。并且kv-engine已版本化。我用了hvac client
client.write("secret/taras", data=dict(python='is secret'))
所以我得到了
InvalidPath:“ request_id”:“ d5c0f889-2c42-4141-1cc6-31ed1336c768”,“ lease_id”:“”,“ renewable”:false,“ lease_duration”:0,“ data”:null,“ wrap_info”: null,“警告”:[“版本化的K / V秘密引擎的无效路径。有关要使用的适当API端点,请参阅API文档。如果使用Vault CLI,请对该操作使用'vault kv put'。”], “ auth”:null}
我解决此问题的方法是更改存储秘密的路径
client.write("secret/data/taras", data=dict(python='is secret'))
PS:如您所知,我的秘密名称为“ taras”。
答案 3 :(得分:0)
在Windows中,在命令提示符下尝试以下操作,
SET VAULT_TOKEN = 00000000-0000-0000-0000-000000000000
SET VAULT_ADDR = http://127.0.0.1:8200
vault kv放置秘密/ gs-vault-config example.username = demouser example.password = demopassword
(现在在Hashicorp Vault中创建键值有所变化。使用kv put而不是write。)