About this tool
AWS IAM Policy Analyzer is a browser-based tool for reviewing AWS Identity and Access Management policy documents. It parses IAM JSON policies, summarizes their statements, and highlights potentially broad permissions, wildcard actions, wildcard resources, principals, and other patterns that deserve security review.
What is an AWS IAM policy?
An AWS IAM policy is a JSON document that defines permissions for interacting with AWS resources. Policy statements can allow or deny actions and can use resources, principals, conditions, and other policy elements to control access.
IAM policies are an important part of AWS security because overly broad permissions can increase the impact of compromised credentials or incorrectly configured identities.
What does the IAM Policy Analyzer check?
This analyzer performs static analysis of the policy document and identifies several common permission patterns that may require review.
- Missing or invalid Effect values
- Wildcard Action permissions
- Service-wide actions such as s3:*
- Partial wildcard Action patterns
- Wildcard Resource permissions
- Partial wildcard Resource patterns
- NotAction usage
- NotResource usage
- Wildcard principals
- Broad Allow statements without conditions
- Statements without Action or NotAction
- Statements without Resource or NotResource
- Condition blocks
- S3 permissions applied to all resources
Why wildcard permissions matter
Wildcard permissions can be useful in carefully controlled situations, but they can also grant significantly more access than an identity actually requires.
An Action of * can allow every IAM action available to the applicable principal. A service-level wildcard such as s3:* can allow all actions within a service.
Similarly, Resource: * can apply permissions to every applicable resource rather than a specific bucket, object, queue, function, or other resource.
Understanding policy findings
Findings are categorized as high, medium, low, or informational. The severity indicates how important a pattern may be to review, not whether the permission is automatically exploitable or incorrect.
A broad permission may be intentional for an administrative role, automation identity, deployment system, or other trusted workload. Always evaluate findings within the context of the identity and workload using the policy.
Least privilege and IAM policies
The principle of least privilege recommends granting only the permissions required for a workload or user to perform its intended tasks.
Where practical, replace broad actions with specific actions and replace Resource: * with the smallest appropriate set of resources. Conditions can also help restrict when or how a permission can be used.
- Use specific actions instead of Action: * where practical
- Restrict resources instead of using Resource: * when possible
- Use conditions for additional contextual restrictions
- Review wildcard principals carefully
- Separate unrelated permissions into understandable statements
- Regularly review policies as workloads change
Conditions and additional AWS controls
IAM policy behavior is not determined by a single policy document in isolation. Conditions, identity policies, resource policies, permissions boundaries, service control policies, session policies, and other AWS authorization mechanisms can affect the final authorization decision.
For this reason, a finding from this tool should be treated as a review signal rather than a definitive statement that an AWS permission is exploitable.
Static analysis limitations
This tool analyzes the JSON policy structure and common permission patterns. It does not contact AWS, evaluate a live IAM environment, resolve every AWS service action, or calculate the complete effective permissions of an identity.
A policy can be syntactically valid and still be inappropriate for a particular workload. Conversely, a broad-looking permission can be intentional in a controlled environment.
Security and privacy
IAM policies can contain account IDs, resource ARNs, role names, principals, conditions, and other infrastructure information. Treat policy documents according to your organization's security requirements.
ToolTunnel performs this analysis locally in your browser. The policy does not need to be uploaded to a ToolTunnel backend.
Frequently Asked Questions
▶What is an AWS IAM policy?
An IAM policy is a JSON document that defines permissions for AWS resources and identities using statements containing elements such as Effect, Action, Resource, Principal, and Condition.
▶Does this tool contact AWS?
No. The analyzer performs static analysis locally in your browser and does not need to query AWS APIs.
▶Does a high finding mean the policy is vulnerable?
Not necessarily. A high finding indicates a potentially important pattern that should be reviewed. Whether the permission is appropriate depends on the identity, workload, and surrounding AWS authorization controls.
▶Why is Action: * considered risky?
Action: * can grant every applicable IAM action, which can be significantly broader than the permissions required by a workload or user.
▶Why is Resource: * considered risky?
Resource: * can make a permission apply to all applicable resources instead of restricting it to specific resources. Whether this is acceptable depends on the AWS service and use case.
▶What is a wildcard principal?
A wildcard principal can allow access to a broad set of principals and should be reviewed carefully, especially when used with Allow statements.
▶Does this tool calculate effective IAM permissions?
No. It analyzes one policy document and common patterns. Effective permissions can depend on identity policies, resource policies, SCPs, permissions boundaries, session policies, conditions, and other controls.
▶Is my IAM policy uploaded anywhere?
No. The analyzer is designed to process the policy locally in your browser without uploading it to a ToolTunnel backend.