Every .NET project that touches the cloud eventually runs into the same problem: secret sprawl .
You start with AWS Secrets Manager. Then a new service needs Azure Key Vault. Someone spins up a HashiCorp Vault. Before long, your codebase is littered with provider-specific SDKs, inconsistent error handling, and zero ability to swap providers without rewriting half your infrastructure code.
I built SecretVault to fix this. One interface. Four providers. Zero lock-in.
The Problem in Plain Code
Here's what most codebases look like today:
// Somewhere in your AWS service var awsClient = new AmazonSecretsManagerClient (); var response = await awsClient . GetSecretValueAsync ( new GetSecretValueRequest { SecretId = "prod/db-password" }); var secret = response . SecretString ;
// Somewhere else, for Azure var kvClient = new SecretClient ( vaultUri , new DefaultAzureCredential ()); var azureSecret = await kvClient . GetSecretAsync ( "db-password" ); var value = azureSecret . Value .…