Check ID:
Provider: AWS
Service:
Severity: HIGH
Categories:
Resource type:
iam_no_custom_policy_permissive_role_assumptionProvider: AWS
Service:
iamSeverity: HIGH
Categories:
identity-accessResource type:
AwsIamPolicyWhat this check verifies
Custom IAM policies withAllow statements that grant sts:AssumeRole (or sts:*/*) to a wildcard Resource.
Risk
BroadAssumeRole rights let principals obtain temporary credentials for many roles, enabling privilege escalation, lateral movement, and cross-account access where trusts allow. This jeopardizes confidentiality and integrity of data and the control plane.
Recommendation
Apply least privilege tosts:AssumeRole:
- Scope
Resourceto exact role ARNs - Require MFA and, for third parties,
ExternalId - Enforce permissions boundaries and SCPs to block wildcards
- Regularly remove unused role-assumption rights and separate duties
Remediation
- CLI
- Terraform
- Native IaC
- Dashboard steps
References
- https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html
- https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_permissions-to-switch.html#roles-usingrole-createpolicy
Where this check fires
This check runs on every scheduled scan against your AWS account. Findings appear at Cloud Security → Findings filterable byCheck ID = iam_no_custom_policy_permissive_role_assumption. To re-evaluate after a fix, hit Run now on the account’s schedule under Cloud Security → Schedules — the next scan re-checks this control and marks the finding fixed or keeps it persistent.
← Back to AWS checks