Skip to content
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

Proposal: Handling endpoint differences for S3 in the AWS SDK for Go v1 and v2 #33028

Open
gdavison opened this issue Aug 15, 2023 · 1 comment
Labels
enhancement Requests to existing resources that expand the functionality or scope. proposal Proposes new design or functionality. service/s3 Issues and PRs that pertain to the s3 service.

Comments

@gdavison
Copy link
Contributor

gdavison commented Aug 15, 2023

Description

The S3 resources in the AWS Provider are currently implemented using the AWS SDK for Go v1. The team will be updating the SDK for S3 (and other service) to the AWS SDK for Go v2. In v1, the S3 client uses a global endpoint (s3.amazonaws.com) in us-east-1 and regional endpoints (s3.<region>.amazonaws.com) for all others.

However, in v2, the S3 client uses regional endpoints for all regions. In practice, this change is unlikely to impact users, but some AWS account setups may restrict how endpoints are used, so it is potentially a breaking change.

v1 supports using regional endpoints for all regions using the environment variable AWS_S3_US_EAST_1_REGIONAL_ENDPOINT, the shared config parameter s3_us_east_1_regional_endpoint, or the Go config parameter S3UsEast1RegionalEndpoint. The valid values are legacy (i.e. global endpoint for us-east-1) or regional.

v2 supports uses regional endpoints for all regions, as well as supporting a pseudo-region aws-global which uses the global endpoint.

Proposal

  1. Add support for the S3 us-east-1 regional endpoint configuration settings to the AWS Provider. This will preserve the current behaviour unless it is set to regional, which will then use regional endpoints in all regions
  2. When the S3 client is updated to use the AWS SDK for Go v2, preserve the v1 behaviour of defaulting to the global endpoint in us-east-1 and continue supporting the configuration parameters
  3. When the AWS Provider v6 is released, deprecate support for the global S3 endpoint
  4. When the AWS Provider v7 is released, drop support for the global S3 endpoint

Affected Resource(s) and/or Data Source(s)

All S3 resources

Potential Terraform Configuration

No response

References

No response

Would you like to implement a fix?

None

@gdavison gdavison added the enhancement Requests to existing resources that expand the functionality or scope. label Aug 15, 2023
@github-actions
Copy link

Community Note

Voting for Prioritization

  • Please vote on this issue by adding a 👍 reaction to the original post to help the community and maintainers prioritize this request.
  • Please see our prioritization guide for information on how we prioritize.
  • Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for issue followers and do not help prioritize the request.

Volunteering to Work on This Issue

  • If you are interested in working on this issue, please leave a comment.
  • If this would be your first contribution, please review the contribution guide.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Requests to existing resources that expand the functionality or scope. proposal Proposes new design or functionality. service/s3 Issues and PRs that pertain to the s3 service.
Projects
None yet
Development

No branches or pull requests

1 participant