ericyangliu opened a new issue, #4711:
URL: https://github.com/apache/polaris/issues/4711

   ### Describe the bug
   
   We're running Polaris on EKS with IRSA, using the Kubernetes service account 
role as the Polaris AWS identity.
   
   While investigating STS usage, we noticed Polaris is making a lot of 
`AssumeRoleWithWebIdentity` calls for its own IRSA role. The calls are coming 
from the Java AWS SDK user agent and each call has a new 
`aws-sdk-java-<timestamp>` session name.
   
   The volume looks higher than expected for normal AWS SDK credential refresh 
behavior, so it seems like the WebIdentity credential provider/cache may not be 
getting reused across Polaris requests.
   
   ### To Reproduce
   
   1. Run Polaris on EKS with IRSA.
   2. Do not configure static AWS credentials for Polaris.
   3. Send normal catalog traffic to an S3-backed catalog.
   4. Query CloudTrail for `AssumeRoleWithWebIdentity` events on the Polaris 
service account role.
   
   I don't have a small local reproducer yet; the observations below are from 
two EKS deployments.
   
   ### Actual Behavior
   
   In one deployment, CloudTrail showed this pattern for the Polaris IRSA role:
   
   ```text
   Polaris version: 1.3.0-incubating
   Window: 2026-06-11T18:19:00Z to 2026-06-11T18:20:00Z
   Event: AssumeRoleWithWebIdentity
   
   Total events for the Polaris role: 1,261
   
   By user agent:
   - aws-sdk-java/2.39.2 ... api/STS#2.39.x ... lang/java#21.0.9: 1,259
   - aws-sdk-go-v2 ... app/external-secrets: 2
   ```
   
   A sanitized event looks like:
   
   ```json
   {
     "eventTime": "2026-06-11T18:19:00Z",
     "eventName": "AssumeRoleWithWebIdentity",
     "userAgent": "aws-sdk-java/2.39.2 ... api/STS#2.39.x ... lang/java#21.0.9",
     "roleArn": "arn:aws:iam::<account-id>:role/<polaris-irsa-role>",
     "roleSessionName": "aws-sdk-java-<timestamp>",
     "sourceIPAddress": "<redacted>"
   }
   ```
   
   A second deployment showed the same shape at lower volume:
   
   ```text
   Window: 2026-06-11T18:10:00Z to 2026-06-11T18:20:00Z
   Total events for the Polaris role: 434
   
   By user agent:
   - aws-sdk-java/2.39.2 ... api/STS#2.39.x ... lang/java#21.0.9: 412
   - aws-sdk-go/...: 22
   ```
   
   ### Expected Behavior
   
   Polaris should reuse AWS WebIdentity credentials according to the normal AWS 
SDK refresh behavior.
   
   I would not expect ordinary catalog traffic to produce hundreds or thousands 
of `AssumeRoleWithWebIdentity` calls for the Polaris pod role in a short window.
   
   ### Additional context
   
   One possible area to check is the service identity path. In 
1.3.0-incubating, `AwsIamServiceIdentityConfiguration.awsCredentialsProvider()` 
builds a `DefaultCredentialsProvider` when static credentials are not 
configured. If that path runs per request, the AWS SDK's WebIdentity credential 
cache may not be reused as intended.
   
   ### System information
   
   OS: Linux on EKS
   Java: 21
   Polaris version: 1.3.0-incubating
   AWS SDK user agent observed: aws-sdk-java/2.39.2
   Storage: AWS S3
   Auth setup: EKS IRSA, no static AWS access keys configured for Polaris
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to