TrailTool: تحلیل هوشمند لاگهای CloudTrail با CLI
خلاصهٔ کاملتر
TrailTool یه ابزار متنبازه که کار با لاگهای AWS CloudTrail رو برای تیمهای امنیتی و AI agentها خیلی راحتتر میکنه. معماریش از یه Lambda function برای خوندن و پارس لاگها از S3، جداول DynamoDB برای نگهداشتن موجودیتهای قابلجستجو (کاربران، سشنها، نقشها، سرویسها و منابع)، و یه CLI به اسم trailtool تشکیل شده که باهاش میشه همه این دادهها رو query کرد.
این ابزار چند مشکل اساسی رو حل میکنه: اول اینکه وقتی یه نقش AWS بدون attribution انسانی واضح کاری انجام میده، TrailTool بهصورت خودکار اون رو به سشن انسانی اصلی ردیابی میکنه. دوم اینکه میشه فهمید کدوم منابع بهجای IaC از طریق کنسول (ClickOps) ساخته شدن. سوم اینکه بر اساس فعالیت واقعی، IAM policy با کمترین دسترسی ممکن تولید میکنه.
یکی از قابلیتهای جالب Role Chaining هست — TrailTool بهصورت خودکار فراخوانیهای AssumeRole رو به سشن انسانی مبدأ وصل میکنه. مثلاً اگه alice یه DeployRole رو assume کنه، در خروجی میبینی که اون نقش ↑ child هست و به سشن اصلی alice برمیگرده:
WHEN USER ROLE ACCOUNT EVENTS TYPE DURATION CHAINED
5 mins ago alice@example.com AWSReservedSSO_AdminAccess_... 123456789012 84 API 12m → 2 role(s)
5 mins ago alice@example.com DeployRole 123456789012 31 API 8m ↑ child
5 mins ago alice@example.com AuditRole 123456789012 12 API 3m ↑ child
یه قابلیت دیگه تشخیص سشنهای aws login هست. وقتی یه developer با aws login به یه AI agent مثل Claude Code یا VS Code Copilot دسترسی میده، TrailTool اون سشن رو بهعنوان LOGIN تشخیص میده و به سشن انسانی تأییدکننده وصلش میکنه. این یعنی میتونی فعالیتهای agent رو از automationهای پسزمینه تفکیک کنی.
CLI خیلی قدرتمنده؛ مثلاً برای تولید policy با کمترین دسترسی بر اساس یه سشن خاص:
trailtool sessions policy --at 2025-01-15T10:35 --user alice@example.com --explain
و برای پیدا کردن منابع ClickOps فیلترشده بر اساس سرویس:
trailtool resources list --clickops --service iam
TrailTool با AI coding agentها مثل Claude Code و Cursor هم بهخوبی کار میکنه؛ کافیه فایل docs/agent-instructions.md رو بهعنوان CLAUDE.md در پروژه کپی کنی تا agent بفهمه چطور باهاش کار کنه. همه دستورات از --format json پشتیبانی میکنن که خروجی machine-readable میده.
نکات کلیدی:
- لاگهای CloudTrail رو از S3 میخونه و توی DynamoDB ذخیره میکنه
- Role Chaining: فعالیت نقشهای assume شده رو به کاربر انسانی اصلی نسبت میده
- تشخیص سشنهای AI agent که با
aws logincredentials گرفتن - تولید خودکار IAM policy با least-privilege بر اساس فعالیت واقعی
- شناسایی منابع ClickOps که از کنسول بهجای IaC ساخته شدن
- پشتیبانی از خروجی JSON برای یکپارچهسازی با ابزارهای دیگه




