Skip to content

Nessie S3 remote signing endpoint not refreshed #1825

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

Open
1 of 3 tasks
lwfitzgerald opened this issue Mar 21, 2025 · 1 comment
Open
1 of 3 tasks

Nessie S3 remote signing endpoint not refreshed #1825

lwfitzgerald opened this issue Mar 21, 2025 · 1 comment

Comments

@lwfitzgerald
Copy link

Apache Iceberg version

main (development)

Please describe the bug 🐞

When accessing Iceberg tables provided by an instance of the Nessie catalog, if remote S3 signing is enabled on Nessie, signing requests use a stale endpoint after 3 hours, causing S3 requests to fail.

Nessie supports S3 remote signing by setting a custom S3 signer endpoint via s3.signer.endpoint in the table configs it returns. As part of the s3.signer.endpoint it includes a HMAC signature with an expiry of 3 hours.

pyiceberg does not appear to refresh the s3.signer.endpoint (from the table config) after the first interaction with a table, meaning that after 3 hours signing requests to Nessie start failing.

This issue also exists in the Iceberg implementation for Spark - apache/iceberg#12602.

Willingness to contribute

  • I can contribute a fix for this bug independently
  • I would be willing to contribute a fix for this bug with guidance from the Iceberg community
  • I cannot contribute a fix for this bug at this time
@Fokko
Copy link
Contributor

Fokko commented Mar 24, 2025

Thanks for raising this @lwfitzgerald. When we refresh the token, we could also recreate a new FileIO, which does not look entirely unreasonable. Let's hear what comes out of apache/iceberg#12602

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants