[feat](Iceberg)Rest & S3Table Support Iam-role#60498
[feat](Iceberg)Rest & S3Table Support Iam-role#60498CalvinKirs wants to merge 1 commit intoapache:masterfrom
Conversation
|
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
|
run buildall |
FE UT Coverage ReportIncrement line coverage |
TPC-H: Total hot run time: 31840 ms |
ClickBench: Total hot run time: 28.31 s |
FE Regression Coverage ReportIncrement line coverage |
|
Thanks for picking this up and building on #59893, @CalvinKirs. I want to clarify an important distinction about what this PR actually enables vs. what users on EKS/GKE typically need. What this PR adds: cross-account assume-role support ( What this PR does NOT add: support for IRSA (IAM Roles for Service Accounts) or, more generally, the AWS default credentials chain without any explicit credential configuration. The validation in boolean hasAccessKeyAndSecret = ...;
boolean hasIamRole = ...;
return !hasAccessKeyAndSecret && !hasIamRole; // fails validationWith IRSA (and future equivalents like GKE Workload Identity or ECS task roles), the pod already has credentials injected via the service account. The user doesn't have a Regarding the assume-role path itself:
So the assume-role feature works, but it's solving a different use case (cross-account access) than what most EKS users need (direct IRSA credentials without specifying any role_arn). Our original PR #59893 takes a simpler approach: when no explicit credentials are provided, we just don't set any credential properties, allowing Iceberg/AWS SDK to resolve credentials through the default chain. This covers IRSA, instance profiles, environment variables, and any future pod identity mechanism — with zero configuration in the catalog DDL. I'd suggest either:
Happy to collaborate on merging the two approaches. |
FYI #59893
The initial implementation was contributed by https://github.com/Sbaia . Many thanks for his contributions.