Skip to content

IAM — Drift Coverage

Supported CloudTrail Events

Event Description Status
CreateRole IAM role created ✔
DeleteRole IAM role deleted ✔
UpdateAssumeRolePolicy Trust policy updated ✔
AttachRolePolicy Managed policy attached ✔
DetachRolePolicy Managed policy detached ✔
PutRolePolicy Inline policy added/updated ✔
DeleteRolePolicy Inline policy deleted ✔
CreatePolicy Managed policy created ✔
CreatePolicyVersion Policy version updated ✔
DeletePolicy Managed policy deleted ✔
CreateUser IAM user created ✔
DeleteUser IAM user deleted ✔
AttachUserPolicy User policy attached ✔
DetachUserPolicy User policy detached ✔

Monitored Drift Attributes

IAM Role

  • assume_role_policy (trust relationship)
  • managed_policy_arns
  • inline_policies
  • max_session_duration
  • permissions_boundary
  • description
  • tags

IAM Policy

  • policy_document
  • description
  • tags

IAM User

  • path
  • permissions_boundary
  • tags
  • attached policies

Falco Rule Examples

rule: iam_role_trust_policy_modified
condition:
  cloud.service = "iam" and evt.name = "UpdateAssumeRolePolicy"
output: "IAM Role Trust Policy Modified (role=%resource user=%user changes=%drift.changes)"
priority: critical

rule: iam_admin_policy_attached
condition:
  cloud.service = "iam" and evt.name in ("AttachRolePolicy","AttachUserPolicy") and
  drift.policy_arn contains "AdministratorAccess"
output: "Admin Policy Attached (resource=%resource policy=%drift.policy_arn user=%user)"
priority: error

Example Log Output

{
  "service": "iam",
  "event": "UpdateAssumeRolePolicy",
  "resource": "MyAppRole",
  "changes": {
    "assume_role_policy": {
      "added_principals": ["arn:aws:iam::123456789012:role/NewTrustedRole"],
      "removed_principals": []
    }
  },
  "user": "admin@example.com",
  "timestamp": "2025-12-06T07:30:00Z"
}

Grafana Dashboard Examples

Metrics

  • IAM role trust policy changes
  • Policy attachments/detachments
  • Admin privilege escalations
  • Cross-account trust modifications

Alerts

  • Unplanned IAM admin policy attachments
  • IAM role trust policy modifications
  • Service-to-service access changes

Known Limitations

  • IAM policy condition evaluation not analyzed (CloudTrail limitation)
  • Permission boundary changes may have eventual consistency delay
  • Service control policies (SCPs) tracked separately at AWS Organizations level
  • SAML/OIDC provider drift partial (v0.3.0 planned)

Security Considerations

IAM drift detection is critical for security. Unplanned changes to: - Trust policies → potential privilege escalation - Admin policies → unauthorized access - Cross-account roles → data exfiltration risk

Recommendation: Set Falco priority to CRITICAL for IAM rules.

Release History

  • v0.2.0-beta: Core IAM role/policy/user coverage (14 events)
  • v0.3.0 (planned): IAM Identity Center, permission sets