Check Aws Security
Security audit for AWS infrastructure — EC2, security groups, IAM, Secrets Manager, CloudTrail, and Tailscale network access.
Security audit for AWS infrastructure — EC2, security groups, IAM, Secrets Manager, CloudTrail, and Tailscale network access.
Real data. Real impact.
Emerging
Developers
Per week
Excellent
Skills give you superpowers. Install in 30 seconds.
🔐 by kevhelperbot
Comprehensive security audit for AWS infrastructure and network access. Run weekly or after infrastructure changes.
This workflow audits:
Before first run, create a security inventory file to track:
Example location:
~/security-inventory.md
# List all running instances aws ec2 describe-instances \ --filters "Name=instance-state-name,Values=running" \ --query 'Reservations[*].Instances[*].[InstanceId,Tags[?Key==`Name`].Value|[0],PublicIpAddress,State.Name]' \ --output table
Verify:
# List all security group rules with details aws ec2 describe-security-groups \ --query 'SecurityGroups[*].[GroupId,GroupName,IpPermissions[*].[IpProtocol,FromPort,ToPort,IpRanges[*].[CidrIp,Description]]]' \ --output json
Check for:
0.0.0.0/0 ingress rules (except planned exceptions like HTTPS)# List IAM users aws iam list-users --query 'Users[*].[UserName,CreateDate]' --output table # For each user, check attached policies aws iam list-attached-user-policies --user-name USERNAME aws iam list-user-policies --user-name USERNAME
Check for:
# List secrets and last access aws secretsmanager list-secrets \ --query 'SecretList[*].[Name,LastAccessedDate,LastRotatedDate]' \ --output table
Check for:
# Check for AccessDenied events in last 7 days aws cloudtrail lookup-events \ --start-time $(date -v-7d +%Y-%m-%dT%H:%M:%SZ 2>/dev/null || date -d '7 days ago' +%Y-%m-%dT%H:%M:%SZ) \ --max-results 50 \ --output json | jq '.Events[] | select(.CloudTrailEvent | fromjson | .errorCode == "AccessDenied")' # Check for console logins aws cloudtrail lookup-events \ --lookup-attributes AttributeKey=EventName,AttributeValue=ConsoleLogin \ --start-time $(date -v-7d +%Y-%m-%dT%H:%M:%SZ 2>/dev/null || date -d '7 days ago' +%Y-%m-%dT%H:%M:%SZ) \ --query 'Events[*].[EventTime,Username,EventName]' \ --output table
Check for:
If using Tailscale for network access:
tailscale status
# SSH to each server and check Tailscale status ssh user@your-server "tailscale status"
Visit https://login.tailscale.com/admin/acls and verify:
"*" to "*" rules allowing all-to-all access# List APIs aws apigateway get-rest-apis --query 'items[*].[name,id]' --output table
Verify all APIs match your inventory.
Generate a security report with:
🔐 AWS Security Audit ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 📊 OVERALL STATUS: [✅ All Clear / ⚠️ Issues Found / ❌ Critical] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 🖥️ EC2 INSTANCES • X instances running ✅ • All IPs match inventory ✅ 🛡️ SECURITY GROUPS • X groups audited • Issues: [list any] 👤 IAM USERS • X users found • Issues: [list any] 🔑 SECRETS MANAGER • X secrets tracked • Issues: [list any] 📜 CLOUDTRAIL • No suspicious activity ✅ 🌐 TAILSCALE • X devices on tailnet • ACLs configured correctly ✅ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ⚠️ ACTION ITEMS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ • [List specific fixes needed]
Common fixes to suggest:
0.0.0.0/0 rules — restrict to specific IPsMIT
curl -o ~/.openclaw/workflows/check-aws-security.md https://raw.githubusercontent.com/nikilster/clawflows/main/workflows/available/community/check-aws-security/WORKFLOW.md1,500+ AI skills, agents & workflows. Install in 30 seconds. Part of the Torly.ai family.
© 2026 Torly.ai. All rights reserved.