Skip to content

Commit c522e88

Browse files
authored
Fixed web credentials fetching (#1)
Found that in internal tests, only with WebIdentityToken, Terragrunt fails with: ``` time=2024-06-05T18:11:01Z level=error msg=Error finding AWS credentials (did you set the AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variables?): NoCredentialProviders: no valid providers in chain. Deprecated. For verbose messaging see aws.Config.CredentialsChainVerboseErrors time=2024-06-05T[18](https://github.com/gruntwork-test/testing-terragrunt-with-web-identity/actions/runs/9389092410/job/25855946545#step:6:19):11:01Z level=error msg=Unable to determine underlying exit code, so Terragrunt will exit with error code 1 ``` Fixed by updating AssumeIamRole
1 parent ab21e33 commit c522e88

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

aws_helper/config.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,10 @@ func AssumeIamRole(iamRoleOpts options.IAMRoleOptions) (*sts.Credentials, error)
214214

215215
sess.Handlers.Build.PushFrontNamed(addUserAgent)
216216

217+
if iamRoleOpts.RoleARN != "" && iamRoleOpts.WebIdentityToken != "" {
218+
sess.Config.Credentials = getWebIdentityCredentialsFromIAMRoleOptions(sess, iamRoleOpts)
219+
}
220+
217221
_, err = sess.Config.Credentials.Get()
218222
if err != nil {
219223
return nil, errors.WithStackTraceAndPrefix(err, "Error finding AWS credentials (did you set the AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variables?)")
@@ -239,7 +243,7 @@ func AssumeIamRole(iamRoleOpts options.IAMRoleOptions) (*sts.Credentials, error)
239243
} else {
240244
tb, err := os.ReadFile(iamRoleOpts.WebIdentityToken)
241245
if err != nil {
242-
return nil, err
246+
return nil, errors.WithStackTrace(err)
243247
}
244248
token = string(tb)
245249
}

0 commit comments

Comments
 (0)