« SecretsManager » : différence entre les versions
De Banane Atomic
Aller à la navigationAller à la recherche
Ligne 5 : | Ligne 5 : | ||
= Load all the secrets into a dictionary = | = Load all the secrets into a dictionary = | ||
Nuget packages: {{boxx|AWSSDK.SecretsManager}} {{boxx|AWSSDK.SSO}} {{boxx|AWSSDK.SSOOIDC}} | |||
<kode lang='cs'> | <kode lang='cs'> | ||
var secretsManagerConfig = new AmazonSecretsManagerConfig() | var secretsManagerConfig = new AmazonSecretsManagerConfig() |
Version du 10 juin 2024 à 16:05
Links
Load all the secrets into a dictionary
Nuget packages: AWSSDK.SecretsManager AWSSDK.SSO AWSSDK.SSOOIDC
var secretsManagerConfig = new AmazonSecretsManagerConfig() { Profile = new Profile("MyProfile"), RegionEndpoint = RegionEndpoint.EUCentral1 }; var secretsManager = new AmazonSecretsManagerClient(secretsManagerConfig); var request = new GetSecretValueRequest { SecretId = "MySecretName" }; var response = await secretsManager.GetSecretValueAsync(request); var secret = JsonConvert.DeserializeObject<Dictionary<string, string>>(response.SecretString); return secret; |
Load .NET configuration from Secrets Manager
AmazonSecretsManagerConfigurationProvider.cs |
public class AmazonSecretsManagerConfigurationProvider : ConfigurationProvider { private readonly string secretName; public AmazonSecretsManagerConfigurationProvider(string secretName) { this.secretName = secretName; } public override void Load() { var secret = GetSecret(); Data = JsonSerializer.Deserialize<Dictionary<string, string>>(secret)!; } private string GetSecret() { var request = new GetSecretValueRequest { SecretId = this.secretName }; using (var client = new AmazonSecretsManagerClient()) { var response = client.GetSecretValueAsync(request).Result; return response.SecretString; } } } |
AmazonSecretsManagerConfigurationSource.cs |
public class AmazonSecretsManagerConfigurationSource : IConfigurationSource { private readonly string secretName; public AmazonSecretsManagerConfigurationSource(string secretName) { this.secretName = secretName; } public IConfigurationProvider Build(IConfigurationBuilder builder) { return new AmazonSecretsManagerConfigurationProvider(this.secretName); } } |
ConfigurationBuilderExtensions.cs |
public static class ConfigurationBuilderExtensions { public static void AddAmazonSecretsManager( this IConfigurationBuilder configurationBuilder, string secretName) { var configurationSource = new AmazonSecretsManagerConfigurationSource(secretName); configurationBuilder.Add(configurationSource); } } |
Program.cs |
builder.Configuration.AddAmazonSecretsManager("Secret name"); var secretValue = builder.Configuration["Secret key"]; |