From ecd822ffbe49bbf2ffc96d8fc274ff044b8f3640 Mon Sep 17 00:00:00 2001 From: Anas Date: Fri, 6 Nov 2020 13:23:49 +0100 Subject: [PATCH] Fix Null STS Client when role_arn is used. Signed-off-by: Anas --- .../prometheus/cloudwatch/CloudWatchCollector.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/main/java/io/prometheus/cloudwatch/CloudWatchCollector.java b/src/main/java/io/prometheus/cloudwatch/CloudWatchCollector.java index 103e78c5..c401c7e4 100644 --- a/src/main/java/io/prometheus/cloudwatch/CloudWatchCollector.java +++ b/src/main/java/io/prometheus/cloudwatch/CloudWatchCollector.java @@ -42,6 +42,7 @@ import software.amazon.awssdk.services.resourcegroupstaggingapi.model.ResourceTagMapping; import software.amazon.awssdk.services.resourcegroupstaggingapi.model.Tag; import software.amazon.awssdk.services.resourcegroupstaggingapi.model.TagFilter; +import software.amazon.awssdk.services.sts.StsClient; import software.amazon.awssdk.services.sts.auth.StsAssumeRoleCredentialsProvider; import software.amazon.awssdk.services.sts.model.AssumeRoleRequest; @@ -280,12 +281,13 @@ private void loadConfig(ArrayList rules, CloudWatchClient cloudWatch } private AwsCredentialsProvider getRoleCredentialProvider(Map config) { - StsAssumeRoleCredentialsProvider credentialsProvider = StsAssumeRoleCredentialsProvider.builder() - .refreshRequest(AssumeRoleRequest.builder() - .roleArn((String) config.get("role_arn")) - .roleSessionName("cloudwatch_exporter").build() - ).build(); - return credentialsProvider; + StsClient stsClient = StsClient.builder().region(Region.of((String) config.get("region"))).build(); + AssumeRoleRequest assumeRoleRequest = AssumeRoleRequest.builder() + .roleArn((String) config.get("role_arn")) + .roleSessionName("cloudwatch_exporter").build(); + return StsAssumeRoleCredentialsProvider.builder() + .stsClient(stsClient) + .refreshRequest(assumeRoleRequest).build(); } private List getResourceTagMappings(MetricRule rule, ResourceGroupsTaggingApiClient taggingClient) {