aws-security-audit

$npx mdskill add automateyournetwork/netclaw/aws-security-audit

Audits AWS IAM and CloudTrail for security compliance and incident investigation

  • Analyzes IAM permissions, MFA compliance, and CloudTrail API activity
  • Uses AWS IAM and CloudTrail APIs to retrieve user, role, and event data
  • Identifies overly permissive policies, suspicious activity, and access risks
  • Provides structured output for security posture analysis and remediation
SKILL.md
.github/skills/aws-security-auditView on GitHub ↗
---
name: aws-security-audit
description: "AWS security auditing — IAM users/roles/policies, CloudTrail API events, security posture analysis. Use when auditing IAM permissions, investigating security incidents, checking MFA compliance, or tracing API activity in CloudTrail."
version: 1.0.0
license: Apache-2.0
tags: [aws, iam, cloudtrail, security, audit, compliance]
---

# AWS Security Audit

## MCP Servers

- **IAM MCP**: `uvx awslabs.iam-mcp-server@latest --readonly` (stdio transport)
- **CloudTrail MCP**: `uvx awslabs.cloudtrail-mcp-server@latest` (stdio transport)
- **Requires**: `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_REGION` (or `AWS_PROFILE`)

## Key Capabilities

### IAM (Identity & Access Management)

- **Users**: List IAM users, access keys, MFA status, last activity
- **Roles**: List roles, trust policies, attached permissions
- **Policies**: Inspect policy documents, identify overly permissive policies
- **Groups**: List groups and their memberships
- **Read-only mode**: `--readonly` flag prevents any IAM modifications

### CloudTrail (API Audit Trail)

- **Event history**: Search recent API calls by user, service, or resource
- **Lookup events**: Filter by event name, resource type, username
- **Time-based queries**: Narrow to specific time windows around incidents
- **Multi-region**: Trail events across all enabled regions

## Workflow: Network Security Audit

When a user asks "audit our AWS network security":

1. **IAM roles for network services**: Check roles used by VPC, TGW, Network Firewall
2. **Overly permissive policies**: Find policies with `ec2:*` or `*:*` actions
3. **Unused access keys**: Identify stale credentials that should be rotated
4. **MFA compliance**: Check which users lack MFA
5. **CloudTrail check**: Recent `AuthorizeSecurityGroupIngress`, `CreateNetworkAcl`, `ModifyVpcAttribute` events
6. **Report**: Security posture summary with remediation recommendations

## Workflow: Incident Investigation

When investigating a security event:

1. **CloudTrail lookup**: Search events by time window and suspected user/role
2. **Identify actions**: What API calls were made? `DeleteSecurityGroup`, `ModifySubnetAttribute`?
3. **Source IP**: Where did the API calls originate from?
4. **IAM context**: What permissions does the user/role have? Should they?
5. **Blast radius**: What resources were affected?
6. **Report**: Timeline of events with impact assessment

## Workflow: Compliance Check

When checking AWS security compliance:

1. **Root account**: Check for root access key usage in CloudTrail
2. **MFA enforcement**: List users without MFA enabled
3. **Access key rotation**: Find keys older than 90 days
4. **Unused credentials**: Identify users with no recent activity
5. **Policy review**: Check for policies granting `*` on sensitive services
6. **Report**: Compliance scorecard with findings

## Common CloudTrail Network Events

| Event Name | What It Means |
|------------|---------------|
| `AuthorizeSecurityGroupIngress` | Security group rule added (inbound) |
| `AuthorizeSecurityGroupEgress` | Security group rule added (outbound) |
| `RevokeSecurityGroupIngress` | Security group rule removed (inbound) |
| `CreateNetworkAclEntry` | NACL rule added |
| `CreateRoute` | Route table entry added |
| `ModifyVpcAttribute` | VPC setting changed |
| `CreateVpnConnection` | New VPN tunnel created |
| `AttachInternetGateway` | IGW attached to VPC |
| `CreateTransitGatewayRoute` | TGW route added |
| `UpdateFirewallRuleGroupRuleList` | Network Firewall rule changed |

## IAM Best Practices for Network Teams

| Check | Why It Matters |
|-------|---------------|
| No `ec2:*` policies | Prevent accidental network changes |
| Separate roles per service | Least privilege for VPC, TGW, Firewall |
| MFA on all humans | Protect against credential theft |
| No root access keys | Root should use MFA console only |
| Key rotation < 90 days | Limit exposure of compromised keys |
| CloudTrail enabled | Audit trail for all API changes |

## Important Rules

- **IAM MCP runs in read-only mode** — cannot create, modify, or delete IAM resources
- **CloudTrail has event history limits** — default 90-day lookback for management events
- **Region-specific for CloudTrail** — unless using organization trail
- **Record in GAIT** — log all security investigations for audit trail

## Environment Variables

- `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_REGION` (or `AWS_PROFILE`)
More from automateyournetwork/netclaw