Skip to content

Commit fd13655

Browse files
authored
Merge pull request #377 from concourse/issue-376
fix error when assuming IAM role(s)
2 parents 02ef7a2 + efa0885 commit fd13655

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

types.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import (
1717
"github.com/aws/aws-sdk-go-v2/aws"
1818
"github.com/aws/aws-sdk-go-v2/config"
1919
"github.com/aws/aws-sdk-go-v2/credentials"
20+
"github.com/aws/aws-sdk-go-v2/credentials/stscreds"
2021
"github.com/aws/aws-sdk-go-v2/service/ecr"
2122
"github.com/aws/aws-sdk-go-v2/service/sts"
2223
"github.com/google/go-containerregistry/pkg/authn"
@@ -405,18 +406,17 @@ func (source *Source) AuthenticateToECR() bool {
405406
for _, roleArn := range awsRoleArns {
406407
logrus.Debugf("assuming role: %s", roleArn)
407408
stsClient := sts.NewFromConfig(awsConfig)
408-
result, err := stsClient.AssumeRole(context.TODO(), &sts.AssumeRoleInput{
409-
RoleArn: aws.String(roleArn),
410-
})
409+
roleCreds := stscreds.NewAssumeRoleProvider(stsClient, roleArn)
410+
creds, err := roleCreds.Retrieve(context.Background())
411411
if err != nil {
412412
logrus.Errorf("error assuming role '%s': %s", roleArn, err.Error())
413413
return false
414414
}
415415

416416
awsConfig.Credentials = aws.NewCredentialsCache(credentials.NewStaticCredentialsProvider(
417-
*result.Credentials.SecretAccessKey,
418-
*result.Credentials.SecretAccessKey,
419-
*result.Credentials.SessionToken),
417+
creds.AccessKeyID,
418+
creds.SecretAccessKey,
419+
creds.SessionToken),
420420
)
421421
}
422422

0 commit comments

Comments
 (0)