如何使用VaultSharp读取Vault的cubbyhole秘密引擎中存储的密钥
错误原因
- 你调用了KeyValue V2类型秘密引擎的读写接口,但
cubbyhole是Vault原生独立的特殊秘密引擎,和KV引擎的接口规范完全不兼容,两次报错本质都是调用了错误的接口。 - 第一次未指定挂载点时,默认访问KV V2引擎的默认挂载点
secret,触发权限异常。 - 第二次指定挂载点为
cubbyhole但仍然使用KV V2接口,请求格式不符合cubbyhole引擎的要求,所以返回无具体信息的错误。
正确实现代码
static void Main(string[] args) { Console.WriteLine("Hello World!"); ReadSecret().Wait(); } public static async Task ReadSecret() { IAuthMethodInfo authMethod = new TokenAuthMethodInfo("My Token"); var vaultClientSettings = new VaultClientSettings("My Url", authMethod); IVaultClient vaultClient = new VaultClient(vaultClientSettings); // 调用Cubbyhole专属接口,cubbyhole默认挂载点固定为cubbyhole,无需额外指定 Secret<Dictionary<string, object>> cubbyholeSecret = await vaultClient.V1.Secrets.Cubbyhole.ReadSecretAsync(path: "secret1"); Console.WriteLine($"Secret data : {cubbyholeSecret.Data}"); }
注意事项
cubbyhole引擎的密钥和创建时使用的Token强绑定,你代码中填写的Token必须和命令行执行vault read cubbyhole/secret1时使用的Token完全一致,否则无法读取到对应密钥。
内容的提问来源于stack exchange,提问作者a17sans
相关产品推荐
相关产品推荐

