Skip to content

Commit db2061c

Browse files
authored
resolving endpoint for sts with sdkgov2 (#603)
1 parent 7ab96fa commit db2061c

File tree

4 files changed

+44
-81
lines changed

4 files changed

+44
-81
lines changed

go.mod

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,14 @@ go 1.24.6
44

55
require (
66
github.com/aws/amazon-vpc-cni-k8s v1.19.4
7-
github.com/aws/aws-sdk-go v1.55.6
8-
github.com/aws/aws-sdk-go-v2 v1.37.1
7+
github.com/aws/aws-sdk-go-v2 v1.38.3
98
github.com/aws/aws-sdk-go-v2/config v1.30.2
10-
github.com/aws/aws-sdk-go-v2/credentials v1.18.2
11-
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.1
9+
github.com/aws/aws-sdk-go-v2/credentials v1.18.10
10+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.6
1211
github.com/aws/aws-sdk-go-v2/service/autoscaling v1.52.1
1312
github.com/aws/aws-sdk-go-v2/service/ec2 v1.207.1
14-
github.com/aws/aws-sdk-go-v2/service/sts v1.35.1
15-
github.com/aws/smithy-go v1.22.5
13+
github.com/aws/aws-sdk-go-v2/service/sts v1.38.2
14+
github.com/aws/smithy-go v1.23.0
1615
github.com/go-logr/logr v1.4.2
1716
github.com/go-logr/zapr v1.3.0
1817
github.com/golang/mock v1.6.0
@@ -35,13 +34,13 @@ require (
3534
)
3635

3736
require (
38-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.1 // indirect
39-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.1 // indirect
37+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.6 // indirect
38+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.6 // indirect
4039
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 // indirect
41-
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0 // indirect
42-
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.1 // indirect
43-
github.com/aws/aws-sdk-go-v2/service/sso v1.26.1 // indirect
44-
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.31.1 // indirect
40+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1 // indirect
41+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.6 // indirect
42+
github.com/aws/aws-sdk-go-v2/service/sso v1.29.1 // indirect
43+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.34.2 // indirect
4544
github.com/fxamacker/cbor/v2 v2.7.0 // indirect
4645
github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
4746
github.com/google/btree v1.1.3 // indirect

go.sum

Lines changed: 22 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2,38 +2,36 @@ github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPd
22
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
33
github.com/aws/amazon-vpc-cni-k8s v1.19.4 h1:iD/b9BrDugBS7hxxL9uNmXfPrN6v+EHXO8fwR0EL4XQ=
44
github.com/aws/amazon-vpc-cni-k8s v1.19.4/go.mod h1:SH1f2zFQC3U7SlchI8Q3oarYhamjJXs1ysMSeviL2Lg=
5-
github.com/aws/aws-sdk-go v1.55.6 h1:cSg4pvZ3m8dgYcgqB97MrcdjUmZ1BeMYKUxMMB89IPk=
6-
github.com/aws/aws-sdk-go v1.55.6/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU=
7-
github.com/aws/aws-sdk-go-v2 v1.37.1 h1:SMUxeNz3Z6nqGsXv0JuJXc8w5YMtrQMuIBmDx//bBDY=
8-
github.com/aws/aws-sdk-go-v2 v1.37.1/go.mod h1:9Q0OoGQoboYIAJyslFyF1f5K1Ryddop8gqMhWx/n4Wg=
5+
github.com/aws/aws-sdk-go-v2 v1.38.3 h1:B6cV4oxnMs45fql4yRH+/Po/YU+597zgWqvDpYMturk=
6+
github.com/aws/aws-sdk-go-v2 v1.38.3/go.mod h1:sDioUELIUO9Znk23YVmIk86/9DOpkbyyVb1i/gUNFXY=
97
github.com/aws/aws-sdk-go-v2/config v1.30.2 h1:YE1BmSc4fFYqFgN1mN8uzrtc7R9x+7oSWeX8ckoltAw=
108
github.com/aws/aws-sdk-go-v2/config v1.30.2/go.mod h1:UNrLGZ6jfAVjgVJpkIxjLufRJqTXCVYOpkeVf83kwBo=
11-
github.com/aws/aws-sdk-go-v2/credentials v1.18.2 h1:mfm0GKY/PHLhs7KO0sUaOtFnIQ15Qqxt+wXbO/5fIfs=
12-
github.com/aws/aws-sdk-go-v2/credentials v1.18.2/go.mod h1:v0SdJX6ayPeZFQxgXUKw5RhLpAoZUuynxWDfh8+Eknc=
13-
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.1 h1:owmNBboeA0kHKDcdF8KiSXmrIuXZustfMGGytv6OMkM=
14-
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.1/go.mod h1:Bg1miN59SGxrZqlP8vJZSmXW+1N8Y1MjQDq1OfuNod8=
15-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.1 h1:ksZXBYv80EFTcgc8OJO48aQ8XDWXIQL7gGasPeCoTzI=
16-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.1/go.mod h1:HSksQyyJETVZS7uM54cir0IgxttTD+8aEoJMPGepHBI=
17-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.1 h1:+dn/xF/05utS7tUhjIcndbuaPjfll2LhbH1cCDGLYUQ=
18-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.1/go.mod h1:hyAGz30LHdm5KBZDI58MXx5lDVZ5CUfvfTZvMu4HCZo=
9+
github.com/aws/aws-sdk-go-v2/credentials v1.18.10 h1:xdJnXCouCx8Y0NncgoptztUocIYLKeQxrCgN6x9sdhg=
10+
github.com/aws/aws-sdk-go-v2/credentials v1.18.10/go.mod h1:7tQk08ntj914F/5i9jC4+2HQTAuJirq7m1vZVIhEkWs=
11+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.6 h1:wbjnrrMnKew78/juW7I2BtKQwa1qlf6EjQgS69uYY14=
12+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.6/go.mod h1:AtiqqNrDioJXuUgz3+3T0mBWN7Hro2n9wll2zRUc0ww=
13+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.6 h1:uF68eJA6+S9iVr9WgX1NaRGyQ/6MdIyc4JNUo6TN1FA=
14+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.6/go.mod h1:qlPeVZCGPiobx8wb1ft0GHT5l+dc6ldnwInDFaMvC7Y=
15+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.6 h1:pa1DEC6JoI0zduhZePp3zmhWvk/xxm4NB8Hy/Tlsgos=
16+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.6/go.mod h1:gxEjPebnhWGJoaDdtDkA0JX46VRg1wcTHYe63OfX5pE=
1917
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 h1:bIqFDwgGXXN1Kpp99pDOdKMTTb5d2KyU5X/BZxjOkRo=
2018
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3/go.mod h1:H5O/EsxDWyU+LP/V8i5sm8cxoZgc2fdNR9bxlOFrQTo=
2119
github.com/aws/aws-sdk-go-v2/service/autoscaling v1.52.1 h1:wj4AION3NjQvjOiI8wm+TVU8y+8EsTl7fSgJAzk9cgc=
2220
github.com/aws/aws-sdk-go-v2/service/autoscaling v1.52.1/go.mod h1:CDqMoc3KRdZJ8qziW96J35lKH01Wq3B2aihtHj2JbRs=
2321
github.com/aws/aws-sdk-go-v2/service/ec2 v1.207.1 h1:yIbrcRq0nKF75IlSiUlo4g/Qe3RzGBdDCR+WRZLf5IE=
2422
github.com/aws/aws-sdk-go-v2/service/ec2 v1.207.1/go.mod h1:ouvGEfHbLaIlWwpDpOVWPWR+YwO0HDv3vm5tYLq8ImY=
25-
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0 h1:6+lZi2JeGKtCraAj1rpoZfKqnQ9SptseRZioejfUOLM=
26-
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0/go.mod h1:eb3gfbVIxIoGgJsi9pGne19dhCBpK6opTYpQqAmdy44=
27-
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.1 h1:ky79ysLMxhwk5rxJtS+ILd3Mc8kC5fhsLBrP27r6h4I=
28-
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.1/go.mod h1:+2MmkvFvPYM1vsozBWduoLJUi5maxFk5B7KJFECujhY=
29-
github.com/aws/aws-sdk-go-v2/service/sso v1.26.1 h1:uWaz3DoNK9MNhm7i6UGxqufwu3BEuJZm72WlpGwyVtY=
30-
github.com/aws/aws-sdk-go-v2/service/sso v1.26.1/go.mod h1:ILpVNjL0BO+Z3Mm0SbEeUoYS9e0eJWV1BxNppp0fcb8=
31-
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.31.1 h1:XdG6/o1/ZDmn3wJU5SRAejHaWgKS4zHv0jBamuKuS2k=
32-
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.31.1/go.mod h1:oiotGTKadCOCl3vg/tYh4k45JlDF81Ka8rdumNhEnIQ=
33-
github.com/aws/aws-sdk-go-v2/service/sts v1.35.1 h1:iF4Xxkc0H9c/K2dS0zZw3SCkj0Z7n6AMnUiiyoJND+I=
34-
github.com/aws/aws-sdk-go-v2/service/sts v1.35.1/go.mod h1:0bxIatfN0aLq4mjoLDeBpOjOke68OsFlXPDFJ7V0MYw=
35-
github.com/aws/smithy-go v1.22.5 h1:P9ATCXPMb2mPjYBgueqJNCA5S9UfktsW0tTxi+a7eqw=
36-
github.com/aws/smithy-go v1.22.5/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI=
23+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1 h1:oegbebPEMA/1Jny7kvwejowCaHz1FWZAQ94WXFNCyTM=
24+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1/go.mod h1:kemo5Myr9ac0U9JfSjMo9yHLtw+pECEHsFtJ9tqCEI8=
25+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.6 h1:LHS1YAIJXJ4K9zS+1d/xa9JAA9sL2QyXIQCQFQW/X08=
26+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.6/go.mod h1:c9PCiTEuh0wQID5/KqA32J+HAgZxN9tOGXKCiYJjTZI=
27+
github.com/aws/aws-sdk-go-v2/service/sso v1.29.1 h1:8OLZnVJPvjnrxEwHFg9hVUof/P4sibH+Ea4KKuqAGSg=
28+
github.com/aws/aws-sdk-go-v2/service/sso v1.29.1/go.mod h1:27M3BpVi0C02UiQh1w9nsBEit6pLhlaH3NHna6WUbDE=
29+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.34.2 h1:gKWSTnqudpo8dAxqBqZnDoDWCiEh/40FziUjr/mo6uA=
30+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.34.2/go.mod h1:x7+rkNmRoEN1U13A6JE2fXne9EWyJy54o3n6d4mGaXQ=
31+
github.com/aws/aws-sdk-go-v2/service/sts v1.38.2 h1:YZPjhyaGzhDQEvsffDEcpycq49nl7fiGcfJTIo8BszI=
32+
github.com/aws/aws-sdk-go-v2/service/sts v1.38.2/go.mod h1:2dIN8qhQfv37BdUYGgEC8Q3tteM3zFxTI1MLO2O3J3c=
33+
github.com/aws/smithy-go v1.23.0 h1:8n6I3gXzWJB2DxBDnfxgBaSX6oe0d/t10qGz7OKqMCE=
34+
github.com/aws/smithy-go v1.23.0/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI=
3735
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
3836
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
3937
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
@@ -87,8 +85,6 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
8785
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
8886
github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 h1:JeSE6pjso5THxAzdVpqr6/geYxZytqFMBCOtn/ujyeo=
8987
github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674/go.mod h1:r4w70xmWCQKmi1ONH4KIaBptdivuRPyosB9RmPlGEwA=
90-
github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
91-
github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
9288
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
9389
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
9490
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=

pkg/aws/ec2/api/wrapper.go

Lines changed: 9 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,6 @@ import (
3434
"github.com/aws/aws-sdk-go-v2/credentials/stscreds"
3535
"github.com/aws/aws-sdk-go-v2/feature/ec2/imds"
3636

37-
"github.com/aws/aws-sdk-go/aws/endpoints"
38-
3937
"github.com/aws/aws-sdk-go-v2/service/ec2"
4038
ec2types "github.com/aws/aws-sdk-go-v2/service/ec2/types"
4139
"github.com/aws/aws-sdk-go-v2/service/sts"
@@ -551,14 +549,15 @@ func (e *ec2Wrapper) getClientUsingAssumedRole(instanceRegion, roleARN, clusterN
551549
}
552550

553551
// Get the regional sts end point
554-
regionalSTSEndpoint, err := e.getRegionalStsEndpoint(partitionID, region)
552+
regionalSTSEndpoint, err := e.getRegionalStsEndpoint(region)
555553
if err != nil {
556554
return nil, fmt.Errorf("failed to get the regional sts endpoint for region %s: %v %v",
557555
instanceRegion, err, partitionID)
558556
}
557+
e.log.Info("got the regional sts endpoint", "endpoint", regionalSTSEndpoint)
559558

560559
regionalProvider := stscreds.NewAssumeRoleProvider(
561-
e.createSTSClient(cfg, client, regionalSTSEndpoint.URL, sourceAcct, sourceArn),
560+
e.createSTSClient(cfg, client, regionalSTSEndpoint, sourceAcct, sourceArn),
562561
roleARN,
563562
func(o *stscreds.AssumeRoleOptions) {
564563
o.Duration = time.Minute * 60
@@ -903,36 +902,14 @@ func (e *ec2Wrapper) CreateNetworkInterfacePermission(input *ec2.CreateNetworkIn
903902
return output, err
904903
}
905904

906-
func (e *ec2Wrapper) getRegionalStsEndpoint(partitionID, region string) (endpoints.ResolvedEndpoint, error) {
907-
var partition *endpoints.Partition
908-
stsServiceID := "sts"
909-
for _, p := range endpoints.DefaultPartitions() {
910-
if partitionID == p.ID() {
911-
partition = &p
912-
break
913-
}
914-
}
915-
if partition == nil {
916-
return endpoints.ResolvedEndpoint{}, fmt.Errorf("partition %s not valid", partitionID)
917-
}
918-
919-
stsSvc, ok := partition.Services()[stsServiceID]
920-
if !ok {
921-
e.log.Info("STS service not found in partition, generating default endpoint.", "Partition:", partitionID)
922-
// Add the host of the current instances region if the service doesn't already exists in the partition
923-
// so we don't fail if the service is not present in the go sdk but matches the instances region.
924-
res, err := partition.EndpointFor(stsServiceID, region, endpoints.STSRegionalEndpointOption, endpoints.ResolveUnknownServiceOption)
925-
if err != nil {
926-
return endpoints.ResolvedEndpoint{}, fmt.Errorf("error resolving endpoint for %s in partition %s. err: %v", region, partition.ID(), err)
927-
}
928-
return res, nil
929-
}
930-
931-
res, err := stsSvc.ResolveEndpoint(region, endpoints.STSRegionalEndpointOption)
905+
func (e *ec2Wrapper) getRegionalStsEndpoint(region string) (string, error) {
906+
r := sts.NewDefaultEndpointResolverV2()
907+
params := sts.EndpointParameters{Region: &region}
908+
ep, err := r.ResolveEndpoint(context.Background(), params)
932909
if err != nil {
933-
return endpoints.ResolvedEndpoint{}, fmt.Errorf("error resolving endpoint for %s in partition %s. err: %v", region, partition.ID(), err)
910+
return "", err
934911
}
935-
return res, nil
912+
return ep.URI.String(), nil
936913
}
937914

938915
func (e *ec2Wrapper) DisassociateTrunkInterface(input *ec2.DisassociateTrunkInterfaceInput) error {

pkg/aws/ec2/api/wrapper_test.go

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,6 @@ func Test_getRegionalStsEndpoint(t *testing.T) {
2222
want string
2323
wantErr bool
2424
}{
25-
{
26-
name: "service doesn't exist in partition",
27-
args: args{
28-
partitionID: "aws-iso-f",
29-
region: "testregions",
30-
},
31-
want: "https://sts.testregions.csp.hci.ic.gov",
32-
wantErr: false,
33-
},
3425
{
3526
name: "region doesn't exist in partition",
3627
args: args{
@@ -52,12 +43,12 @@ func Test_getRegionalStsEndpoint(t *testing.T) {
5243
}
5344
for _, tt := range tests {
5445
t.Run(tt.name, func(t *testing.T) {
55-
got, err := ec2Wapper.getRegionalStsEndpoint(tt.args.partitionID, tt.args.region)
46+
got, err := ec2Wapper.getRegionalStsEndpoint(tt.args.region)
5647
if (err != nil) != tt.wantErr {
5748
t.Errorf("getRegionalStsEndpoint() error = %v, wantErr %v", err, tt.wantErr)
5849
return
5950
}
60-
if got.URL != tt.want {
51+
if got != tt.want {
6152
t.Errorf("getRegionalStsEndpoint() = %v, want %v", got, tt.want)
6253
}
6354
})

0 commit comments

Comments
 (0)