Skip to content

[Cherry-pick to branch-1.3] [#13977] fix(credential): Scope and validate cloud credentials (#13987) - #14129

Open
github-actions[bot] wants to merge 2 commits into
branch-1.3from
cherry-pick-bbb73f1a-to-branch-1.3
Open

github-actions[bot] wants to merge 2 commits into
branch-1.3from
cherry-pick-bbb73f1a-to-branch-1.3

Conversation

@github-actions

@github-actions github-actions Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Cherry-pick information

What changes were proposed in this pull request?

  • Scope path-based AWS IRSA credentials with an STS session policy and skip catalog-level IRSA vending.
  • Normalize AWS and OSS role session names, reject unsupported wasb(s) locations, and include every requested OSS path in the listing policy.
  • Add regression tests and update the credential-vending documentation.

Why are the changes needed?

Catalog-level IRSA requests could expose the role's full permissions. Invalid session names, unsupported ADLS locations, and incomplete OSS listing policies could prevent correct credential vending.

Fix: #13977

Does this PR introduce any user-facing change?

Catalog-level requests no longer return aws-irsa credentials. wasb(s) locations fail with an unsupported-location error. STS session names are normalized. No property keys change.

How was this patch tested?

### What changes were proposed in this pull request?

- Do not vend unscoped `aws-irsa` credentials for catalog-level
requests. Keep table-path requests scoped by an STS session policy.
- Normalize AWS and OSS STS role session names to fit provider character
and length limits while retaining a stable user identifier.
- Reject `wasb(s)` locations before vending an ADLS SAS that Iceberg
would not look up.
- Include every requested path in the OSS `ListObjects` policy for a
bucket.
- Add regression tests and update the IRSA credential-vending
documentation.

### Why are the changes needed?

Catalog-level IRSA requests could expose the assumed role's full
permissions. Invalid session names prevented credential generation for
some users. Blob-host ADLS locations could receive unusable SAS
properties, and OSS requests with multiple paths omitted listing access
to later paths.

`main` already rejects ADLS paths outside the configured storage
account, so this PR preserves that existing behavior while addressing
the remaining issues.

Fix: #13977

### Does this PR introduce _any_ user-facing change?

Catalog-level requests no longer return `aws-irsa` credentials.
`wasb(s)` locations now fail with a clear unsupported-location error.
STS session names change to valid, bounded names. No property keys
change.

### How was this patch tested?

- Ran `:common:test`, `:bundles:aws:test`, `:bundles:azure:test`, and
`:bundles:aliyun:test` with focused regression classes for the changed
behavior and `-PskipITs`.
- Ran Spotless on the four changed Java modules.
- Ran `git diff --cached --check` before committing.
# Conflicts:
#	docs/security/credential-vending.md
@github-actions github-actions Bot added cherry-pick Automatically opened cherry-pick PR cherry-pick-conflict Cherry-pick has conflicts; needs human resolution before merge labels Oct 22, 2026
@github-actions
github-actions Bot requested a review from jerryshao October 22, 2026 03:59
@roryqi roryqi changed the title [DO NOT MERGE] [Cherry-pick to branch-1.3] [#13977] fix(credential): Scope and validate cloud credentials (#13987) [Cherry-pick to branch-1.3] [#13977] fix(credential): Scope and validate cloud credentials (#13987) Oct 22, 2026
@roryqi roryqi removed the cherry-pick-conflict Cherry-pick has conflicts; needs human resolution before merge label Oct 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cherry-pick Automatically opened cherry-pick PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant