diff-scanning-with-aws-security-agent — скилл для Claude Code: скан
Скилл запускает быстрый скан AWS Security Agent только по изменённому коду с момента git-ссылки. Пригодится перед коммитом или пул-реквестом.
npx skills add aws/agent-toolkit-for-aws --skill diff-scanning-with-aws-security-agent -a claude-codeЧто делает diff-scanning-with-aws-security-agent
Скилл берёт дифф рабочей копии или ветки и отправляет в AWS Security Agent только изменённые файлы. Полный скан для этого не нужен — находки приходят по дельте, поэтому проверка идёт быстрее.
Перед запуском скилл читает .security-agent/config.json с agent_space_id и region. Если файла нет, сначала выполняется воркфлоу setup-security-agent. Дальше агент спрашивает, с чем сравнивать: незакоммиченные изменения (BASE_REF=HEAD), ветка против main или своя ссылка. Дифф и zip воркспейса уезжают в S3, затем создаётся CodeReview и стартует job с --diff-source. Результаты складываются в .security-agent/findings-{scan_id}.md, история сканов — в scans.json.
Нужен настроенный доступ к AWS: роль SecurityAgentScanRole, бакет security-agent-scans-<account>-<region> и рабочий AWS CLI. Архив воркспейса ограничен 2 GB. Если дифф пустой, скилл останавливается и скан не запускает — это повод проверить, ту ли ссылку вы указали. Опрос статуса идёт раз в 2 минуты, чаще не стоит.
Какие задачи решает
- просканировать только изменённый код перед коммитом
- проверить ветку на уязвимости до открытия пул-реквеста
- получить находки по диффу без полного скана репозитория
- отследить историю сканов воркспейса в одном файле
- остановиться, если изменений нет, вместо лишнего запуска
Примеры запросов агенту
- просканируй изменения перед коммитом
- запусти diff scan ветки против main
- проверь, что изменилось, на проблемы безопасности
Как установить diff-scanning-with-aws-security-agent
1Через Skills CLI (Vercel)
npx skills add aws/agent-toolkit-for-aws --skill diff-scanning-with-aws-security-agent -a claude-code2Вручную: положить файлы
~/.claude/skills/diff-scanning-with-aws-security-agent/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/diff-scanning-with-aws-security-agent/
1Через Skills CLI (Vercel)
npx skills add aws/agent-toolkit-for-aws --skill diff-scanning-with-aws-security-agent -a codex2Вручную: положить файлы
.agents/skills/diff-scanning-with-aws-security-agent/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add aws/agent-toolkit-for-aws --skill diff-scanning-with-aws-security-agent -a cursor2Вручную: положить файлы
.cursor/skills/diff-scanning-with-aws-security-agent/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install aws/agent-toolkit-for-aws diff-scanning-with-aws-security-agent2Вручную: положить файлы
.github/skills/diff-scanning-with-aws-security-agent/SKILL.md1Через Skills CLI (Vercel)
npx skills add aws/agent-toolkit-for-aws --skill diff-scanning-with-aws-security-agent -a gemini-cli2Командой платформы
gemini skills install https://github.com/aws/agent-toolkit-for-aws --path plugins/aws-agents-for-devsecops/skills/diff-scanning-with-aws-security-agentВручную: положить файлы
.devin/skills/diff-scanning-with-aws-security-agent/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add aws/agent-toolkit-for-aws --skill diff-scanning-with-aws-security-agent -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о diff-scanning-with-aws-security-agent
Как установить diff-scanning-with-aws-security-agent в Claude?
Выполните npx skills add aws/agent-toolkit-for-aws --skill diff-scanning-with-aws-security-agent -a claude-code. Скилл появится в ~/.claude/skills/diff-scanning-with-aws-security-agent/SKILL.md.
Что делает diff-scanning-with-aws-security-agent?
Запускает скан AWS Security Agent только по коду, изменившемуся с указанной git-ссылки. Находки группируются по критичности и пишутся в .security-agent/findings-{scan_id}.md.
Что нужно для работы скилла?
Конфиг .security-agent/config.json с agent_space_id и region, роль SecurityAgentScanRole и бакет security-agent-scans-<account>-<region>. Если конфига нет, сначала запускается setup-security-agent.
Исходный текст
SKILL.md · Apache-2.0
---
name: diff-scanning-with-aws-security-agent
description: Run a fast AWS Security Agent diff scan on only the changed code since a git ref. Use when the user asks to scan changes, run a diff scan, check what changed for security issues, scan before committing, scan before PR, or any pre-commit/pre-push security check.
---
# AWS Security Agent — Diff Scan
Scan only the code that changed since a git ref. Faster than a full scan — focuses findings on the diff. No prior full scan needed.
## Local state
Read `.security-agent/config.json` for `agent_space_id` and `region`. If missing, run the `setup-security-agent` workflow inline first.
Track scans in `.security-agent/scans.json`.
### Resolving the values you need
| Placeholder | How to resolve |
|-------------|----------------|
| `<id>` (agent space) | `config.agent_space_id` |
| `<region>` | `config.region` (default `us-east-1`) |
| `<account>` | `aws sts get-caller-identity --query Account --output text` |
| `<role-arn>` | `arn:aws:iam::<account>:role/SecurityAgentScanRole` |
| `<bucket>` | `security-agent-scans-<account>-<region>` |
| `<WORKSPACE_ID>` | `printf '%s' "$(pwd)" \| md5sum \| cut -c1-12` |
---
## Workflow
1. **Pre-scan checks.** Same as full scan — read config, verify agent space, resolve values, generate workspace ID.
2. **Ask what to scan against:**
- Uncommitted changes → `BASE_REF=HEAD` (default)
- Branch vs main → `BASE_REF=main`
- Custom ref → user provides
3. **Generate diff (fail fast if empty):**
```bash
cd <absolute-workspace-path>
if [ "$BASE_REF" = "HEAD" ]; then
git diff HEAD > /tmp/diff.patch
else
git diff "$BASE_REF..HEAD" > /tmp/diff.patch
fi
[ -s /tmp/diff.patch ] || { echo "No changes vs $BASE_REF"; exit 1; }
```
4. **Zip the workspace** (same exclusions as full scan, 2 GB limit):
```bash
cd <absolute-workspace-path>
zip -r /tmp/source.zip . \
-x ".git/*" -x ".security-agent/*" -x "node_modules/*" \
-x "__pycache__/*" -x ".venv/*" -x "venv/*" \
-x "dist/*" -x "build/*" -x "target/*" \
-x ".mypy_cache/*" -x ".pytest_cache/*" -x ".tox/*" \
-x ".next/*" -x "cdk.out/*" -x ".DS_Store" -x "*.pyc"
```
5. **Upload both source zip and diff patch:**
```bash
SCAN_ID="diff-$(date +%s)-$(openssl rand -hex 3)"
aws s3 cp /tmp/source.zip s3://<bucket>/security-scans/source/<WORKSPACE_ID>/source.zip --expected-bucket-owner <account>
aws s3 cp /tmp/diff.patch s3://<bucket>/security-scans/diffs/${SCAN_ID}/diff.patch --expected-bucket-owner <account>
```
6. **Get or create per-workspace CodeReview** (same logic as full scan — lookup `config.json → code_reviews[<abs_path>]`, create if absent):
```bash
aws securityagent create-code-review --agent-space-id <id> --title <title> \
--service-role <role-arn> \
--assets sourceCode=[{s3Location=s3://<bucket>/security-scans/source/<WORKSPACE_ID>/source.zip}]
```
7. **Start the diff job:**
```bash
aws securityagent start-code-review-job --agent-space-id <id> --code-review-id <cr-id> \
--diff-source s3Uri=s3://<bucket>/security-scans/diffs/${SCAN_ID}/diff.patch
```
If `ResourceNotFoundException`: recreate CodeReview and retry.
8. Capture `codeReviewJobId`. Persist to `scans.json` with `scan_type: "DIFF"` and `base_ref`.
9. Tell user: "Diff scan started. Takes a few minutes. I'll check every 2 minutes — say 'stop polling' to opt out."
10. **Poll** every 2 minutes:
```bash
aws securityagent batch-get-code-review-jobs --agent-space-id <id> --code-review-job-ids <job_id>
```
Only respond when status changes. On COMPLETED → fetch findings.
11. **Findings:** same presentation as full scan — grouped by severity, report written to `.security-agent/findings-{scan_id}.md`.
---
## Rules
- Diff scans are standalone — no prior full scan needed
- Poll every 2 minutes, not faster
- Default to `BASE_REF=HEAD` if user doesn't specify
- Title: `diff-<git-branch>-<timestamp>` (no spaces)
- If diff is empty, tell user and stop — don't start a scan
© aws · Apache-2.0 · aws/agent-toolkit-for-aws