2026西湖龙井茶官网DTC发售:茶农直供,政府溯源防伪到农户家
每个涉及云服务的 .NET 项目最终都会遇到同一个问题:密钥分散管理。
你起初使用亚马逊云科技(AWS)密钥管理器。随后,一项新服务需要微软 Azure 密钥保管库。有人又部署了哈希公司(HashiCorp)的 Vault。不久之后,你的代码库中便充斥着特定于提供商的软件开发工具包(SDK)、不一致的错误处理机制,且在不重写半数基础设施代码的情况下,完全无法切换提供商。
我构建了 SecretVault 来解决这个问题。一个接口。四个提供商。零供应商锁定。
代码中的实际问题
如今大多数代码库的情况如下:
// 在你的 AWS 服务中的某处
var awsClient = new AmazonSecretsManagerClient();
var response = await awsClient.GetSecretValueAsync(new GetSecretValueRequest
{
SecretId = "prod/db-password"
});
var secret = response.SecretString;
// 在其他地方,针对 Azure
var kvClient = new SecretClient(vaultUri, new DefaultAzureCredential());
var azureSecret = await kvClient.GetSecretAsync("db-password");
var value = azureSecret.Value.Value;
不同的软件开发工具包(SDK)。不同的错误类型。不同的思维模型。而当你想要添加缓存或轮换密钥时?你必须为每个提供商手动进行配置——每次都是如此。
SecretVault 的方式
// 就这么简单。同一行代码。适用于任何提供商。
var password = await secrets.GetSecretAsync("db-password");
ISecretManager 是你的应用程序代码唯一需要接触的接口。只需在一行依赖注入(DI)配置中将亚马逊云科技(AWS)替换为微软 Azure,你的业务逻辑无需任何更改。
包含内容
SecretVault 以 6 个专注的 NuGet 包 形式发布——仅安装你需要的部分:
| 包名称 | 功能说明 |
|---|---|
SecretVault.Core |
ISecretManager 接口 + 缓存 + 链式调用 |
Se
|