权限与 .kiroignore
Kiro 基于能力的权限系统(capability、effect、match、exclude),用户级与工作区级 permissions.yaml,以及用 .kiroignore 阻止读取敏感文件。
权限
Kiro 用基于能力的权限系统,对智能体能做什么提供细粒度、声明式的控制:按能力写带匹配模式和显式效果的规则,取代旧的二元开关。在 IDE 和 CLI 里用 permissions.yaml 与交互式批准提示;Web 上智能体运行在隔离的云沙箱里,不适用 permissions.yaml。三个核心概念:能力(fs_read、fs_write、shell、web_fetch、web_search、mcp、subagent、skill、power、context、diagnostics、sandbox_network,以及展开成多项的元能力 all、builtin 等);效果(deny 始终阻止、ask 提示你、allow 静默放行);优先级(deny > ask > allow,deny 规则无论哪个作用域都胜出)。附加属性:match(限定规则的 glob:fs 用文件路径、shell 用命令前缀、MCP 用服务器/工具名)和 exclude(必须不匹配的 glob,实现「除 X 之外都允许」)。规则写在两处 YAML:用户级 ~/.kiro/settings/permissions.yaml(跨所有项目,用来预批准可信操作)和工作区级 ~/.kiro/workspace-roots/<hash>/permissions.yaml(仅某个项目;存放在仓库之外的用户目录,所以克隆下来的仓库无法注入权限规则)。
rules:
- capability: shell
match: ["git *", "npm *", "npx *"]
effect: allow
- capability: fs_write
match: ["*.env", "*.pem", "*.key"]
effect: deny
- capability: shell
match: ["rm -rf *", "sudo *"]
effect: deny.kiroignore
.kiroignore 阻止 Kiro 读取工作区里的特定文件,语法同 gitignore:用于凭证、密钥或不想让 AI 看到的内容。支持处,忽略模式作用于智能体的所有工具——被阻止的文件无论哪个工具尝试读取都保持被阻止;返回文件或文本搜索结果前,Kiro 会逐项检查。用途:安全、隐私、合规、聚焦(排除大文件或构建产物)。工作区 .kiroignore 在 IDE 里全面执行,CLI 仅 V3 支持;全局忽略文件 ~/.kiro/settings/kiroignore 仅 IDE;Web 暂不支持。示例:
.env
.env.*
!.env.example
*.pem
*.key
secrets/
private/