dd-audit — скилл для Claude Code: разбор Audit Trail в Datadog
Скилл для расследований по Audit Trail в Datadog: кто что изменил, не скомпрометирован ли ключ, откуда скачок расходов.
npx skills add datadog-labs/agent-skills --skill dd-audit -a claude-codeЧто делает dd-audit
Скилл dd-audit из репозитория datadog-labs/agent-skills разбирает Audit Trail через команды pup audit-logs. Внутри пять под-скиллов, и каждый включается под свою задачу: поиск изменений и действий пользователя, проверка компрометации API-ключа, поиск причины скачка расходов, сбор доказательств для аудита и разбор активности ИИ-ассистента с вызовами MCP-инструментов.
Запросы пишутся в Lucene-синтаксисе, как в Log Explorer: @action:deleted, @usr.email:[email protected], @evt.name:Monitor AND @action:modified. Есть таблица полей событий — актор, тип действия, ресурс, IP и страна клиента, путь API. Вывод можно отдать в JSON и пропустить через jq.
Перед работой нужна авторизация: pup auth login по OAuth2 либо пара DD_API_KEY и DD_APP_KEY со скоупом audit_logs_read. Без этого скоупа запрос вернёт 403. Ещё один момент, о котором легко забыть: хранение по умолчанию — 90 дней, поэтому окно старше этого срока придётся доставать из архива в S3, GCS или Azure Blob, если он настроен. Это повод проверить настройки архивации до того, как аудитор попросит логи за прошлый год.
Какие задачи решает
- найти, кто удалил или изменил дашборд за последние сутки
- проверить, не утёк ли API-ключ и что им успели сделать
- разобраться, из-за чего выросли расходы на LLM
- собрать доказательства по SOC 2 или PCI для аудитора
- посмотреть, какие вызовы MCP-инструментов сделал ИИ-ассистент
Примеры запросов агенту
- Покажи все удаления в Audit Trail за последние 24 часа
- Проверь, не скомпрометирован ли ключ key_abc123 и что им делали
- Собери логи провижининга пользователей для аудитора по SOC 2
Как установить dd-audit
1Через Skills CLI (Vercel)
npx skills add datadog-labs/agent-skills --skill dd-audit -a claude-code2Вручную: положить файлы
~/.claude/skills/dd-audit/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/dd-audit/
1Через Skills CLI (Vercel)
npx skills add datadog-labs/agent-skills --skill dd-audit -a codex2Вручную: положить файлы
.agents/skills/dd-audit/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add datadog-labs/agent-skills --skill dd-audit -a cursor2Вручную: положить файлы
.cursor/skills/dd-audit/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install datadog-labs/agent-skills dd-audit2Вручную: положить файлы
.github/skills/dd-audit/SKILL.md1Через Skills CLI (Vercel)
npx skills add datadog-labs/agent-skills --skill dd-audit -a gemini-cli2Командой платформы
gemini skills install https://github.com/datadog-labs/agent-skills --path dd-auditВручную: положить файлы
.devin/skills/dd-audit/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add datadog-labs/agent-skills --skill dd-audit -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о dd-audit
Как установить dd-audit в Claude?
Выполните npx skills add datadog-labs/agent-skills --skill dd-audit -a claude-code. Скилл появится в ~/.claude/skills/dd-audit/SKILL.md.
Что делает dd-audit?
Разбирает Audit Trail в Datadog через pup audit-logs: ищет изменения конфигураций, действия конкретного пользователя, следы компрометации ключа и причины скачка расходов. Отдельный под-скилл собирает доказательства для SOC 2 и PCI.
Что нужно, чтобы скилл заработал?
Авторизация pup auth login по OAuth2 или ключи DD_API_KEY и DD_APP_KEY со скоупом audit_logs_read. Без скоупа запросы возвращают 403.
Исходный текст
SKILL.md · MIT
--- name: dd-audit description: Audit Trail investigations - who changed what, key compromise, cost spike root cause, compliance evidence (SOC 2/PCI), and AI activity auditing. metadata: version: "0.1.0" author: datadog-labs repository: https://github.com/datadog-labs/agent-skills tags: datadog,audit,audit-trail,security,compliance,dd-audit alwaysApply: "false" --- # Datadog Audit Trail Investigate user activity, configuration changes, access patterns, and compliance evidence using `pup audit-logs`. ## Sub-Skills | Sub-skill | Use when | |-----------|----------| | **security-investigation** | "Who changed X?", "What did this user do?", "Show me deletions in the last 24h" | | **key-compromise** | "Was this API key compromised?", "What did key XYZ do?", "Investigate suspicious key activity" | | **cost-spike-investigation** | "Why did my bill go up?", "What caused this usage spike?", "Investigate LLM cost increase" | | **compliance-report** | "Generate SOC 2 evidence", "PCI audit log", "User provisioning report for auditor" | | **ai-activity-audit** | "What did the AI assistant do?", "Audit MCP tool calls", "AI governance report" | ## Prerequisites ```bash pup auth login # OAuth2 (recommended) # or set DD_API_KEY + DD_APP_KEY with audit_logs_read scope ``` ## Commands ```bash # List recent events pup audit-logs list --from 1h --limit 100 # Search with a query pup audit-logs search --query "@action:deleted" --from 24h # JSON output for piping to jq pup audit-logs search --query "@usr.email:[email protected]" --from 7d -o json | jq '.data[].attributes' ``` ## Event Schema Quick Reference | Field | Description | Example values | |-------|-------------|----------------| | `@usr.email` | Actor email | `[email protected]` | | `@evt.actor.type` | How action was taken | `USER`, `API_KEY`, `SUPPORT_USER` | | `@action` | Verb | `created`, `modified`, `deleted`, `accessed`, `login` | | `@evt.name` | Event category | `Dashboard`, `Monitor`, `Authentication`, `Access Management` | | `@asset.type` | Resource type | `dashboard`, `monitor`, `api_key`, `role`, `user` | | `@asset.id` | Resource identifier | `abc-123` | | `@metadata.api_key.id` | API key used (if applicable) | `key_abc123` | | `@metadata.app_key.id` | App key used (if applicable) | `app_abc123` | | `@network.client.ip` | Client IP address | `1.2.3.4` | | `@network.client.geoip.country.name` | Country | `United States` | | `@network.client.geoip.as.name` | ASN name | `Amazon.com` | | `@http.url_details.path` | API endpoint path | `/api/v1/dashboard/xyz` | ## Search Syntax Same Lucene-style syntax as Log Explorer: | Query | Meaning | |-------|---------| | `@evt.name:Dashboard` | Exact field match | | `@action:deleted` | Action filter | | `@usr.email:[email protected]` | Specific user | | `@evt.name:Monitor AND @action:modified` | Compound | | `-@action:deleted` | Negation | | `@usr.email:*` | Field exists | | `@network.client.ip:1.2.3.4` | IP filter | ## Retention Default retention is **90 days**. If querying beyond 90 days, archive to S3/GCS/Azure Blob must be configured. Always check whether the requested time window falls within retention before running a query. ## Troubleshooting | Problem | Cause | Fix | |---------|-------|-----| | 403 Forbidden | Missing `audit_logs_read` scope | Add scope to app key in Datadog UI | | Empty results | Time window outside retention | Check archive config; default max is 90 days | | Timeout | Query too broad | Narrow time window or add more filters | | No IP data | Internal action or pre-enrichment event | Not all events have geo data | ## References - [Audit Trail API](https://docs.datadoghq.com/api/latest/audit/) - [Audit Trail documentation](https://docs.datadoghq.com/account_management/audit_trail/) - [Search syntax](https://docs.datadoghq.com/logs/explorer/search_syntax/)
© datadog-labs · MIT · datadog-labs/agent-skills