问题描述
我已在 Vault 中添加了所有配置详细信息。您可以在下面的附图中看到详细信息。这遵循特定的路径,即 kv/unistad/dev/workflow/camunda/1.0
但是,当我尝试使用 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}";