Skip to content

Commit f7ac00d

Browse files
committed
fix: Fixing role assumption when env creds aren't fetched from auth provider
1 parent d9dcbe7 commit f7ac00d

File tree

1 file changed

+15
-10
lines changed

1 file changed

+15
-10
lines changed

internal/awshelper/config.go

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -121,17 +121,22 @@ func CreateAwsConfig(
121121
return aws.Config{}, errors.Errorf("Error loading AWS config: %w", err)
122122
}
123123

124-
iamRoleOptions := getMergedIAMRoleOptions(awsCfg, opts)
125-
if iamRoleOptions.RoleARN != "" {
126-
if iamRoleOptions.WebIdentityToken != "" {
127-
l.Debugf("Assuming role %s using WebIdentity token", iamRoleOptions.RoleARN)
128-
129-
cfg.Credentials = getWebIdentityCredentialsFromIAMRoleOptions(cfg, iamRoleOptions)
130-
} else {
131-
l.Debugf("Assuming role %s", iamRoleOptions.RoleARN)
132-
133-
cfg.Credentials = getSTSCredentialsFromIAMRoleOptions(cfg, iamRoleOptions, getExternalID(awsCfg))
124+
envCreds := createCredentialsFromEnv(opts)
125+
if envCreds == nil {
126+
iamRoleOptions := getMergedIAMRoleOptions(awsCfg, opts)
127+
if iamRoleOptions.RoleARN != "" {
128+
if iamRoleOptions.WebIdentityToken != "" {
129+
l.Debugf("Assuming role %s using WebIdentity token", iamRoleOptions.RoleARN)
130+
131+
cfg.Credentials = getWebIdentityCredentialsFromIAMRoleOptions(cfg, iamRoleOptions)
132+
} else {
133+
l.Debugf("Assuming role %s", iamRoleOptions.RoleARN)
134+
135+
cfg.Credentials = getSTSCredentialsFromIAMRoleOptions(cfg, iamRoleOptions, getExternalID(awsCfg))
136+
}
134137
}
138+
} else {
139+
l.Debugf("Skipping role assumption as credentials are already available from auth provider command")
135140
}
136141

137142
return cfg, nil

0 commit comments

Comments
 (0)