-
Notifications
You must be signed in to change notification settings - Fork 378
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
IAM and Route53 resources fail to Reconcile in non aws partitions #596
Comments
@smcavallo Thanks for identifying this! Are credentials for non- |
Yes - if I'm understanding what you're asking - you can't share credentials or use role trust across aws partitions, and as such anything scoped for a global region would be limited to that single global region. Ex. setting a global region to Alternatively - if the actual region is passed through the aws sdk is smart enough to use the correct endpoint. I was able to verify that using a region of |
Note that this constant is used only in IAM because it is region-less. In other resources, we use only the region parameter given in spec. |
Yes - 100%. Though when provided with a regional endpoint the default endpoint resolvers should find the right endpoint to send requests to. Ex. if you set a region of This issue can be worked around when using some of the identity providers by setting an annotation on the
The above workaround won't work when using pod-iam though. |
Could we add optional |
@negz haha this is exactly what we have decided on in our DM before the community meeting. |
@smcavallo any chance to check if #1329 fixes your issue ? Is merged in master |
With the PR mentioned above, what are the expectations for users in the non global partitions? Are users in non global partitions expected to use endpoint configuration for all of their
If users would like to managed IAM resources in non global partitions, are they expected to use a particular ProviderConfig with endpoint configuration? Or does it make sense to handle non global partitions in the provider? |
New Implementation with #1364 |
What happened?
In non-aws partitions (such as gov cloud and cn) iam and route53 resources fail to reconcile.
While using aws credentials the exception is
InvalidClientTokenId: The security token included in the request is invalid.
While using pod-iam it is not able to find the OIDC provider.
How can we reproduce it?
Attempt to create any iam or route53 resource in gov cloud or cn or non-aws based partition.
What environment did it happen in?
Crossplane version: 0.17.0 (all)
The issue is that these clients have a global region hardcoded as
aws-global
which is only valid for the aws partition.https://github.com/crossplane/provider-aws/blob/35d9474782ee0f85a3820ea8175e5d59c2c3e4b8/pkg/clients/aws.go#L59
I was able to successfully create iam resources in gov cloud by changing the GlobalRegion to
aws-us-gov-global
per the below.aws partition
https://github.com/aws/aws-sdk-go-v2/blob/59774b18837c670a2c5327ae244c664459462697/codegen/smithy-aws-go-codegen/src/main/resources/software/amazon/smithy/aws/go/codegen/endpoints.json#L3048-L3062
gov partition
https://github.com/aws/aws-sdk-go-v2/blob/59774b18837c670a2c5327ae244c664459462697/codegen/smithy-aws-go-codegen/src/main/resources/software/amazon/smithy/aws/go/codegen/endpoints.json#L8103-L8120
Supported partitions according to the aws-sdk
The text was updated successfully, but these errors were encountered: