Skip to content
Snippets Groups Projects
Commit bf9f94eb authored by Adam Johnson's avatar Adam Johnson Committed by Daniel Nelson
Browse files

Fix cloudwatch output requires unneeded permissions (#3335)

parent 0f9f757d
No related branches found
No related tags found
No related merge requests found
......@@ -13,6 +13,8 @@ API endpoint. In the following order the plugin will attempt to authenticate.
5. [Shared Credentials](https://github.com/aws/aws-sdk-go/wiki/configuring-sdk#shared-credentials-file)
6. [EC2 Instance Profile](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html)
The IAM user needs only the `cloudwatch:PutMetricData` permission.
## Config
For this output plugin to function correctly the following variables
......
......@@ -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"
......@@ -71,21 +72,20 @@ func (c *CloudWatch) Connect() error {
}
configProvider := credentialConfig.Credentials()
svc := cloudwatch.New(configProvider)
stsService := sts.New(configProvider)
params := &cloudwatch.ListMetricsInput{
Namespace: aws.String(c.Namespace),
}
params := &sts.GetSessionTokenInput{}
_, err := svc.ListMetrics(params) // Try a read-only call to test connection.
_, err := stsService.GetSessionToken(params)
if err != nil {
log.Printf("E! cloudwatch: Error in ListMetrics API call : %+v \n", err.Error())
log.Printf("E! cloudwatch: Cannot use credentials to connect to AWS : %+v \n", err.Error())
return err
}
c.svc = svc
c.svc = cloudwatch.New(configProvider)
return err
return nil
}
func (c *CloudWatch) Close() error {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment