diff-scanning-with-aws-security-agent
Этот навык AWS предназначен для быстрой проверки безопасности именно тех изменений, которые попали в Git diff относительно выбранной точки сравнения. Он не требует предварительного полного сканирования: самостоятельный diff scan фокусирует проверку на изменённом коде и поэтому подходит как короткий контроль перед commit, pull request или выпуском. В исходном SKILL.md прямо перечислены такие поводы: пользователь просит просканировать изменения, проверить diff на проблемы безопасности, выполнить проверку перед коммитом или pull request, либо запустить pre-commit/pre-push security check. Карточка описывает этот навык как маршрут подготовки и запуска сканирования, а не как обещание, что любой найденный риск будет автоматически исправлен. Работа начинается с локального состояния проекта. Инструкция требует прочитать .security-agent/config.json и получить из него agent_space_id и region; если конфигурации нет, сначала нужно выполнить workflow setup-security-agent. Запуски сохраняются в .security-agent/scans.json. Из конфигурации берутся идентификаторы пространства и региона, а аккаунт AWS разрешается через aws sts get-caller-identity. В инструкции также зафиксированы производные значения для роли SecurityAgentScanRole, S3 bucket с именем security-agent-scans-<account>-<region> и WORKSPACE_ID, вычисляемый из абсолютного пути рабочего пространства через md5sum. Эти шаги связывают локальную проверку с конкретным AWS agent space и не позволяют молча потерять сведения о запуске. Перед формированием diff пользователь выбирает базу сравнения. Для незакоммиченных изменений используется BASE_REF=HEAD, для сравнения ветки с main — BASE_REF=main, а другой ref задаётся явно. Затем команда git diff строит patch; если файл diff пуст, workflow должен завершиться сообщением No changes и не запускать сканирование. Это важное ограничение: отсутствие изменений — не повод создавать пустой job. После этого исходное рабочее пространство архивируется с исключением .git, .security-agent, node_modules, кэшей, виртуальных окружений, каталогов сборки, .next, cdk.out, .DS_Store и pyc-файлов. В описании источника указан предел архива — 2 GB. Следующий этап — загрузка двух артефактов в S3: source.zip с исходным рабочим пространством и diff.patch с идентификатором конкретного запуска. Затем workflow получает или создаёт CodeReview для этого рабочего пространства, передавая ему S3-расположение архива исходников, и запускает code review job с S3-расположением patch. Если AWS возвращает ResourceNotFoundException для CodeReview, инструкция предписывает пересоздать CodeReview и повторить запуск. Идентификатор job сохраняется в scans.json вместе с типом DIFF и выбранным base_ref. Так в локальной истории остаются тип проверки и точка сравнения, а не только итоговое сообщение. После запуска job не считается завершённым сразу. Исходный workflow сообщает, что diff scan занимает несколько минут, и предписывает проверять состояние каждые две минуты через batch-get-code-review-jobs. Ответ пользователю предлагается давать при изменении статуса; после COMPLETED нужно получить findings и сгруппировать их по severity в отчёте .security-agent/findings-{scan_id}.md. Частота polling является частью рабочего контракта: источник отдельно запрещает проверять статус чаще двух минут. Это делает карточку полезной для процесса, где нужно понимать разницу между созданием задания, ожиданием результата и чтением фактических находок. Репозиторий-источник — официальный Agent Toolkit for AWS. Его README описывает набор инструментов, знаний и guardrails для AI coding agents, включая Claude Code, Codex, Cursor и Kiro. Для DevSecOps-плагина README указывает сценарии расследования инцидентов, code review, UAT для release readiness, поиска уязвимостей и penetration testing с AWS DevOps Agent и AWS Security Agent; данный skill из этого набора покрывает только diff scan. README также показывает, что навыки являются пакетами инструкций и справочных материалов, загружаемыми по требованию, а не постоянным фоновым сканером. Ограничения нужно учитывать до запуска. Нужны доступные настройки .security-agent, agent space и разрешения AWS для операций с S3 и Security Agent; для API-вызовов и выполнения скриптов README требует настроенные AWS credentials, тогда как поиск документации и обнаружение skill-файлов может выполняться без аутентификации. Навык работает с изменениями относительно выбранного git ref и не заменяет полный security scan, code review человека или проверку результата в CI. Он также не запускает job при пустом diff и не скрывает состояние ожидания за синхронным обещанием результата. Источник проверен по публичной директории skill, raw SKILL.md, репозиторию, README и license marker Apache-2.0; это подтверждает происхождение и доступность материала, но не является аудитом исполняемого содержимого и не означает endorsement.
Для чего подходит
- Security-проверка только изменённых файлов
- Сканирование перед commit или pull request
- Поиск проблем в diff без полного повторного scan
Установка
Сначала прочитайте SKILL.md и scripts в исходном репозитории. Затем выполните команду в каталоге проекта:
npx skills add https://github.com/aws/agent-toolkit-for-aws/tree/main/plugins/aws-agents-for-devsecops/skills/diff-scanning-with-aws-security-agent