Overview
IAM Audit generates two CSV reports that provide a comprehensive view of identity security posture across all accounts in your AWS Organization. This guide explains how to interpret the data and identify actionable security risks.Report Files Generated
Every audit run produces timestamped CSV files:IAM Audit Report
iam_audit_report_YYYYMMDD_HHMMSS.csvComplete inventory of IAM users, access keys, MFA status, and console access across all accounts.CloudTrail Events
cloudtrail_events_YYYYMMDD_HHMMSS.csvIAM-related events for tracking remediation progress over time (user/key deletions, creations).Understanding the IAM Audit Report
CSV Structure
The main audit report contains 11 fields per user:Field Definitions
| Field | Description | Security Relevance |
|---|---|---|
account_id | AWS account ID | Identifies where the risk exists |
account_name | Account name from Organization | Human-readable context |
username | IAM user name | Who owns the credential |
password_status | Configurada or No configurada | Console access enabled |
password_last_used | Timestamp or Nunca | Console activity indicator |
access_key_id | Access key identifier | Specific long-term credential |
status | Active or Inactive | Key can be used right now |
created_date | Key creation timestamp | Age of the credential |
last_used_date | Most recent usage or Nunca utilizada | Activity indicator |
service_name | AWS service last accessed | Blast radius of compromise |
mfa_status | Virtual, Hardware, or None | Second factor protection |
Risk Scoring Framework
High-Risk Indicators
Console Access Without MFA
Console Access Without MFA
Criteria:Priority: Critical — remediate within 24 hours.
password_status: Configuradamfa_status: Nonepassword_last_usedis recent (within 30 days)
Access Keys Older Than 1 Year
Access Keys Older Than 1 Year
Criteria:Priority: High — migrate to IAM roles or temporary credentials within 30 days.
created_dateis more than 365 days agostatus: Active- Key appears in active use (
last_used_dateis recent)
Active Keys That Were Never Used
Active Keys That Were Never Used
Criteria:Priority: Medium — safe to delete immediately after brief verification.
status: Activelast_used_date: Nunca utilizada- Key exists for more than 7 days
Medium-Risk Indicators
Scheduled Remediation: Address these findings in your next security sprint.
- Keys 90+ days old with recent usage: Still active, but aging credentials
- Console users with MFA but old passwords: Enforce password rotation policies
- Inactive keys that haven’t been deleted: Clean up unnecessary resources
- Service accounts with console access: Service identities shouldn’t have passwords
Low-Risk Indicators
- Keys less than 30 days old with active usage
- Console users with MFA enabled (Virtual or Hardware)
- Inactive keys scheduled for deletion
- Service accounts without console access and with temporary credential usage
Pattern Analysis Across Accounts
Identifying Systemic Issues
Look for patterns that indicate organizational problems rather than individual mistakes:Anti-Pattern: Uniform Key Ages
Anti-Pattern: Shared Service Accounts
Anti-Pattern: Zombie Accounts
Understanding CloudTrail Events
Event Types Tracked
The CloudTrail report captures five IAM lifecycle events:User Lifecycle
CreateUserDeleteUser
Access Key Lifecycle
CreateAccessKeyDeleteAccessKey
Console Access
DeleteLoginProfile
Tracking Remediation Progress
Use CloudTrail events to measure security improvements over time:Example Analysis Workflows
Workflow 1: Production Account Audit
Identify Critical Risks
Search for:
- Users with
password_status: ConfiguradaANDmfa_status: None - Access keys where
created_dateis older than 1 year
Group by User
Some users may have multiple keys. Count total keys per username to identify power users.
Cross-Reference CloudTrail
Check if any remediation actions have already been taken but not yet reflected in the latest audit.
Workflow 2: Key Age Distribution
Bucket by Age
- 0-30 days (acceptable)
- 31-90 days (rotate soon)
- 91-365 days (overdue)
- 365+ days (critical)
Workflow 3: MFA Coverage Assessment
Segment by Account Type
Production accounts should have 100% MFA coverage. Development accounts may have more flexibility.
Red Flags Requiring Immediate Investigation
Unexpected Active Keys
- Finding: Access key created in the last 24 hours for a user you don’t recognize
- Action: Check CloudTrail for
CreateAccessKeyevent source and investigate
Service Usage Anomalies
- Finding:
service_nameshows access to services your organization doesn’t use - Action: Review recent API calls in CloudTrail for that access key
MFA Removal
- Finding: CloudTrail shows
DeactivateMFADeviceevents you didn’t authorize - Action: Potential account compromise — rotate credentials immediately
Multiple Keys Per User
- Finding: User has 2 active access keys (AWS maximum)
- Action: Verify with user why both are needed — may indicate shared credentials
Next Steps
Remediation Guide
Step-by-step workflows to fix identified issues
Security Maturity Model
Understand how findings map to AWS SMM controls
Configuration
Set up permissions for cross-account auditing
CloudTrail Analysis
Deep dive into event analysis
