Closed jspdown closed 7 months ago
After some digging with the help of Traefik community in https://github.com/traefik/traefik/issues/10195, we've located a regression since the upgrade from aws-sdk-go
v1.39.0 to aws-sdk-go-v2
v1.19.0 introduce in that commit https://github.com/go-acme/lego/commit/fc47c35e89562ca8606534f53a650b74ed1ab6eb
aws-sdk-go
didn't force the user to specify an AWS region on some service. You can find the list of services here: https://github.com/aws/aws-sdk-go/blob/7087ed2d41a8462e40c00a473fa884d79124b660/aws/endpoints/v3model.go#L183-L200
But the new version aws-sdk-go-v2
is much more strict and doesn't allow it.
The fact that we didn't see it coming in the unit tests is because it's a check done in the endpoint Resolver that we mock: https://github.com/aws/aws-sdk-go-v2/blob/57a201c7bb214737f78cf871fbeafaa929bf1d8d/service/route53/internal/endpoints/endpoints.go#L66-L77
Hello,
You said:
I would expect to still be able to not provide an AWS region.
and
But the new version aws-sdk-go-v2 is much more strict and doesn't allow it.
We will not revert the migration to the aws-sdk-go-v2, so what is your suggestion?
Just reporting the issue, from the outside it's a regression.
Now I understand that there's no much we can do. If we provided a default region directly in Lego like it's done in lightsail, it would create even more breaking change for those using AWS_SDK_LOAD_CONFIG
.
So yes, I agree with you. Can't be fixed.
So we agree on the conclusion: it can't be fixed, the region is now a requirement but it depends on the type of credentials used to authenticate.
Welcome
What did you expect to see?
Since I upgraded from Lego v4.13.3 to v4.14.0 I can no longer use the
route-53
provider without explicitly providing an AWS region (e.g.AWS_REGION
env variable).What did you see instead?
I would expect to still be able to not provide an AWS region.
How do you use lego?
Through Traefik
Reproduction steps
Run on v4.14.0:
You get the following error:
Run the same command on v4.13.3
No issue
Version of lego
Logs
Go environment (if applicable)