View a markdown version of this page

从 IDE 运行代码安全扫描 - AWS 安全代理

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

从 IDE 运行代码安全扫描

使用 Kiro 或 Claude 代码直接从您的 IDE 运行 AWS 安全代理代码安全扫描。IDE 集成允许您扫描本地源代码中是否存在安全漏洞,仅对更改后的代码运行差异扫描,以及对设计文档进行威胁模型审查,所有这些都无需离开开发环境。发现结果显示在代码旁边,并附有补救指南,您可以直接从 IDE 中应用自动修复。

IDE 集成的工作原理

IDE 集成使用 AWS 安全代理 MCP(模型上下文协议)服务器将您的 IDE 连接到 AWS 安全代理服务:

  1. MCP 服务器将您的源代码打包到 ZIP 存档中。

  2. 档案将上传到服务器在您的 AWS 账户中自动配置的 S3 存储桶。

  3. 服务器调用 AWS 安全代理 API 开始扫描。

  4. AWS Security Agent 会分析代码是否存在安全漏洞以及是否符合贵组织的安全要求。

  5. 结果将返回到 IDE,包括代码位置、描述、严重性评级和补救建议。

MCP 服务器负责处理所有编排(代理空间配置、S3 存储桶创建、IAM 角色设置、代码打包和扫描轮询),因此您只需要在本地配置 AWS 凭证即可。

注意

唯一的先决条件是在您的本地环境中配置 AWS 证书(例如aws configure,通过 AWS SSO 或环境变量)。MCP 服务器会在首次使用时自动配置代理空间、IAM 服务角色和 S3 存储桶。

先决条件

在开始之前,请确保您满足以下条件:

  • 使用以下权限在本地配置的 AWS 证书:

    • iam:CreateRoleiam: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 服务角色

SecurityAgentScanRole

假设读securityagent.amazonaws.com取上传的代码

S3 存储桶

security-agent-scans-{account}-{region}

存储压缩后的源代码(30 天自动过期生命周期)

要明确触发安装程序,请询问您的 IDE:

Set up the security agent

该设置会验证您的 AWS 证书,创建或重复使用代理空间,配置 IAM 角色和 S3 存储桶,并确认准备就绪。如果您已经有来自 AWS 管理控制台的代理空间,则设置会显示它们并询问要使用哪一个。

注意

如果尚未配置,则安装程序会在首次扫描时自动运行。您无需单独运行它。

运行全面的安全扫描

扫描整个项目是否存在安全漏洞:

Scan this project for security issues

IDE:

  1. 存档您的源代码(不包括.gitnode_modules、、构建工件和其他非必要目录)

  2. 将档案上传到 S3

  3. 开始完整的代码审查作业

  4. 投票完成时间(通常在 1 小时左右)

  5. 显示按严重程度分组的调查结果

扫描进度

完全扫描通常需要大约 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.mddesign.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)

“对我的规格进行威胁模型审查”

环境变量

变量 说明 默认

AWS_REGION

适用于 SecurityAgent API 调用的 AWS 区域

us-east-1

AWS_PROFILE

AWS 凭证资料名称

默认配置文件

FASTMCP_LOG_LEVEL

MCP 服务器日志级别(调试、信息、警告、错误)

WARNING

问题排查

“未配置。先运行安装程序。”

您的.security-agent/config.json失踪或代理空间已不存在。让 IDE 运行安装程序:

Set up the security agent

扫描失败 AccessDenied

确保您的 AWS 凭证具有 “先决条件” 部分中列出的所需 IAM 权限。最常见的缺失权限是iam:CreateRole(仅在首次设置时才需要)。

扫描超时或耗时太长

  • 对大型代码库进行全面扫描可能需要 1 个多小时

  • 使用差异扫描进行迭代开发 — 只需几分钟即可完成

  • 检查您的源存档中是否包含不必要的目录(MCP 服务器会自动排除常见模式)

空差异-扫描不做任何更改

如果您在没有未提交的更改的情况下运行差异扫描,MCP 服务器会报告 “与 HEAD 无更改”,并且不会启动扫描。先提交或暂存您的更改,或者指定不同的基本引用。

限额和限制

  • 最大源存档大小:2 GB

  • S3 存储桶生命周期:上传的代码在 30 天后自动删除

后续步骤

运行第一次 IDE 安全扫描后: