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

Ali*_*sad 2 azure-keyvault hashicorp-vault spring-vault consul-kv vault

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

在此输入图像描述

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

Install-Package Vault
Run Code Online (Sandbox Code Playgroud)

我的代码看起来像这样:

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);
Run Code Online (Sandbox Code Playgroud)

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

版本化 K/V 秘密引擎的路径无效。请参阅 API 文档以了解要使用的适当 API 端点。如果使用 Vault CLI,请使用“vault kv get”执行此操作。

我不知道如何修复这个错误。任何帮助将非常感激。

lxo*_*xop 10

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

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

var secretPath = $"kv/{project}/{environment}/workflow/camunda/{appVersion}";
Run Code Online (Sandbox Code Playgroud)

var secretPath = $"kv/data/{project}/{environment}/workflow/camunda/{appVersion}";
Run Code Online (Sandbox Code Playgroud)