diff --git a/plugins/outputs/cloudwatch/cloudwatch.go b/plugins/outputs/cloudwatch/cloudwatch.go index 0c087ce57..783a21416 100644 --- a/plugins/outputs/cloudwatch/cloudwatch.go +++ b/plugins/outputs/cloudwatch/cloudwatch.go @@ -9,6 +9,7 @@ import ( "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/service/cloudwatch" + "github.com/aws/aws-sdk-go/service/sts" "github.com/influxdata/telegraf" internalaws "github.com/influxdata/telegraf/internal/config/aws" @@ -70,7 +71,20 @@ func (c *CloudWatch) Connect() error { Token: c.Token, } configProvider := credentialConfig.Credentials() + + stsService := sts.New(configProvider) + + params := &sts.GetCallerIdentityInput{} + + _, err := stsService.GetCallerIdentity(params) + + if err != nil { + log.Printf("E! cloudwatch: Cannot use credentials to connect to AWS : %+v \n", err.Error()) + return err + } + c.svc = cloudwatch.New(configProvider) + return nil }