-
Notifications
You must be signed in to change notification settings - Fork 80
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
Add support for S3 to work with IAM assume role credential provider #6082
Comments
I will be working on the core side changes and @abaranec will be working on providing quick fixes on the enterprise side. |
Not sure if relevant, but note from https://docs.aws.amazon.com/sdkref/latest/guide/feature-assume-role-credentials.html in regards to SDK for Java 2.x:
|
If not executing in EC2 (where I think IAM role will be sufficiently discovered?), looks like there is a manual workflow where this can be done. https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-explicit.html |
Note: when running on EC2, the final step of the default credentials chain should check the IAM role attached to the EC2 instance:
see https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials-chain.html |
It's worthwhile to look at how iceberg builds the client when using AssumeRole: |
We'll need to ensure we adapt the iceberg s3 properties like |
I think a workaround is to have it specified in a configuration file:
or, if credentials are provided by EC2:
or, if credentials are provided by ECS:
|
Going forward, the recommended approach is to use configuration and credentials files to specify the roles, profile, etc. We have added support in S3Instructions to specify the aws default profile to use for deephaven, and made So closing this issue. |
We recently hit an issue with a customer while reading data from an Iceberg setup which uses Assume role credential provider.
In such a scenario, the a temporary set of credentials are fetched regularly to access AWS resources.
More details here: https://docs.aws.amazon.com/sdkref/latest/guide/access-assume-role.html
Currently, our S3 code doesn't support the assume role refreshing credentials, and only supports static credentials. That is why the reads with Iceberg fail with the error 401 access denied.
As part of this issue, we should
SystemPropertyCredentialsProvider
,ProfileCredentialsProvider
, etc.AWSSDKV2Credentials
public with annotation@InternalUseOnly
so that Enterprise team can add more credentials provider overloads in the future independently of core.The text was updated successfully, but these errors were encountered: