Check ID: iam_customer_unattached_policy_no_administrative_privileges
Provider: AWS
Service: iam
Severity: MEDIUM
Categories: identity-access
Resource type: AwsIamPolicy

What this check verifies

Customer-managed IAM policies that are unattached are evaluated for statements granting full administrative access using *:* wildcards. The focus is on policies whose documents include unrestricted actions on all resources.

Risk

An unattached policy with *:* can be attached accidentally or maliciously, granting account-wide control. Attackers could read sensitive data (confidentiality), alter or delete resources (integrity), and disrupt services (availability), enabling rapid privilege escalation and lateral movement.

Recommendation

Remove or redesign these policies to enforce least privilege:
  • Avoid * in actions/resources; scope precisely and use conditions
  • Apply permissions boundaries and SCPs as guardrails
  • Require peer review and policy validation before attachment
  • Use analysis tools to refine permissions and delete unused policies

Remediation

aws iam create-policy-version --policy-arn <example_resource_arn> --set-as-default --policy-document '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Action":"iam:GetAccountSummary","Resource":"*"}]}'

References

Where this check fires

This check runs on every scheduled scan against your AWS account. Findings appear at Cloud Security → Findings filterable by Check ID = iam_customer_unattached_policy_no_administrative_privileges. 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