Back to controls

Ensure IAM policies that allow full "*:*" administrative privileges are not attached

IAM policies are the means by which privileges are granted to users, groups, or roles. It is recommended and considered a standard security practice to grant least privilege that is, granting only the permissions required to perform a task. Determine what users need to do what and then accordingly create policies for them instead of allowing full administrative privileges.

Category

Controls

High

Applies to

AWS

Coverage

null controls, 3 queries

Asset types

3 covered

Overview

IAM policies are the means by which privileges are granted to users, groups, or roles. It is recommended and considered a standard security practice to grant least privilege that is, granting only the permissions required to perform a task. Determine what users need to do what and then accordingly create policies for them instead of allowing full administrative privileges.

It's more secure to start with a minimum set of permissions and grant additional permissions as necessary, rather than starting with permissions that are too lenient and then trying to tighten them later.

Providing full administrative privileges instead of restricting to the minimum set of permissions that the user is required to do exposes the resources to potentially unwanted actions.

IAM policies that have a statement with "Effect": "Allow" with "Action": "*" over "Resource": "*" should be removed.

Remediation guidance

From Console

Perform the following action to detach the policy that has full administrative privileges:

  1. Sign into the AWS console and open the IAM Dashboard.
  2. In the left navigation pane, click Policies and then search for the policy name having administrative privileges.
  3. Select the policy that needs to be detached. Go to Policy usage tab.
  4. Select all Users, Groups, Roles that have this policy attached.
  5. Click Detach. It will ask for re-confirmation.
  6. Click Detach again.

Repeat the above steps for all the policies having administrative privileges.

From Command Line

List the affected entities for the policy you want to detach:

aws iam list-entities-for-policy \
  --policy-arn {{manual.policyArn}}

Use the command that matches the affected asset type shown in the alert:

Detach from an IAM User:

aws iam detach-user-policy \
  --user-name {{asset.name}} \
  --policy-arn {{manual.policyArn}}

Detach from an IAM Group:

aws iam detach-group-policy \
  --group-name {{asset.name}} \
  --policy-arn {{manual.policyArn}}

Detach from an IAM Role:

aws iam detach-role-policy \
  --role-name {{asset.name}} \
  --policy-arn {{manual.policyArn}}

Multiple Remediation Paths

AWS

SERVICE-WIDE (RECOMMENDED when many resources are affected): Deploy centralized guardrails and remediation using AWS Config Conformance Packs and (if applicable) AWS Organizations SCPs.

aws configservice put-organization-conformance-pack --organization-conformance-pack-name <pack-name> --template-s3-uri s3://<bucket>/<template>.yaml

ASSET-LEVEL: Apply the resource-specific remediation steps above to only the affected assets.

PREVENTIVE: Add CI/CD policy checks (CloudFormation/Terraform validation) before deployment to prevent recurrence.

References for Service-Wide Patterns

  • AWS Config Conformance Packs: https://docs.aws.amazon.com/config/latest/developerguide/conformance-packs.html
  • AWS Organizations SCP examples: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_examples.html

Operational Rollout Workflow

Use this sequence to reduce risk and avoid repeated drift.

1. Contain at Service-Wide Scope First (Recommended)

  • AWS: deploy/adjust organization conformance packs and policy guardrails.
aws configservice put-organization-conformance-pack --organization-conformance-pack-name <pack-name> --template-s3-uri s3://<bucket>/<template>.yaml

2. Remediate Existing Affected Assets

  • Execute the control-specific Console/CLI steps documented above for each flagged resource.
  • Prioritize internet-exposed and production assets first.

3. Validate and Prevent Recurrence

  • Re-scan after each remediation batch.
  • Track exceptions with owner and expiry date.
  • Add preventive checks in IaC/CI pipelines.

Query logic

These are the stored checks tied to this control.

IAM policies that allow full "*:*" administrative privileges are not attached to IAMRoles

Connectors

AWS

Covered asset types

IAMRole

Expected check: eq []

{iamRoles(where:{iamPolicies_SOME: {iamPolicyStatements_SOME: {effect:"Allow",actions_INCLUDES: "*", resources_INCLUDES: "*"}}}){...AssetFragment}}
IAM policies that allow full "*:*" administrative privileges are not attached to IAMUsers

Connectors

AWS

Covered asset types

IAMUser

Expected check: eq []

iamUsers(where:{iamPolicies_SOME: {iamPolicyStatements_SOME: {effect:"Allow",actions_INCLUDES: "*", resources_INCLUDES: "*"}}}){...AssetFragment}
IAM policies that allow full "*:*" administrative privileges are not attached to IAMGroups

Connectors

AWS

Covered asset types

IAMGroup

Expected check: eq []

iamGroups(where:{iamPolicies_SOME: {iamPolicyStatements_SOME: {effect:"Allow",actions_INCLUDES: "*", resources_INCLUDES: "*"}}}){...AssetFragment}
Cyscale Logo
Cyscale is an agentless cloud-native application protection platform (CNAPP) that automates the contextual analysis of cloud misconfigurations, vulnerabilities, access, and data, to provide an accurate and actionable assessment of risk.

Stay connected

Receive new blog posts and product updates from Cyscale

By clicking Subscribe, I agree to Cyscale’s Privacy Policy


© 2026 Cyscale Limited

LinkedIn icon
Twitter icon
Facebook icon
crunch base icon
angel icon