我已将所有配置详细信息添加到 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);
当我运行上面的代码时,出现以下错误:
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 get' for this operation.
我不确定如何修复此错误。非常感谢任何帮助。
最佳答案
您正在使用 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}";
关于azure-keyvault - Vault .NET - 版本化 K/V secret 引擎的无效路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65362776/