🔑 Honey IAM Role
Decoy IAM roles with attractive names. Any AssumeRole = confirmed.
What it is
A decoy IAM role that looks like it grants privileged access but is configured so it can never actually be assumed. The role name is the bait — something an attacker enumerating roles would prioritise, like a break-glass or deployment role. Because no legitimate workload or person has any reason to call AssumeRole on it, a single attempt is a confirmed intrusion signal with effectively no false-positive rate.
Implementation requirements
- AWS:
aws iam create-rolewith an attractive name and a trust policy that denies every principal, so the assume attempt fails but is still logged - Azure: custom RBAC role definition in Entra ID, assigned to no one but discoverable through role enumeration
- GCP:
gcloud iam roles createplus a service account that holds the role but has no keys and no bindings to real resources - The role must carry zero real permissions — a decoy that actually grants access is a liability, not a tripwire
- Monitoring: CloudTrail
AssumeRoleandAssumeRoleWithSAMLdenied events, Entra ID audit logs, GCP Cloud Audit Logs. Alert on any hit, not on a threshold - OPSEC: name it using the same convention as your real roles. A role called
honeypot-roleteaches an attacker how to spot the rest of your decoys - Rollback: Delete the role and any instance profile or binding created for it. Remove its name from detection rules.
- Upkeep: Keep its name in step with your real role naming. Quarterly proof-of-life: an assume-role attempt from a test principal.
Cost
Negligible. Roles, custom role definitions and service accounts are free on all three providers. The only ongoing cost is ingestion and retention of the audit logs you alert on.
Indicative only. Cloud pricing and licensing change — check the provider's official pricing pages for current rates before you budget.
Technologies
ATT&CK coverage 22
| Technique | Tactic | Status | Confidence | Tier |
|---|---|---|---|---|
| T1110 Brute Force |
Credential Access | confirmed | strong | T2 |
| ↳ Detection point: the attack step itself touches the decoy | ||||
↳ Evidence (2 sources)
| ||||
| T1110.003 Password Spraying |
Credential Access | confirmed | strong | T2 |
| ↳ Detection point: the attack step itself touches the decoy | ||||
↳ Evidence (2 sources)
| ||||
| T1069.003 Cloud Groups |
Discovery | theoretical | moderate | T1 |
| ↳ Detection point: the attack step itself touches the decoy | ||||
↳ Evidence (2 sources)
Listing groups does not name the decoy; reading the decoy group itself does. | ||||
| T1087 Account Discovery |
Discovery | confirmed | strong | T2 |
| ↳ Detection point: the attack step itself touches the decoy | ||||
↳ Evidence (2 sources)
| ||||
| T1087.004 Cloud Account |
Discovery | theoretical | moderate | T1 |
| ↳ Detection point: the attack step itself touches the decoy | ||||
↳ Evidence (2 sources)
Listing users does not name the decoy; reading it does. | ||||
| T1531 Account Access Removal |
Impact | confirmed | strong | T4 |
| ↳ Detection point: the attack step itself touches the decoy | ||||
↳ Evidence (3 sources)
| ||||
| T1078 Valid Accounts |
Initial Access | confirmed | strong | T2 |
| ↳ Detection point: the attack step itself touches the decoy | ||||
↳ Evidence (5 sources)
| ||||
| T1078.004 Cloud Accounts |
Initial Access | confirmed | strong | T4 |
| ↳ Detection point: the attack step itself touches the decoy | ||||
↳ Evidence (4 sources)
| ||||
| T1199 Trusted Relationship |
Initial Access | theoretical | moderate | T2 |
| ↳ Detection point: the attack step itself touches the decoy | ||||
↳ Evidence (3 sources)
No study or product shows honey cross-account roles; the AssumeRole call on the decoy role is logged. | ||||
| T1021 Remote Services |
Lateral Movement | confirmed | strong | T2 |
| ↳ Detection point: the attack step itself touches the decoy | ||||
↳ Evidence (2 sources)
| ||||
| T1021.007 Cloud Services |
Lateral Movement | confirmed | strong | T2 |
| ↳ Detection point: the attack step itself touches the decoy | ||||
↳ Evidence (3 sources)
| ||||
| T1078 Valid Accounts |
Persistence | confirmed | strong | T2 |
| ↳ Detection point: the attack step itself touches the decoy | ||||
↳ Evidence (5 sources)
| ||||
| T1098 Account Manipulation |
Persistence | confirmed | strong | T3 |
| ↳ Detection point: the attack step itself touches the decoy | ||||
↳ Evidence (3 sources)
| ||||
| T1098.001 Additional Cloud Credentials |
Persistence | theoretical | moderate | T4 |
| ↳ Detection point: the attack step itself touches the decoy | ||||
↳ Evidence (3 sources)
| ||||
| T1098.003 Additional Cloud Roles |
Persistence | theoretical | moderate | T3 |
| ↳ Detection point: the attack step itself touches the decoy | ||||
↳ Evidence (2 sources)
| ||||
| T1136 Create Account |
Persistence | theoretical | moderate | T4 |
| ↳ Detection point: the decoy fires at a later step of the attack | ||||
↳ Evidence (3 sources)
The honey credential fires on its first API call; inside a honey cloud account, account creation is seen in-decoy. | ||||
| T1136.003 Cloud Account |
Persistence | theoretical | moderate | T4 |
| ↳ Detection point: the decoy fires at a later step of the attack | ||||
↳ Evidence (3 sources)
| ||||
| T1078 Valid Accounts |
Privilege Escalation | confirmed | strong | T2 |
| ↳ Detection point: the attack step itself touches the decoy | ||||
↳ Evidence (5 sources)
| ||||
| T1098 Account Manipulation |
Privilege Escalation | confirmed | strong | T3 |
| ↳ Detection point: the attack step itself touches the decoy | ||||
↳ Evidence (3 sources)
| ||||
| T1484.002 Trust Modification |
Privilege Escalation | theoretical | moderate | T4 |
| ↳ Detection point: the attack step itself touches the decoy | ||||
↳ Evidence (2 sources)
| ||||
| T1548.005 Temporary Elevated Cloud Access |
Privilege Escalation | theoretical | moderate | T3 |
| ↳ Detection point: the attack step itself touches the decoy | ||||
↳ Evidence (2 sources)
Assuming a decoy role is closer to T1078.004; the T1548.005 fit is partial. | ||||
| T1078 Valid Accounts |
Stealth | confirmed | strong | T2 |
| ↳ Detection point: the attack step itself touches the decoy | ||||
↳ Evidence (5 sources)
| ||||
Evidence
- Decoy User Credential (D3-DUC) — MITRE D3FEND standard
- Deceptive defense: best practices for identity-based honeytokens in Microsoft Defender for Identity — Microsoft 2023 industry
- Logging management events — AWS CloudTrail User Guide — Amazon Web Services industry
- MITRE Engage — adversary engagement matrix and ATT&CK mapping — MITRE 2022 standard
- MITRE ATT&CK Enterprise v20.0 — MITRE 2026 standard
- Tracebit for AWS — canary resources and credentials — Tracebit industry
Research basis: MITRE D3FEND D3-DUC (Decoy User Credential). Microsoft's identity-honeytoken guidance for Defender for Identity (2024) and the Azure-Sentinel HoneyTokens solution both document this pattern in production form.