azure-keyvault - Vault .NET - 版本化 K/V secret 引擎的无效路径

标签 azure-keyvault hashicorp-vault spring-vault consul-kv vault

我已将所有配置详细信息添加到 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);

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

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/

相关文章:

python-3.x - Vault 用 python 读取 secret

token - 如何验证企业 Hashicorp 金库中 LDAP 用户的 token

java - 如果 Spring Vault 配置被禁用,则回退到本地配置

java - 使用带有用户名和密码的 VaultTemplate

php - Azure Key Vault 访问错误 - AADSTS700027 : Client assertion contains an invalid signature. [原因 - 通过 PHP 访问时 T(截断...)

kubernetes - 如何在 Kubernetes 中将 Vault secret 挂载为文件?

azure - KeyVaultErrorException : Operation returned an invalid status code 'Forbidden'

amazon-web-services - 当我尝试使用 AWS IAM 角色连接 HashiCorp Vault 时如何修复 "Vault location [kv/my-client-service] not resolvable: Not found"?

azure - 如何在不存储凭据的情况下连接到 KeyVault?

azure - 在 Azure ARM 模板中使用来自 Azure KeyVault 的 secret