-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
AWS: Add S3 Access Grants Integration #9385
AWS: Add S3 Access Grants Integration #9385
Conversation
aws/src/main/java/org/apache/iceberg/aws/s3/S3FileIOProperties.java
Outdated
Show resolved
Hide resolved
aws/src/main/java/org/apache/iceberg/aws/s3/S3AccessGrantsPluginConfigurations.java
Outdated
Show resolved
Hide resolved
aws/src/main/java/org/apache/iceberg/aws/s3/S3FileIOProperties.java
Outdated
Show resolved
Hide resolved
aws/src/main/java/org/apache/iceberg/aws/s3/S3FileIOProperties.java
Outdated
Show resolved
Hide resolved
aws/src/main/java/org/apache/iceberg/aws/s3/S3AccessGrantsPluginConfigurations.java
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks good to me!
Seems like this is not getting much attraction from other reviewers. Given it is a pretty straightforward plugin integration, I will go ahead to merge it. We can fix things later if necessary. This also opens the question that if there is any other valuable plugins that we should consider adding integrations, we can do a search afterwards. Thanks for the work! |
This PR allows us to add support for S3 Access Grants (S3AG) to S3FileIO through adding a new SDK Plugin (https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/kafkaconnect/model/Plugin.html) for S3 Access Grants (https://github.com/aws/aws-s3-accessgrants-plugin-java-v2). We are only adding the S3 Access Grants Plugin (which is available publicly on Maven) to the S3 Client Factory if the users enable S3AG on the catalog.
The additional options added in this CR mirror EMR's options for enabling S3AG support on EMR: https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-access-grants.html#emr-access-grants-launch-ec2. The only difference in experience between Iceberg and EMR (in general) is the fact that S3AG must be enabled individually per Iceberg catalog. This is as a result of a lack of infrastructure in Iceberg to allow user configurations across catalogs for AWS Client level configurations. We are not aiming to re-architect Iceberg for this change - we only want to add support through whatever existing mechanisms already exist.