pass nil function for auth/aws when no externalID supplied (#27858)

This commit is contained in:
kpcraig
2024-07-26 14:55:04 -04:00
committed by GitHub
parent 5787fa20f6
commit 32fdae08d6
2 changed files with 11 additions and 1 deletions

View File

@@ -9,6 +9,8 @@ import (
"strconv"
"time"
"github.com/aws/aws-sdk-go/aws/credentials"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/credentials/stscreds"
"github.com/aws/aws-sdk-go/aws/session"
@@ -130,7 +132,12 @@ func (b *backend) getClientConfig(ctx context.Context, s logical.Storage, region
if err != nil {
return nil, err
}
assumedCredentials := stscreds.NewCredentials(sess, stsRole, func(p *stscreds.AssumeRoleProvider) { p.ExternalID = aws.String(externalID) })
var assumedCredentials *credentials.Credentials
if externalID != "" {
assumedCredentials = stscreds.NewCredentials(sess, stsRole, func(p *stscreds.AssumeRoleProvider) { p.ExternalID = aws.String(externalID) })
} else {
assumedCredentials = stscreds.NewCredentials(sess, stsRole)
}
// Test that we actually have permissions to assume the role
if _, err = assumedCredentials.Get(); err != nil {
return nil, err

3
changelog/27858.txt Normal file
View File

@@ -0,0 +1,3 @@
```release-note:bug
auth/aws: fixes an issue where not supplying an external id was interpreted as an empty external id
```