-
Notifications
You must be signed in to change notification settings - Fork 3.7k
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
Issues connecting to S3 on EKS #11303
Issues connecting to S3 on EKS #11303
Comments
This appears to still be the case on master/0.22.0. The root cause appears to be that the WebIdentityTokenProvider isn't able to be initialised due to a ClassNotFound exception being raised:
Curiously the sts module its complaining about appears to be present in the s3 extension folder and loaded by Druid during startup:
@himadrisingh did you test this feature on EKS and if so did it require any specific Druid configuration to work with IRSA? |
@EwanValentine do you mind showing your service account on k8s ?
No it does not need any druid configuration, annotation needs to be added in the kubernetes service account object thats it. |
BTW what version of k8s are you using it ? |
kube versions:
SA account annotations:
SA properly injecting token into pod:
Worth mentioning we are using IRSA successfully for other services/software so everything else is working AFAICT. |
Hi @josephglanville , @AdheipSingh , Thanks for all your efforts trying to get the AWS extensions utilising the WebIdentityTokenProvider and K8S ServiceAccounts. I am not quite sure how to debug this, my initial suspicion was that maybe the indexing service creates a fork that doesn't have the AWS_WEB_IDENTITY_TOKEN_FILE set (we're running the kinesis indexing task on coordinator/overlord, not utilising remote middlemanager). Alternatively, could there be a problem with the default |
I'm pretty sure it's a class path problem as it's caused by a ClassNotFound error but I haven't had time to dig deeper yet. |
we have the same issue |
Anyone ever find a solution to this, because I am dealing with the exact same problem? |
It seems like Also, it looks like talking to Kinesis would work because The seemingly useful |
Also, |
Is this resolved? I am getting the same issue. |
Fixes #11303 WebIdentityTokenProvider in the defaultAWSCredentialsProviderChain can not actually be used because the aws-java-sdk-sts jar is not in the classpath of S3 extension at runtime, since each extension has its own classpath. This results in the inability to assume STS role before generating authentication token. The error message from getCredentials() is: "Unable to load credentials from WebIdentityTokenCredentialsProvider: To use assume role profiles the aws-java-sdk-sts module must be on the class path" This PR will fix multiple authentication modules that are dependent on the WebIdentityTokenProvider, including AWS IAM based RDS authentication and S3 authentication.
Fixes apache#11303 WebIdentityTokenProvider in the defaultAWSCredentialsProviderChain can not actually be used because the aws-java-sdk-sts jar is not in the classpath of S3 extension at runtime, since each extension has its own classpath. This results in the inability to assume STS role before generating authentication token. The error message from getCredentials() is: "Unable to load credentials from WebIdentityTokenCredentialsProvider: To use assume role profiles the aws-java-sdk-sts module must be on the class path" This PR will fix multiple authentication modules that are dependent on the WebIdentityTokenProvider, including AWS IAM based RDS authentication and S3 authentication.
I'm attempting to use S3 deep storage on EKS, however I just get a 403 error. I'm not in a position to use a client secret pair from our AWS account directly. But the nodes within our K8s cluster have service accounts. Attached to my Druid clusters namespace is a role which has all permissions for a specific bucket. However, when I attempt to load the sample dataset into Druid, I get an AWS 403 error in the logs.
There's a web token file set in the environment variables, which typically any AWS SDK related stuff normally picks up. I'm also explicitly passing in the region etc
Affected Version
0.20, 0.21, 0.21.1-rc
Description
Please include as much detailed information about the problem as possible.
Cluster size
Two to three m5.large's
Configurations in use
Load the sample dataset, using the default settings
The error message or stack traces encountered. Providing more context, such as nearby log messages or even entire logs, can be helpful.
The text was updated successfully, but these errors were encountered: