Skip to content

Commit ffc0bac

Browse files
committed
allow using assumeRoleChain with IAM resources
1 parent e2cb04e commit ffc0bac

4 files changed

Lines changed: 19 additions & 1 deletion

File tree

apis/v1beta1/types.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ type ProviderConfigSpec struct {
1717
// AssumeRoleChain defines the options for assuming an IAM role
1818
AssumeRoleChain []AssumeRoleOptions `json:"assumeRoleChain,omitempty"`
1919

20+
// AssumeRoleSTSRegion defines the region used for STS requests. If not defined,
21+
// the managed resource region will be used if available
22+
AssumeRoleSTSRegion *string `json:"assumeRoleSTSRegion,omitempty"`
23+
2024
// Endpoint is where you can override the default endpoint configuration
2125
// of AWS calls made by the provider.
2226
// +optional

apis/v1beta1/zz_generated.deepcopy.go

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/clients/provider_config.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -264,9 +264,14 @@ func UseProviderSecret(ctx context.Context, data []byte, profile, region string)
264264
// AssumeRoleWithWebIdentity & AssumeRoles.
265265
func GetRoleChainConfig(ctx context.Context, pcs *v1beta1.ProviderConfigSpec, cfg *aws.Config) (*aws.Config, error) {
266266
pCfg := cfg
267+
regionOpt := func(o *sts.Options) {
268+
if pcs.AssumeRoleSTSRegion != nil {
269+
o.Region = *pcs.AssumeRoleSTSRegion
270+
}
271+
}
267272
for _, aro := range pcs.AssumeRoleChain {
268273
stsAssume := stscreds.NewAssumeRoleProvider(
269-
sts.NewFromConfig(*pCfg), //nolint:contextcheck
274+
sts.NewFromConfig(*pCfg, regionOpt), //nolint:contextcheck
270275
aws.ToString(aro.RoleARN),
271276
SetAssumeRoleOptions(aro),
272277
)

package/crds/aws.upbound.io_providerconfigs.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,10 @@ spec:
9393
type: array
9494
type: object
9595
type: array
96+
assumeRoleSTSRegion:
97+
description: AssumeRoleSTSRegion defines the region used for STS requests.
98+
If not defined, the managed resource region will be used if available
99+
type: string
96100
credentials:
97101
description: Credentials required to authenticate to this provider.
98102
properties:

0 commit comments

Comments
 (0)