SuperAPI AI 工具集

diff-scanning-with-aws-security-agent

智能体与模型

查看项目

更新于 10-15 17:23

技能介绍

用途:对自指定 git ref 以来变更的代码运行快速 AWS Security Agent 差异扫描,聚焦 diff 上的发现结果。适用于用户要求扫描变更、运行 diff 扫描或查看改动内容时。

主要能力:支持三种扫描基准——未提交改动(BASE_REF=HEAD,默认)、分支对比 main(BASE_REF=main)以及用户自定义 ref。会先生成 diff,若为空则直接停止;随后打包工作区并同时上传源码 zip 与 diff patch。差异扫描独立运行,无需先做全量扫描。结果按严重级别分组,写入 .security-agent/findings-{scan_id}.md。

使用方式:先读取 .security-agent/config.json 获取 agent_space_id 和 region(缺失则先运行 setup-security-agent 工作流),扫描记录保存在 .security-agent/scans.json。所需值解析:id 取 config.agent_space_id,region 取 config.region(默认 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 生成。

关键步骤:cd 到工作区后按基准生成 diff,例如未提交改动用 git diff HEAD > /tmp/diff.patch,分支对比用 git diff "$BASE_REF..HEAD" > /tmp/diff.patch,并用 [ -s /tmp/diff.patch ] 校验非空。打包时排除 .git、.security-agent、node_modules、各类缓存与构建目录,限 2 GB。之后用 aws s3 cp 上传源码与 diff patch,通过 aws securityagent create-code-review 获取或创建 CodeReview,再用 start-code-review-job 加 --diff-source 启动差异任务;若报 ResourceNotFoundException 则重建 CodeReview 后重试。记录 codeReviewJobId 到 scans.json,scan_type 为 DIFF,并保存 base_ref。每 2 分钟轮询一次 batch-get-code-review-jobs,仅在状态变化时响应,COMPLETED 后获取发现结果。

限制与规则:差异扫描为独立流程,不依赖先前全量扫描;轮询间隔不得快于 2 分钟;用户未指定时默认 BASE_REF=HEAD;扫描标题格式为 diff-<git-branch>-<timestamp>(不含空格);diff 为空时告知用户并停止,不启动扫描。该资料未提供计费、价格或平台支持范围的进一步信息。