本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
从 IDE 运行代码安全扫描
使用 Kiro 或 Claude 代码直接从您的 IDE 运行 AWS 安全代理代码安全扫描。IDE 集成允许您扫描本地源代码中是否存在安全漏洞,仅对更改后的代码运行差异扫描,以及对设计文档进行威胁模型审查,所有这些都无需离开开发环境。发现结果显示在代码旁边,并附有补救指南,您可以直接从 IDE 中应用自动修复。
IDE 集成的工作原理
IDE 集成使用 AWS 安全代理 MCP(模型上下文协议)服务器将您的 IDE 连接到 AWS 安全代理服务:
-
MCP 服务器将您的源代码打包到 ZIP 存档中。
-
档案将上传到服务器在您的 AWS 账户中自动配置的 S3 存储桶。
-
服务器调用 AWS 安全代理 API 开始扫描。
-
AWS Security Agent 会分析代码是否存在安全漏洞以及是否符合贵组织的安全要求。
-
结果将返回到 IDE,包括代码位置、描述、严重性评级和补救建议。
MCP 服务器负责处理所有编排(代理空间配置、S3 存储桶创建、IAM 角色设置、代码打包和扫描轮询),因此您只需要在本地配置 AWS 凭证即可。
注意
唯一的先决条件是在您的本地环境中配置 AWS 证书(例如aws configure,通过 AWS SSO 或环境变量)。MCP 服务器会在首次使用时自动配置代理空间、IAM 服务角色和 S3 存储桶。
先决条件
在开始之前,请确保您满足以下条件:
-
使用以下权限在本地配置的 AWS 证书:
-
iam:CreateRole,iam:PutRolePolicy(用于一次性设置服务角色) -
s3:CreateBucket,s3:PutObject,s3:PutPublicAccessBlock,s3:PutLifecycleConfiguration -
securityagent:CreateAgentSpace,securityagent:UpdateAgentSpace,securityagent:ListAgentSpaces,securityagent:BatchGetAgentSpaces -
securityagent:CreateCodeReview,securityagent:StartCodeReviewJob,securityagent:BatchGetCodeReviewJobs -
securityagent:ListFindings,securityagent:BatchGetFindings -
securityagent:StartCodeRemediation(用于自动修复) -
sts:GetCallerIdentity
-
-
已安装 uv
(Python 包运行器) -
Python 3.10 或更高版本
-
以下 IDE 之一:
-
Kiro
(安装 AWS 安全代理功能) -
Claude Code(安装 AWS 安全代理插件)
-
安装 MCP 服务器
Kiro
从 Kiro 市场安装 AWS 安全代理 Power。Power 将 MCP 服务器配置、转向指令和生命周期挂钩捆绑在一起,以提供自动安全扫描建议。
或者,也可以在项目中手动配置 MCP 服务器:.kiro/mcp.json
{ "mcpServers": { "security-agent": { "command": "uvx", "args": ["awslabs.security-agent-mcp-server@latest"], "env": { "AWS_PROFILE": "default", "AWS_REGION": "us-east-1", "FASTMCP_LOG_LEVEL": "ERROR" } } } }
Claude Code
安装 AWS Security Agent 插件,该插件提供设置、完整扫描、差异扫描、威胁模型审查和补救的技能。
在项目中配置 MCP 服务器:.mcp.json
{ "mcpServers": { "awslabs.security-agent-mcp-server": { "command": "uvx", "args": ["awslabs.security-agent-mcp-server@latest"], "env": { "AWS_PROFILE": "default", "AWS_REGION": "us-east-1", "FASTMCP_LOG_LEVEL": "ERROR" } } } }
提示
如果你不想在本地安装 Python,也可以通过 Docker 运行 MCP 服务器。有关 Docker 配置的信息,请参阅 MCP 服务器文档
First-time 设置
首次使用时,MCP 服务器会自动配置所需的 AWS 资源:
| 资源 | 命名惯例 | 用途 |
|---|---|---|
|
特工空间 |
User-chosen 或自动创建 |
用于存放扫描、评论和笔试的容器 |
|
IAM 服务角色 |
|
假设读 |
|
S3 存储桶 |
|
存储压缩后的源代码(30 天自动过期生命周期) |
要明确触发安装程序,请询问您的 IDE:
Set up the security agent
该设置会验证您的 AWS 证书,创建或重复使用代理空间,配置 IAM 角色和 S3 存储桶,并确认准备就绪。如果您已经有来自 AWS 管理控制台的代理空间,则设置会显示它们并询问要使用哪一个。
注意
如果尚未配置,则安装程序会在首次扫描时自动运行。您无需单独运行它。
运行全面的安全扫描
扫描整个项目是否存在安全漏洞:
Scan this project for security issues
IDE:
-
存档您的源代码(不包括
.gitnode_modules、、构建工件和其他非必要目录) -
将档案上传到 S3
-
开始完整的代码审查作业
-
投票完成时间(通常在 1 小时左右)
-
显示按严重程度分组的调查结果
扫描进度
完全扫描通常需要大约 1 小时,具体取决于代码库的大小。IDE 每 5 分钟检查一次进度,并在结果准备就绪时通知您。您可以随时询问状态:
How's the scan going?
运行差异扫描
为了在开发过程中更快地获得反馈,请仅扫描自 git ref 以来更改过的代码:
Scan my changes against main for security issues
默认情况下,如果您未指定基本引用,则扫描会将未提交的更改与之进行比较。HEAD你可以明确指定不同的基数:
Diff scan my uncommitted changes
差异扫描会上传完整的存储库上下文和 git diff 补丁,然后仅针对更改的行运行分析。结果通常在 5-15 分钟内得出。
有关 S3 差异扫描 API 的更多信息,请参阅使用 S3 运行差分代码扫描。
进行威胁模型审查
使用 STRIDE 方法分析设计文档以了解安全态势的变化:
Run a threat model review on my spec
IDE 会识别您的requirements.md和design.md文件(通常位于下方.kiro/specs/),将其与源代码一起上传,并运行威胁模型分析。结果确定:
-
按STRIDE分类的安全威胁(欺骗、篡改、拒绝、信息泄露、拒绝服务、权限提升)
-
每种威胁的严重性等级
-
对代码库中特定资产的影响
-
缓解建议
提示
在根据规范生成实施任务之前,先进行威胁模型审查。这可以在编写代码之前发现安全设计问题。
查看调查发现
扫描完成后,搜索结果将按严重性分组显示在您的 IDE 中:
🟣 CRITICAL: SQL Injection in user-service.ts File: src/api/user-service.ts:45 User input flows directly into SQL query without parameterization 🔴 HIGH: Hardcoded credentials in config.ts File: src/config/database.ts:12 Database password stored in source code
还会写一份详细的报告,其中.security-agent/findings-{scan_id}.md包含每项发现的完整信息,包括风险类型、置信度分数、代码位置和补救代码。
要查看先前扫描的结果,请执行以下操作:
Show my security findings
应用自动修复
查看调查结果后,应用自动补救措施:
Fix the security findings
IDE 按严重程度(严重 → 高 → 中 → 低)自上而下处理调查结果,并使用每个发现的补救指南应用代码修复。应用所有修复后,它会自动运行验证差异扫描以确认问题已解决。
您也可以修复个别发现:
Fix the SQL injection in user-service.ts
重要
在提交之前,请务必查看自动修复程序。确认修复不会破坏现有功能或引入回归。
自动扫描建议 (Kiro)
使用 Kiro Power 时,AWS 安全代理可以在您更改安全敏感代码后自动建议差异扫描。Power 会安装一个挂钩,该挂钩会评估每个完成的编码回合,并在更改影响以下内容时建议进行扫描:
-
身份验证或授权逻辑
-
密码学或机密处理
-
输入验证或数据清理
-
网络请求或外部集成
-
安全配置(CORS、标头、会话处理)
您可以随时通过删除来选择不接收自动建议.kiro/hooks/security-diff-scan-suggester.kiro.hook。
可用的扫描类型
| 扫描类型 | Duration | 使用案例 | 命令 |
|---|---|---|---|
|
完全扫描 |
大约 1 小时 |
全面审查整个代码库 |
“扫描我的项目是否存在安全问题” |
|
差异扫描 |
5—15 分钟 |
仅更改代码(提交前、PR 前) |
“扫描我的更改” 或 “与主屏幕进行差异扫描” |
|
威胁模型 |
5—30 分钟 |
设计文档(requirements.md、design.md) |
“对我的规格进行威胁模型审查” |
环境变量
| 变量 | 说明 | 默认 |
|---|---|---|
|
|
适用于 SecurityAgent API 调用的 AWS 区域 |
|
|
|
AWS 凭证资料名称 |
默认配置文件 |
|
|
MCP 服务器日志级别(调试、信息、警告、错误) |
|
问题排查
“未配置。先运行安装程序。”
您的.security-agent/config.json失踪或代理空间已不存在。让 IDE 运行安装程序:
Set up the security agent
扫描失败 AccessDenied
确保您的 AWS 凭证具有 “先决条件” 部分中列出的所需 IAM 权限。最常见的缺失权限是iam:CreateRole(仅在首次设置时才需要)。
扫描超时或耗时太长
-
对大型代码库进行全面扫描可能需要 1 个多小时
-
使用差异扫描进行迭代开发 — 只需几分钟即可完成
-
检查您的源存档中是否包含不必要的目录(MCP 服务器会自动排除常见模式)
空差异-扫描不做任何更改
如果您在没有未提交的更改的情况下运行差异扫描,MCP 服务器会报告 “与 HEAD 无更改”,并且不会启动扫描。先提交或暂存您的更改,或者指定不同的基本引用。
限额和限制
-
最大源存档大小:2 GB
-
S3 存储桶生命周期:上传的代码在 30 天后自动删除
后续步骤
运行第一次 IDE 安全扫描后:
-
为自动 GitHub 集成启用拉取请求代码审查注释(请参阅为 GitHub 仓库启用拉取请求代码审查)
-
为组织特定的策略验证配置安全要求(请参阅)管理安全要求
-
定期运行全面扫描,以发现整个代码库中的问题(参见创建代码审查)
-
在实施之前,请对新功能规格进行威胁模型审查