IAM role with admin privileges can be assumed by unexpected principals
- Severity
- High
- Service
- IAM
- Check ID
- IAM_UNEXPECTED_ADMIN_PRINCIPAL
What this check finds
Admins in an account should be assumed by people. This rule detects IAM Roles that have admin privileges which can be granted to EC2s and other services.
Passing looks like: No admin role assumable by unexpected principals.
How to fix it
Restrict the role's trust policy to only allow assumption by specific, expected human principals (not EC2 or broad service principals). Remove admin permissions from roles intended for EC2 instances and replace with least-privilege policies.
AWS console
IAM → Roles → Trust relationships → Edit.
Compliance controls it is evidence for
A failing result counts against these controls in KloudLytics; a passing one is evidence towards them. How compliance mapping works
| Framework | Controls |
|---|---|
| PCI-DSS v4.0.1 |
|
| NIST SP 800-53 Rev5 (Moderate) |
|
| NIST Cybersecurity Framework 2.0 |
|
| ISO/IEC 27001:2022 Annex A |
|
Checked on every scan
KloudLytics runs this check each time it scans a connected AWS account, through a read-only role, and lists every affected resource with its region. On Pro and Business a fix is written for the specific resource rather than the general case above. The exact access it needs
More IAM checks
- HighDeprecated or flawed AWS managed policy in use
- HighIAM role allows assumption from anywhere
- HighIAM role with s3 listing and get privileges can be assumed by unexpected principals
- HighIAM user access key has not been rotated in over 180 days
- HighIncorrect policy used to attempt to enforce MFA
- HighInline policy allows privilege escalation to admin
- HighPrincipal has an attached policy granting administrative access
- MediumExpired SSL/TLS certificate stored in IAM