IAM role trusts a public OIDC provider without pinning the owner

Severity
High
Service
IAM
Check ID
IAM_ROLE_OIDC_TRUST_UNRESTRICTED

What this check finds

The role trusts GitHub Actions, GitLab.com, HCP Terraform or Cognito identity pools, but the trust policy does not pin the repository owner, group, organisation or identity pool. Anyone with an account at that provider can assume the role from their own workflow, pipeline or pool.

Passing looks like: Roles trusting a public OIDC provider pin the owner.

How to fix it

Add a condition on the provider's subject that names your owner, for GitHub: "StringLike": {"token.actions.githubusercontent.com:sub": "repo:<your-org>/<repo>:*"}, plus "StringEquals" on the :aud key. For GitLab.com pin project_path:<group>/, for HCP Terraform organization:<org>:, for Cognito pin cognito-identity.amazonaws.com:aud to your pool id.

AWS console

IAM → Roles → select role → Trust relationships → Edit trust policy.

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

Compliance controls mapped to IAM role trusts a public OIDC provider without pinning the owner
FrameworkControls
PCI-DSS v4.0.1
  • 7.2 Access to system components and data is appropriately defined and assigned
HIPAA Security Rule
  • 164.308(a)(3) Workforce Security — Access Authorization
  • 164.308(a)(4) Information Access Management
NIST SP 800-53 Rev5 (Moderate)
  • AC-3 Access Enforcement
  • AC-6 Least Privilege
NIST Cybersecurity Framework 2.0
  • PR.AA-05 Access permissions and authorizations are enforced with least privilege
ISO/IEC 27001:2022 Annex A
  • A.5.15 Access control
  • A.8.2 Privileged access rights

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

All IAM checks

Find out what is actually exposed in your AWS environment.

Connect one AWS account and run your first security assessment.

No credit card · Agentless · Read-only