Skip to content

Fix cross-account sts:AssumeRole requires identity policy (#8) - #24

Merged
jplock merged 2 commits into
mainfrom
fix/issue-8-cross-account-assume-role
May 31, 2026
Merged

Fix cross-account sts:AssumeRole requires identity policy (#8)#24
jplock merged 2 commits into
mainfrom
fix/issue-8-cross-account-assume-role

Conversation

@jplock

@jplock jplock commented May 31, 2026

Copy link
Copy Markdown
Member

Fixes #8


Note

Medium Risk
Changes authorization outcomes for cross-account role assumption in the IAM evaluator—callers relying on the old trust-only AssumeRole behavior will see denies until identity policies are modeled.

Overview
Cross-account IAM evaluation no longer treats all sts:AssumeRole* actions as trust-policy-only. The engine now applies the trust policy alone shortcut only for sts:AssumeRoleWithSAML and sts:AssumeRoleWithWebIdentity (still case-insensitive). sts:AssumeRole is evaluated like other cross-account calls: identity and resource policies must both allow; trust policy by itself yields implicit deny on the identity side.

Unit and integration tests were split and retargeted: SAML/WebIdentity trust-only allow paths remain; plain AssumeRole with trust only now expects deny; case-insensitivity coverage uses AssumeRoleWithSAML instead of AssumeRole.

Reviewed by Cursor Bugbot for commit af0db0f. Bugbot is set up for automated code reviews on this repo. Configure here.

@jplock
jplock merged commit c31050c into main May 31, 2026
10 checks passed
@jplock
jplock deleted the fix/issue-8-cross-account-assume-role branch May 31, 2026 16:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Detail Bug] IAM evaluation incorrectly allows cross-account sts:AssumeRole with only a trust policy

1 participant