Vault .NET - 版本化 K/V 机密引擎的无效路径

问题描述

我已在 Vault 中添加了所有配置详细信息。您可以在下面的附图中看到详细信息。这遵循特定的路径,即 kv/unistad/dev/workflow/camunda/1.0

enter image description here

但是,当我尝试使用 Vault.NET 和以下 nuget 包读取此信息时

Install-Package Vault

我的代码如下所示:

var endpoint = "http://openblue-bridge.com:32270";
var token = "s.inklpUdNxet1ZJtaCLMpEIPA";

var vaultClient = new VaultClient(new Uri(endpoint),token);

string project = "unistad";
string environment = "dev";
string appVersion = "1.0";
var secretPath = $"kv/{project}/{environment}/workflow/camunda/{appVersion}";
// Use client to read a key-value secret.
var secrets = await vaultClient.Secret.Read< Dictionary<string,string>> (secretPath);

当我运行上面的代码时,出现以下错误

版本化 K/V 机密引擎的无效路径。请参阅 API 文档 要使用的适当 API 端点。如果使用 Vault CLI,请使用 'vault kv get' 用于此操作。

我不知道如何解决这个错误。任何帮助将不胜感激。

解决方法

您正在使用 kv 引擎的 v2。对于该引擎,您需要在路径中包含 /data/,如 API docs 中所示。 the engine docs 中还描述了对该前缀的要求。

所以解决你的问题的方法是专门改变你的路径

var secretPath = $"kv/{project}/{environment}/workflow/camunda/{appVersion}";

var secretPath = $"kv/data/{project}/{environment}/workflow/camunda/{appVersion}";

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...