« SecretsManager » : différence entre les versions
Apparence
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"];
|