Appearance
Kiro 是基于 AWS 基础设施构建的独立 Agentic IDE,安全性遵循 AWS 共享责任模型:AWS 负责云基础设施安全,用户负责数据和配置管理。Kiro 提供 Autopilot(自动执行)和 Supervised(逐步确认)两种运行模式,并支持可信命令列表配置。本文介绍各模式的行为差异、资源保护建议及远程扩展安全注意事项。
Kiro 是一款基于 AWS 构建的独立 Agentic IDE。其安全框架以 AWS 的安全基础设施为基础,帮助保护你的开发环境和数据。
共享责任模型
AWS 云的安全遵循共享责任模型,分为"云的安全"和"云中安全"两个层面:
- 云的安全(AWS 负责):AWS 负责保护运行所有 AWS 服务的全球基础设施。第三方审计机构定期测试并验证 AWS 的安全有效性,详见 AWS Compliance Programs。
- 云中安全(用户负责):由你使用的 AWS 服务决定,同时包括数据敏感性、公司合规要求和适用法规等因素。
URL 抓取
在 Kiro Chat 模块中,你可以粘贴特定 URL 让设备抓取并作为上下文使用。你需要自行负责所抓取 URL 的内容合规性,确保符合适用的第三方条款和法规。
Autopilot 模式与 Supervised 模式
Kiro 默认启用 Autopilot 模式,你可以随时在两种模式之间切换。
Autopilot 模式
Autopilot 模式下,Kiro 自主运行:
- 无需逐步审批即可执行多个步骤
- 根据对需求的理解自主决策
- 可在 Chat 界面随时开关 Autopilot
- 可随时中断 Autopilot,恢复手动控制
Autopilot 有权执行代码变更,包括在代码库中创建、修改、搜索和删除文件,以及运行影响文件系统的命令。
Supervised 模式
Supervised 模式下,Kiro 以交互方式工作,每一步都需要用户确认:
- 建议文件创建、修改和删除操作,但等待用户确认后才执行
- 需要时主动提出澄清问题
- 可审查并批准每个生成的文档或代码变更,全程掌控开发过程
在两种模式下,你都可以通过 Chat 模块中的 View all changes 查看 Agent 所做的单个或全部文件变更,也可以选择 Revert all changes 或回滚到某个检查点,将文件恢复到本地文件系统的之前状态。
可信命令
默认情况下,Kiro 在运行任何命令前都需要用户审批。你可以在设置中搜索 Kiro Agent: Trusted Commands 创建自己的可信命令列表。
Kiro 使用简单的字符串前缀匹配来判断命令是否自动信任:
- 精确匹配:命令必须完全匹配(如
npm install) - 通配符匹配:使用
*信任命令变体(如npm *信任所有 npm 命令) - 全局信任:单独使用
*信任所有命令(极度谨慎使用)
系统将整个命令视为单一字符串,仅检查是否以可信模式开头,不分析命令结构、链式调用或特殊字符。配置可信命令模式的责任完全由用户承担。
最佳实践
以下最佳实践为通用指导,不代表完整的安全解决方案。请根据实际环境判断其适用性。
保护你的资源
使用 GitHub 或 Google 账号登录 Kiro 时,Kiro Agent 运行在本地环境中,可能访问:
- 本地文件和代码仓库
- 环境变量
- 存储在环境中的 AWS 凭证
- 其他含敏感信息的配置文件
建议措施
- 工作区隔离:将敏感项目放在独立工作区;使用
.gitignore阻止访问敏感文件;考虑使用 IDE 的工作区信任功能。 - 使用干净的环境:考虑为 Kiro 创建专用用户账号或容器环境;仅授予当前项目所需的仓库和资源访问权限。
- 谨慎管理 AWS 凭证:使用具有适当权限的临时凭证;考虑使用 AWS named profile 隔离 Kiro 的访问范围;敏感工作时,不需要时从环境中移除 AWS 凭证。
- 仓库访问控制:使用 GitHub 认证时,检查 Kiro 可访问的仓库范围;尽可能使用仓库专用的访问 token;定期审计访问权限。
远程扩展安全
Kiro 支持 Open VSX 扩展,包括远程 SSH 扩展(Open VSX 上社区维护的 Open Remote - SSH 是常用选择),以提供熟悉的开发体验。关于扩展兼容性的详细信息,请参阅扩展兼容性指南。
常见问题
Q:Autopilot 模式下,如何防止 Kiro 误删重要文件?
A:可以通过两种方式防护:一是在项目根目录的 .gitignore 中标记敏感文件;二是在执行高风险操作前切换到 Supervised 模式,逐步审批每个文件操作。Autopilot 执行过程中也可随时中断并通过 "Revert all changes" 回滚。
Q:可信命令列表配置错误会有什么后果?
A:配置过于宽松(如 npm *)意味着所有 npm 子命令都会自动执行,包括 npm publish 或 npm run deploy 等高风险命令。建议从最小范围开始配置,只信任经过验证的、幂等或低风险的命令,避免使用全局通配符 *。
Q:Kiro 会访问我存储在系统环境变量中的 AWS 凭证吗?
A:是的,Kiro Agent 运行在本地环境中,可以读取系统环境变量,包括 AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY 等。建议为 Kiro 使用临时凭证或专用的最小权限 IAM 角色,避免使用具有管理员权限的长期凭证。