如何使用 vaultsharp 读取机密
How to read secret using vaultsharp
我在默认 cubbyhole
秘密引擎中创建了一个名为 secret1
的秘密。
现在我想阅读这个秘密,它在 vault online CLI 中运行良好:
vault read cubbyhole/secret1
但使用以下代码:
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
ReadSecret().Wait();
}
public static async Task ReadSecret()
{
IAuthMethodInfo authMethod = new TokenAuthMethodInfo("My Token");
var vaultClientSettings = new VaultClientSettings("My Url", authMethod);
IVaultClient vaultClient = new VaultClient(vaultClientSettings);
Secret<SecretData> kv2Secret = await vaultClient.V1.Secrets.KeyValue.V2.ReadSecretAsync(path: "secret1");
Console.WriteLine($"Secret data : {kv2Secret.Data}");
}
我得到一个权限异常。
我尝试将代码更改为:
Secret<SecretData> kv2Secret = await vaultClient.V1.Secrets.KeyValue.V2.ReadSecretAsync(path: "secret1", mountPoint: "cubbyhole");
我得到了错误:
System.AggregateException : 'One or more errors occurred. ({"errors":[]})'
如何读取我的秘密?
KV2 != 小房间
在努力寻找正确的 API 使用路径时,请记住 vault 二进制文件具有“-output-curl-string”,它会告诉您请求所需路径的正确方法。
# vault kv put cubbyhole/foo a=1
Success! Data written to: cubbyhole/foo
# vault kv get -output-curl-string cubbyhole/foo
curl -H "X-Vault-Token: $(vault print token)" -H "X-Vault-Request: true" http://127.0.0.1:8200/v1/cubbyhole/foo
所以你要查找的路径既不是KV也不是KV2路径。
我在默认 cubbyhole
秘密引擎中创建了一个名为 secret1
的秘密。
现在我想阅读这个秘密,它在 vault online CLI 中运行良好:
vault read cubbyhole/secret1
但使用以下代码:
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
ReadSecret().Wait();
}
public static async Task ReadSecret()
{
IAuthMethodInfo authMethod = new TokenAuthMethodInfo("My Token");
var vaultClientSettings = new VaultClientSettings("My Url", authMethod);
IVaultClient vaultClient = new VaultClient(vaultClientSettings);
Secret<SecretData> kv2Secret = await vaultClient.V1.Secrets.KeyValue.V2.ReadSecretAsync(path: "secret1");
Console.WriteLine($"Secret data : {kv2Secret.Data}");
}
我得到一个权限异常。
我尝试将代码更改为:
Secret<SecretData> kv2Secret = await vaultClient.V1.Secrets.KeyValue.V2.ReadSecretAsync(path: "secret1", mountPoint: "cubbyhole");
我得到了错误:
System.AggregateException : 'One or more errors occurred. ({"errors":[]})'
如何读取我的秘密?
KV2 != 小房间
在努力寻找正确的 API 使用路径时,请记住 vault 二进制文件具有“-output-curl-string”,它会告诉您请求所需路径的正确方法。
# vault kv put cubbyhole/foo a=1
Success! Data written to: cubbyhole/foo
# vault kv get -output-curl-string cubbyhole/foo
curl -H "X-Vault-Token: $(vault print token)" -H "X-Vault-Request: true" http://127.0.0.1:8200/v1/cubbyhole/foo
所以你要查找的路径既不是KV也不是KV2路径。