如何用铁锈从哈希公司的金库中获取秘密



我想得到一个秘密,它已经存在于vault中,具有特定的路径"密码/admin";

[dependencies]
hashicorp_vault = "2.1.0"
use hashicorp_vault::Client;
fn main() {
let client = Client::new("http://my_vault.server:8200", "xxxxxx.xxxxx.xxxxx.xxxxx").unwrap();
match client.get_secret("passwords/admin") {
Ok(secret) => {
println!("{}", secret);
},
Err(e) => {
println!("{}", e);
},
}
}

获取错误:保管库响应中的错误:保管库请求失败:响应{url:url{scheme:"http&",cannot_be_a_base:false,用户名:",密码:无,主机:某些(域("my_vault.server"((,端口:某些(8200(,路径:"/v1/secret/data/passwords/admin",查询:无,片段:无},状态:404,标头:{"缓存控制":"无存储","内容类型":"应用程序/json","日期":"2022年9月26日星期一15:58:19 GMT","属性长度":"14"}},错误消息:{"errors":[]} Could not read vault response.

问题是,它为什么试图从/v1/secret/data/passwords/admin获取数据?为什么"数据";?如果我要添加一些新的秘密,例如:

match client.set_secret("sec01", "val01") {
Ok(_) => {},
Err(e) => println!("{}", e),
}

路径内的数据也可用。如何指定机密的完整路径?非常感谢。

关键字/值存储版本2使用前缀data(和metadata(。

确保你用这个命令安装你的秘密引擎:

vault secrets enable --version 2 --path secret kv

最新更新