コード例 #1
0
        static void Main(string[] args)
        {
            var secretName = "TestSecret1";
            var config     = new AmazonSecretsManagerConfig();

            config.RegionEndpoint = RegionEndpoint.USWest2;
            var client             = new AmazonSecretsManagerClient(config);
            var secretValueRequest = new GetSecretValueRequest();

            secretValueRequest.SecretId = secretName;
            var secretValueResponse = GetSecretValueResponseAsync(client, secretValueRequest);

            if (secretValueResponse.Result.SecretString != null)
            {
                Console.WriteLine("Secret String: " + secretValueResponse.Result.SecretString);
            }
            else if (secretValueResponse.Result.SecretBinary != null)
            {
                Console.WriteLine("SecretBinary saved to variable.");
                var secretBinary = secretValueResponse.Result.SecretBinary;
                //Do something with the SecretBinary in your code
            }
            else
            {
                Console.WriteLine("Secret String and Secret Binary are null.");
                //Do something with the SecretString in your code
            }
        }
コード例 #2
0
        public string Get(string secretName)
        {
            var config = new AmazonSecretsManagerConfig {
                RegionEndpoint = RegionEndpoint.APSoutheast1
            };
            var client = new AmazonSecretsManagerClient(config);

            var request = new GetSecretValueRequest
            {
                SecretId = secretName
            };

            GetSecretValueResponse response = null;

            try
            {
                response = Task.Run(async() => await client.GetSecretValueAsync(request)).Result;
            }
            catch (ResourceNotFoundException)
            {
                Console.WriteLine("The requested secret " + secretName + " was not found");
            }
            catch (InvalidRequestException e)
            {
                Console.WriteLine("The request was invalid due to: " + e.Message);
            }
            catch (InvalidParameterException e)
            {
                Console.WriteLine("The request had invalid params: " + e.Message);
            }

            return(response?.SecretString);
        }
コード例 #3
0
        public static string Get(string secretName)
        {
            var config = new AmazonSecretsManagerConfig {
                RegionEndpoint = RegionEndpoint.USEast1
            };
            var credentials = new StoredProfileAWSCredentials("getSecretForRdsUser");
            var client      = new AmazonSecretsManagerClient(credentials, config);

            var request = new GetSecretValueRequest
            {
                SecretId = secretName
            };

            GetSecretValueResponse response = null;

            try
            {
                response = client.GetSecretValueAsync(request).Result;
            }
            catch (ResourceNotFoundException)
            {
                Console.WriteLine("The requested secret " + secretName + " was not found");
            }
            catch (InvalidRequestException e)
            {
                Console.WriteLine("The request was invalid due to: " + e.Message);
            }
            catch (InvalidParameterException e)
            {
                Console.WriteLine("The request had invalid params: " + e.Message);
            }

            return(response?.SecretString);
        }
コード例 #4
0
        public override void Invoke(AWSCredentials creds, RegionEndpoint region, int maxItems)
        {
            AmazonSecretsManagerConfig config = new AmazonSecretsManagerConfig();

            config.RegionEndpoint = region;
            ConfigureClient(config);
            AmazonSecretsManagerClient client = new AmazonSecretsManagerClient(creds, config);

            ListSecretsResponse resp = new ListSecretsResponse();

            do
            {
                ListSecretsRequest req = new ListSecretsRequest
                {
                    NextToken = resp.NextToken
                    ,
                    MaxResults = maxItems
                };

                resp = client.ListSecrets(req);
                CheckError(resp.HttpStatusCode, "200");

                foreach (var obj in resp.SecretList)
                {
                    AddObject(obj);
                }
            }while (!string.IsNullOrEmpty(resp.NextToken));
        }
コード例 #5
0
 public CadastroSecretsManagerService()
 {
     _config = new AmazonSecretsManagerConfig()
     {
         RegionEndpoint = RegionEndpoint.SAEast1
     };
     _client = new AmazonSecretsManagerClient(_config);
 }
コード例 #6
0
        /// <summary>
        /// Adds an <see cref="IConfigurationProvider"/> that reads configuration values from the AWS Secret Manager.
        /// </summary>
        /// <param name="accessKeyId">AWS Access Key ID</param>
        /// <param name="accessKeySecret">AWS Secret Access Key</param>
        /// <param name="region"> The system name of the service like "us-west-1". The default value is us-east-2</param>
        /// <param name="cacheSize">The maximum number of items the Cache can contain before evicting using LRU. The default value is 1024.</param>
        /// <param name="cacheItemTTL">The TTL of a Cache item in milliseconds.The default value is 3600000 ms, or 1 hour</param>
        public SecretsManagerConfigurationSource(string accessKeyId, string accessKeySecret, string region = "us-east-2", ushort cacheSize = 1024, uint cacheItemTTL = 3600000u)
        {
            var config = new AmazonSecretsManagerConfig
            {
                RegionEndpoint = RegionEndpoint.GetBySystemName(region)
            };

            _client       = new AmazonSecretsManagerClient(accessKeyId, accessKeySecret, config);
            _cacheSize    = cacheSize;
            _cacheItemTTL = cacheItemTTL;
        }
コード例 #7
0
        protected IAmazonSecretsManager CreateClient(AWSCredentials credentials, RegionEndpoint region)
        {
            var config = new AmazonSecretsManagerConfig {
                RegionEndpoint = region
            };

            Amazon.PowerShell.Utils.Common.PopulateConfig(this, config);
            this.CustomizeClientConfig(config);
            var client = new AmazonSecretsManagerClient(credentials, config);

            client.BeforeRequestEvent += RequestEventHandler;
            client.AfterResponseEvent += ResponseEventHandler;
            return(client);
        }
コード例 #8
0
        public async Task <string> GetSecret(ILambdaContext context)
        {
            string       secretName   = SecretKeyName;
            string       secret       = string.Empty;
            MemoryStream memoryStream = new MemoryStream();
            //var config = new AmazonSecretsManagerConfig
            //{
            //    RegionEndpoint = bucketRegion,
            //    ProxyHost = ProxyHost,
            //    ProxyPort = ProxyPort
            //};
            var config = new AmazonSecretsManagerConfig
            {
                RegionEndpoint = bucketRegion
            };
            var client1 = new AmazonSecretsManagerClient(config);
            var request = new GetSecretValueRequest
            {
                SecretId     = secretName,
                VersionStage = "AWSCURRENT"
            };
            GetSecretValueResponse response = null;

            try
            {
                response = Task.Run(async() => await client1.GetSecretValueAsync(request)).Result;
            }

            catch (Exception ex)
            {
                context.Logger.Log("Secret Key Failure exception");
                context.Logger.Log(ex.ToString());
                return(null);
            }
            context.Logger.Log(response.SecretString);
            if (response.SecretString != null)
            {
                secret = response.SecretString;
            }
            else
            {
                memoryStream = response.SecretBinary;
                StreamReader reader = new StreamReader(memoryStream);
                secret = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(reader.ReadToEnd()));
            }
            return(secret);
        }
コード例 #9
0
        private IAmazonSecretsManager CreateClient()
        {
            var clientConfig = new AmazonSecretsManagerConfig
            {
                RegionEndpoint = Region
            };


            Options.ConfigureSecretsManagerConfig(clientConfig);

            if (Credentials == null)
            {
                return(new AmazonSecretsManagerClient(clientConfig));
            }


            return(new AmazonSecretsManagerClient(Credentials, clientConfig));
        }
コード例 #10
0
        public void Build_invokes_config_client_method(IConfigurationBuilder configurationBuilder)
        {
            bool configInvoked = false;
            AmazonSecretsManagerConfig usedConfig = null;
            var sut = new SecretsManagerConfigurationSource(options: new SecretsManagerConfigurationProviderOptions()
            {
                ConfigureSecretsManagerConfig = c =>
                {
                    usedConfig    = c;
                    configInvoked = true;
                }
            });


            var provider = sut.Build(configurationBuilder);

            Assert.That(configInvoked, Is.True);
            Assert.That(usedConfig, Is.Not.Null);
        }
コード例 #11
0
ファイル: Startup.cs プロジェクト: ZhenyaP/sso-service
 private void AddSecretManagerService(IServiceCollection services,
                                      RegionEndpoint regionEndpoint,
                                      Credentials credentials)
 {
     services.AddSingleton <IAmazonSecretsManager>(
         p =>
     {
         var config = new AmazonSecretsManagerConfig
         {
             ServiceURL     = GetSecretsManagerServiceUrl(services),
             RegionEndpoint = regionEndpoint
         };
         return(credentials == null
                 ? new AmazonSecretsManagerClient(config) :
                new AmazonSecretsManagerClient(
                    credentials,
                    config));
     });
 }
        private IAmazonSecretsManager CreateClient()
        {
            if (Options.CreateClient != null)
            {
                return(Options.CreateClient());
            }

            var clientConfig = new AmazonSecretsManagerConfig
            {
                RegionEndpoint = Region
            };

            Options.ConfigureSecretsManagerConfig(clientConfig);

            return(Credentials switch
            {
                null => new AmazonSecretsManagerClient(clientConfig),
                _ => new AmazonSecretsManagerClient(Credentials, clientConfig)
            });
コード例 #13
0
        public string Get(string secretName)
        {
            //var credentials = new StoredProfileAWSCredentials(profileName);
            var config = new AmazonSecretsManagerConfig {
                RegionEndpoint = RegionEndpoint.USEast2
            };
            var client = new AmazonSecretsManagerClient(config);
            //string region = "us-east-2";
            //IAmazonSecretsManager client = new AmazonSecretsManagerClient(RegionEndpoint.GetBySystemName(region));

            var request = new GetSecretValueRequest
            {
                SecretId     = secretName,
                VersionStage = "AWSCURRENT"
            };

            GetSecretValueResponse response = null;

            try
            {
                //response = Task.Run(async () => await client.GetSecretValueAsync(request)).Result;
                response = client.GetSecretValueAsync(request).Result;
            }

            catch (ResourceNotFoundException)
            {
                Console.WriteLine("The requested secret " + secretName + " was not found");
            }
            catch (InvalidRequestException e)
            {
                Console.WriteLine("The request was invalid due to: " + e.Message);
            }
            catch (InvalidParameterException e)
            {
                Console.WriteLine("The request had invalid params: " + e.Message);
            }

            return(response?.SecretString);
        }
コード例 #14
0
        private string GetAWSSecret(string secretName)
        {
            MemoryStream memoryStream = new MemoryStream();
            AmazonSecretsManagerConfig amazonSecretsManagerConfig = new AmazonSecretsManagerConfig();

            amazonSecretsManagerConfig.RegionEndpoint = RegionEndpoint.USEast2;

            string VersionStage = null;

            IAmazonSecretsManager client = new AmazonSecretsManagerClient(RegionEndpoint.GetBySystemName("us-east-2"));

            GetSecretValueRequest request = new GetSecretValueRequest();

            request.SecretId     = secretName;
            request.VersionStage = VersionStage == null ? "AWSCURRENT" : VersionStage; // VersionStage defaults to AWSCURRENT if unspecified.
            GetSecretValueResponse response = null;

            try
            {
                response = Task.Run(async() => await client.GetSecretValueAsync(request)).Result;
            }
            catch (ResourceNotFoundException)
            {
                Console.WriteLine("The requested secret " + secretName + " was not found");
            }
            catch (InvalidRequestException e)
            {
                Console.WriteLine("The request was invalid due to: " + e.Message);
            }
            catch (InvalidParameterException e)
            {
                Console.WriteLine("The request had invalid params: " + e.Message);
            }

            return(response?.SecretString);
        }