Skip to main content
.NET 10.0MIT / Apache 2.0

One Interface. Any Secret Backend.

A unified .NET 10.0 abstraction layer for 14 secret backends including Azure Key Vault, AWS, Google Cloud, Oracle Vault, PostgreSQL, Scaleway, OVH, IBM Cloud, Aliyun KMS, Passbolt, Tencent Cloud, HashiCorp Vault, CyberArk Conjur, and local encrypted storage. Inspired by Kubernetes External Secrets.

ISecretProvider
FS
Microsoft Azure Logo VectorAzure
Scaleway
IBM
PG
OVH
AWS
Oracle
GCP
Passbolt
AlibabaCloudAliyun
Tencent
Vault
Conjur
1Install Base Package
dotnet add package SecretsManager.Core
2Select a Provider
dotnet add package SecretsManager.FileSystem

Why SecretsManager?

A modern approach to secret management in .NET

Unified API

Get, put, version, and delete secrets with one interface, regardless of the backend.

Multi-Provider

Swap between Azure, AWS, GCP, Scaleway, PostgreSQL, OVH, Passbolt, Tencent Cloud, HashiCorp Vault, CyberArk Conjur, or encrypted local files without changing your business logic.

Zero Bloat

Modular design. Only install the NuGet packages for the providers you actually use.

Versioning

First-class support for secret history across all providers.

JSON Extraction

Query nested JSON values directly via dot-path syntax.

Flexible Config

Configure via Fluent API, Environment Variables, or ESO-style YAML.

Configure Your Way

Choose the configuration style that fits your workflow

Program.cs
var provider = new SecretProviderBuilder()
.WithFileSystem(options =>
{
options.BasePath = "/etc/secrets";
options.EncryptionKey = "my-encryption-key";
})
.Build();

var secret = await provider.GetSecretAsync("db-password");
Console.WriteLine(secret.Value);