Detection rules › Sigma
IAM Admin Policy Attached
Detects when an administrative IAM policy (AdministratorAccess, PowerUserAccess, or IAMFullAccess) is attached to a user, group, or role. This is a privilege escalation technique where an attacker elevates permissions of a compromised or newly created principal to gain full control of the AWS account.
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Persistence | T1098.003 Account Manipulation: Additional Cloud Roles |
| Privilege Escalation | T1098.003 Account Manipulation: Additional Cloud Roles |
Event coverage
Rules detecting the same action
Other rules on this platform that filter on the same API call or operation.
- AWS Compromised IAM Key Quarantine (Panther)
- AWS IAM AdministratorAccess Policy Attached to Group (Elastic)
- AWS IAM AdministratorAccess Policy Attached to Role (Elastic)
- AWS IAM AdministratorAccess Policy Attached to User (Elastic)
- AWS IAM Customer-Managed Policy Attached to Role by Rare User (Elastic)
- AWS IAM Sensitive Operations via Lambda Execution Role (Elastic)
- AWS Sensitive IAM Operations Performed via CloudShell (Elastic)
- IAM Policy Attachment Attempt (Sigma)
Rule body yaml
title: IAM Admin Policy Attached
id: 0a1b2c3d-4e5f-6a7b-8c9d-0e1f2a3b4c5d
status: test
description: |
Detects when an administrative IAM policy (AdministratorAccess,
PowerUserAccess, or IAMFullAccess) is attached to a user, group, or role.
This is a privilege escalation technique where an attacker elevates
permissions of a compromised or newly created principal to gain full
control of the AWS account.
references:
- https://attack.mitre.org/techniques/T1098/003/
- https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachUserPolicy.html
- https://hackingthe.cloud/aws/exploitation/iam_privilege_escalation/
author: nishikawaakira (@nishikawaakira)
date: 2026-05-03
modified: 2026-05-29
tags:
- attack.privilege-escalation
- attack.persistence
- attack.t1098.003
logsource:
product: aws
service: cloudtrail
detection:
selection:
eventSource: iam.amazonaws.com
eventName:
- AttachUserPolicy
- AttachGroupPolicy
- AttachRolePolicy
selection_admin:
requestParameters.policyArn|contains:
- AdministratorAccess
- PowerUserAccess
- IAMFullAccess
filter:
errorCode|exists: true
condition: selection and selection_admin and not filter
falsepositives:
- Legitimate IAM administrators granting access during onboarding
- Infrastructure-as-code deployments (Terraform, CloudFormation)
level: critical
Stages and Predicates
Stage 0: condition
selection and selection_admin and not filterStage 1: selection
selection:
eventSource: iam.amazonaws.com
eventName:
- AttachUserPolicy
- AttachGroupPolicy
- AttachRolePolicy
Stage 2: selection_admin
selection_admin:
requestParameters.policyArn|contains:
- AdministratorAccess
- PowerUserAccess
- IAMFullAccess
Stage 3: not filter
filter:
errorCode|exists: true
Exclusions
Top-level NOT(...) conjuncts: predicates this rule actively suppresses.
| Field | Kind | Excluded values |
|---|---|---|
errorCode | is_not_null |
Indicators
Each row is a field, operator, and value that the rule matches. The corpus column counts how many other rules in the catalog look for the same combination: high numbers point to widely-used, community-vetted indicators. Blank or 1 shows that the indicator is specific to this rule.
| Field | Kind | Values |
|---|---|---|
eventName | eq |
|
eventSource | eq |
|
requestParameters.policyArn | match |
|