AWS IAM Permissions Review: Find and Reduce Excessive Access

AWS IAM Permissions Review: Find and Reduce Excessive Access

Review AWS IAM permissions to find excessive access. Compare policy scope, credential reports and Access Analyzer findings, then test and document changes.

An AWS IAM permissions review compares what an identity can do with what its owner needs it to do. Inventory the people and workloads, inspect their effective access, use activity evidence to identify candidates for reduction, then test scoped changes before removing broad permissions.

This guide covers AWS access review for a business owner working with an authorized administrator. It helps you ask for evidence and judge the proposed changes. An IAM user list alone is not a complete inventory of access to an AWS account.

TL;DR:

  • Review roles, federation and cross-account trust as well as IAM users.
  • Keep allowed access, observed activity and business need as separate evidence.
  • Check analyzer coverage and charges before enabling additional analysis.
  • Test normal operations, deployments and recovery before removing permissions.

For the wider infrastructure context, see our cloud architecture guide. Pair access review with the cloud cost review so a retained resource has both a business owner and an access owner.

Establish Scope and a Recovery Route

List the AWS accounts and environments included in the review. Identify who can approve access changes and who can recover from an accidental lockout. Use an authorized review identity with the permissions needed for the agreed investigation.

Preserve the account’s documented emergency access arrangements and verify who controls them. AWS recommends federation with temporary credentials for human users, roles for workloads and protection of the root user. IAM security practices.

Keep an inventory with these fields:

FieldWhat the reviewer should establish
Account and environmentWhere the identity can act and what would be affected
Identity and ownerHuman, workload or service identity, with a responsible person
Entry routeFederation, IAM Identity Center assignment, role assumption or long-lived credentials
Granted accessPolicies, trust conditions, resource scope and relevant restrictions
Observed activityAvailable evidence, dates and coverage limits
Required workflowsDaily tasks, deployments, recovery and occasional jobs
DecisionRetain, reduce, investigate or retire, with an owner and review date

Separate Three Questions

What is allowed? Inspect the identity and resource policies, role trust, permissions boundaries and applicable organization policies. A broad policy attached to a role is only part of that evaluation. AWS documents how the policy types interact and how explicit denies affect authorization. Policy evaluation logic.

What was observed? Review the relevant CloudTrail records, IAM last-accessed data and analyzer findings. Record what period and services the evidence covers.

What is needed? Ask the owner to identify the business workflows the identity must perform. Include restoration, certificate renewal, infrequent deployments and seasonal work that may not appear in a short observation window.

For example, an illustrative deployment role may have broad administrative access while ordinary logs show a small set of deployment actions. That makes it a review candidate. The next step is to identify the deployment and recovery permissions it actually needs, rather than infer a complete replacement policy from a quiet week.

Review These Access Patterns First

CandidateEvidence to requestPossible outcome after review
Routine human administrator accessJob duties, federation assignments and emergency-access arrangementsA narrower routine role with a separate controlled elevation path
Workload with long-lived access keysWhere the credential is used and whether the workload can use a roleA tested move to temporary credentials
Broad actions or resourcesRequired API actions, target resources and supported conditionsA smaller policy matching the documented workflow
Cross-account role trustThe other account’s purpose, allowed principals and trust conditionsRetained documented sharing or a narrower trust relationship
Inactive identity or unused permissionsActivity coverage, owner confirmation and infrequent tasksRetirement or reduction after dependencies are checked
Identity that can change permissions or pass rolesWho can grant access, change policies or delegate a role to a serviceMore controlled administrative and delegation paths

These are investigation candidates, not automatic findings of compromise. A broad permission can have a valid purpose; the review should establish that purpose and whether its scope is appropriate.

Use the Right Evidence Tool

Credential Reports

Use the account’s credential report to review IAM-user credential status, such as passwords and access keys. AWS also documents exclusions, including service-specific credentials and access keys beyond the first two per user. Check the corresponding inventories for those credentials, as well as roles and federated access. Credential report coverage.

Do not paste the full report into a public ticket or article. Keep account identifiers and access-review records in the business’s authorized documentation.

IAM Last-Accessed Information

Record the available tracking period and which services or actions have data. AWS notes that last-accessed information can include denied attempts, so a recent entry is not proof that an action succeeded. A blank entry also needs interpretation in light of the data coverage. Last-accessed information and its limits.

Use the relevant activity records and the owner-confirmed workflow to resolve uncertainty rather than making a remove-or-keep decision from the date alone.

IAM Access Analyzer

Choose the analysis that matches the question:

AnalysisQuestion it helps investigate
External accessWhich supported resources allow access outside the configured zone of trust?
Internal accessWhich principals inside the selected account or organization can reach the resources being analyzed?
Unused accessWhich tracked identities, credentials or permissions have not been used within the chosen period?

These analyses have different scopes. An external finding describes permitted sharing and does not establish that someone used it. Unused-access analysis requires its own analyzer, and service-linked roles are excluded from that analysis. How findings work.

Check the account or organization scope, tracking period and service coverage before interpreting an empty report as a clean review. Creating an analyzer also configures a service; it is a separate decision from reading existing findings.

AWS currently provides external access analysis at no additional charge, while internal and unused access analysis are paid features. Review the charging units and avoid creating duplicate analyzers without understanding the scope. Access Analyzer pricing.

Turn Findings Into Tested Changes

For each proposed reduction, record:

  1. The identity, resource and current permissions.
  2. Why the access appears broader than the owner’s requirements.
  3. The observation period and any missing evidence.
  4. The proposed policy or trust change and who approves it.
  5. Tests for normal activity, deployment, scheduled work and recovery.
  6. The way to restore the prior configuration and who can use it.

Policy generation can help construct a candidate policy from a supported CloudTrail trail. AWS documents limits that matter: generated policies do not identify action-level activity for data events, and they do not include iam:PassRole. The generation also needs a defined history window and supported service coverage. Policy generation scope.

Review resource ARNs and conditions in the candidate, then validate it with the appropriate policy tools and application tests. Apply changes in a controlled sequence so a failure can be attributed and reversed. Monitor authorization failures alongside successful business operations after the change.

Archiving a finding records a disposition; it does not itself remove the permission. Retain an explanation of why any broad or external access is acceptable and when it should next be reviewed.

What a Completed Review Should Deliver

A useful review produces an identity inventory, evidence-backed decisions, approved changes and test results. It also identifies the gaps that still need an owner, better logging or a longer observation period.

Track outcomes such as replacing an agreed long-lived workload credential, reducing the scope of a deployment role or documenting necessary cross-account access. Avoid treating the number of removed permissions as the goal when the remaining access has not been tested against business needs.

Repeat the review when someone leaves, an application is retired, a supplier relationship changes or the deployment process gains new capabilities. Recheck important retained exceptions on a schedule the business owns.

If you want help reviewing the access model alongside architecture and operations, see our AWS infrastructure service or contact us to define the accounts, evidence and workflows involved.

Frequently Asked Questions

Does unused access mean it is safe to remove?
No. Establish the observation window, data coverage and owner-confirmed business purpose. Recovery, seasonal and emergency access might not appear in ordinary activity. Review and test the proposed change before removing permissions.
Does an IAM credential report cover all AWS access?
No. It reports IAM-user credential information for an account. A complete review also needs roles, federation or IAM Identity Center assignments, trust relationships and applicable resource and organization policies.
Is IAM Access Analyzer entirely free?
No. AWS prices external, internal and unused access analysis differently. External access analysis has no additional charge, while internal and unused access analysis are paid features. Check the scope and current pricing before enabling an analyzer.
Does an external access finding prove that someone used the access?
No. It identifies access allowed outside the analyzer’s zone of trust. Establish whether that sharing is intended and review activity evidence separately.
Can I deploy a generated least-privilege policy without checking it?
Treat the generated policy as a starting template. Review its logging period, service coverage, resource scope and missing workflows. Test the required business actions and preserve a way to reverse the change.