Ejemplo n.º 1
0
        public AwsCredentials Resolve(IAwsProfile profile = default)
        {
            if (string.IsNullOrEmpty(profile?.Name))
            {
                return(null);
            }

            if (!_credentialProfileStoreChain.TryGetAWSCredentials(profile?.Name, out var credentialsHandle))
            {
                throw new AwsFacadeException($"Failed to retrieve credentials for profile: {profile?.Name}");
            }

            return((AwsCredentials)credentialsHandle.GetCredentials());
        }
Ejemplo n.º 2
0
        public T Create <T>(IAwsProfile assumeProfile = default) where T : IAmazonService
        {
            AWSCredentials impersonateCredentials = _awsCredentialResolver.Resolve(_options.Value.Impersonate) ?? FallbackCredentialsFactory.GetCredentials();
            AWSCredentials sdkClientCredentials   = impersonateCredentials;

            if (assumeProfile != null)
            {
                var assumeProfileCredentials = _awsCredentialResolver.Resolve(assumeProfile);

                sdkClientCredentials = new AssumeRoleAWSCredentials(impersonateCredentials, assumeProfile.RoleArn, assumeProfileCredentials.Token);
            }

            var clientOfTConstructor = typeof(T).GetConstructor(new[] { typeof(AWSCredentials), typeof(RegionEndpoint) });
            var clientOfT            = (T)clientOfTConstructor.Invoke(new object[] { sdkClientCredentials, RegionEndpoint.GetBySystemName(_options.Value.Region) });

            return(clientOfT);
        }