(cloudwatch) check auth type before assume role (#8895)

This commit is contained in:
Mitsuhiro Tanda 2017-07-20 21:11:51 +09:00 committed by Torkel Ödegaard
parent af56cc4c28
commit 9d50ab8fb5

View File

@ -39,6 +39,7 @@ type cwRequest struct {
type datasourceInfo struct { type datasourceInfo struct {
Profile string Profile string
Region string Region string
AuthType string
AssumeRoleArn string AssumeRoleArn string
Namespace string Namespace string
@ -47,6 +48,7 @@ type datasourceInfo struct {
} }
func (req *cwRequest) GetDatasourceInfo() *datasourceInfo { func (req *cwRequest) GetDatasourceInfo() *datasourceInfo {
authType := req.DataSource.JsonData.Get("authType").MustString()
assumeRoleArn := req.DataSource.JsonData.Get("assumeRoleArn").MustString() assumeRoleArn := req.DataSource.JsonData.Get("assumeRoleArn").MustString()
accessKey := "" accessKey := ""
secretKey := "" secretKey := ""
@ -61,6 +63,7 @@ func (req *cwRequest) GetDatasourceInfo() *datasourceInfo {
} }
return &datasourceInfo{ return &datasourceInfo{
AuthType: authType,
AssumeRoleArn: assumeRoleArn, AssumeRoleArn: assumeRoleArn,
Region: req.Region, Region: req.Region,
Profile: req.DataSource.Database, Profile: req.DataSource.Database,
@ -110,7 +113,7 @@ func getCredentials(dsInfo *datasourceInfo) (*credentials.Credentials, error) {
sessionToken := "" sessionToken := ""
var expiration *time.Time var expiration *time.Time
expiration = nil expiration = nil
if strings.Index(dsInfo.AssumeRoleArn, "arn:aws:iam:") == 0 { if dsInfo.AuthType == "arn" && strings.Index(dsInfo.AssumeRoleArn, "arn:aws:iam:") == 0 {
params := &sts.AssumeRoleInput{ params := &sts.AssumeRoleInput{
RoleArn: aws.String(dsInfo.AssumeRoleArn), RoleArn: aws.String(dsInfo.AssumeRoleArn),
RoleSessionName: aws.String("GrafanaSession"), RoleSessionName: aws.String("GrafanaSession"),