Beispiel #1
0
 public CredstashConfigurationProvider(Credstash credstash, Dictionary <string, string> encryptionContext)
 {
     _credstash           = credstash;
     _degreeOfParallelism = credstash.Options.DegreeOfParallelism;
     _encryptionContext   = encryptionContext;
     _suppressErrors      = credstash.Options.SuppressErrors;
 }
        public static IConfigurationBuilder AddCredstash(this IConfigurationBuilder builder, AWSCredentials credentials,
                                                         CredstashConfigurationOptions options = null)
        {
            options = options ?? new CredstashConfigurationOptions();

            var credstash = new Credstash(new CredstashOptions()
            {
                Region = options.Region,
                Table  = options.Table,
                DegreeOfParallelism = options.DegreeOfParallelism
            }, new AmazonKeyManagementServiceClient(credentials, options.Region),
                                          new AmazonDynamoDBClient(credentials, options.Region));

            builder.Add(new CredstashConfigurationSource(credstash, options.EncryptionContext));
            return(builder);
        }
        public static IConfigurationBuilder AddCredstash(this IConfigurationBuilder builder, Action <CredstashConfigurationOptions> optionsAction, AWSCredentials creds = null)
        {
            var options = new CredstashConfigurationOptions();

            optionsAction(options);

            creds = creds ?? FallbackCredentialsFactory.GetCredentials();

            var credstash = new Credstash(new CredstashOptions()
            {
                Region = options.Region,
                Table  = options.Table,
                DegreeOfParallelism = options.DegreeOfParallelism
            }, new AmazonKeyManagementServiceClient(creds, options.Region),
                                          new AmazonDynamoDBClient(creds, options.Region));

            builder.Add(new CredstashConfigurationSource(credstash, options.EncryptionContext));
            return(builder);
        }
        public static async Task Main(string[] args)
        {
            var stash = new Credstash(new CredstashOptions(), new AmazonKeyManagementServiceClient(RegionEndpoint.EUWest1),
                                      new AmazonDynamoDBClient(RegionEndpoint.EUWest1));

            var noneExistingKey1 = await stash.GetSecretAsync(Guid.NewGuid().ToString());

            var noneExistingKey2 = await stash.GetSecretAsync(Guid.NewGuid().ToString(), "1");

            //var creds = new GetAwsCredentials();
            //var stash = new Credstash(new CredstashOptions(), new AmazonKeyManagementServiceClient(creds, RegionEndpoint.EUWest1),
            //    new AmazonDynamoDBClient(creds, RegionEndpoint.EUWest1));
            //var val = stash.GetSecret("redis:host", null, new Dictionary<string, string>()
            //{
            //    { "environment", "beta"}
            //}).Result;
            //Console.WriteLine(val);

            //foreach (var entry in stash.List().Result)
            //{
            //    Console.WriteLine($"{entry.Name} v{entry.Version}");
            //}

            var creds         = GetAwsCredentials();
            var configBuilder = new ConfigurationBuilder();

            configBuilder.AddCredstash(creds, new CredstashConfigurationOptions
            {
                EncryptionContext = new Dictionary <string, string>
                {
                    { "environment", "beta" }
                }
            });

            var config = configBuilder.Build();
            var beta   = config.GetSection("beta");

            Print(beta, string.Empty);
        }
 public CredstashConfigurationSource(Credstash credstash, Dictionary <string, string> encryptionContext)
 {
     _credstash         = credstash;
     _encryptionContext = encryptionContext;
 }