
Claude Code 管理权限与安全
了解 Claude Code 的权限系统、工具访问控制与安全防护机制。
Claude Code 采用分层权限系统,兼顾功能强大与安全性:
工具类型 | 示例 | 是否需要审批 | “是,不再询问” 的行为 |
---|---|---|---|
只读 | 文件读取、LS、Grep | 否 | 不适用 |
Bash 命令 | shell 执行 | 是 | 针对每个项目目录和命令永久记住 |
文件修改 | 编辑/写入文件 | 是 | 仅本次会话有效 |
Claude 可用的工具
Claude Code 能使用一组强大的工具,帮助理解和修改你的代码库:
工具 | 描述 | 是否需要权限 |
---|---|---|
Agent | 运行子代理,处理复杂多步任务 | 否 |
Bash | 在你的环境中执行 shell 命令 | 是 |
Glob | 基于模式匹配查找文件 | 否 |
Grep | 在文件内容中查找模式 | 否 |
LS | 列出文件和目录 | 否 |
Read | 读取文件内容 | 否 |
Edit | 有针对性地编辑特定文件 | 是 |
Write | 创建或覆盖文件 | 是 |
NotebookEdit | 修改 Jupyter notebook 单元格 | 是 |
NotebookRead | 读取并展示 Jupyter notebook 内容 | 否 |
WebFetch | 从指定 URL 抓取内容 | 是 |
你可以通过 /allowed-tools 或权限设置文件进行权限配置。
防范提示注入攻击
提示注入(prompt injection)是指攻击者通过插入恶意文本来试图篡改或干扰 AI 助手指令的一种方式。Claude Code 通过多重防护机制降低此类风险:
- 权限系统:敏感操作需用户明确批准
- 上下文感知分析:分析完整请求,检测潜在有害指令
- 输入清洗:处理用户输入,防止命令注入
- 命令黑名单:拦截 curl、wget 等可获取任意网络内容的高风险命令
应对不可信内容的最佳实践:
- 审查 Claude 建议的命令再批准
- 避免直接将不可信内容通过管道传给 Claude
- 仔细核查对关键文件的变更
- 若遇可疑行为可用 /bug 命令报告
虽然这些防护大幅降低了风险,但任何系统都无法做到绝对安全。使用 AI 工具时请始终保持良好的安全习惯。
配置网络访问
Claude Code 需要访问以下域名:
- api.anthropic.com
- statsig.anthropic.com
- sentry.io
在容器化环境下使用 Claude Code 时请将这些 URL 加入白名单。
开发容器参考实现
Claude Code 提供开发容器(devcontainer)配置,便于团队拥有一致且安全的开发环境。该预设 devcontainer 可与 VS Code Remote – Containers 扩展和类似工具无缝协作。
该容器强化了安全措施(隔离与防火墙规则),你可用 claude –dangerously-skip-permissions 跳过权限提示,实现无人值守操作。我们也提供了可自定义的参考实现。
尽管开发容器提供了较强的防护,但任何系统都不可能百分百防御所有攻击。请始终保持良好安全习惯,并监控 Claude 的活动。
主要特性
- 生产级 Node.js:基于 Node.js 20,内含开发常用依赖
- 安全设计:定制防火墙,仅允许必要服务网络访问
- 开发友好工具:集成 git、ZSH、fzf 等高效工具
- VS Code 无缝集成:预装扩展与优化设置
- 会话持久化:容器重启后保留命令历史和配置
- 跨平台支持:兼容 macOS、Windows、Linux 开发环境
四步快速上手
- 安装 VS Code 及 Remote – Containers 扩展
- 克隆 Claude Code 参考实现仓库
- 在 VS Code 中打开该仓库
- 按提示点击“Reopen in Container”(或 Cmd+Shift+P 输入“Remote-Containers: Reopen in Container”)
配置结构
devcontainer 设置主要包含三部分:
- devcontainer.json:控制容器设置、扩展、挂载卷
- Dockerfile:定义容器镜像及安装工具
- init-firewall.sh:建立网络安全规则
安全特性
该容器实现了多层防护:
- 精准访问控制:只允许白名单域名(如 npm registry、GitHub、Anthropic API 等)外连
- 默认拒绝策略:阻止所有其他外部网络访问
- 启动验证:容器初始化时校验防火墙规则
- 隔离性:开发环境与主系统隔离
自定义选项
devcontainer 配置设计为高度可自定义:
- 根据你的工作流增删 VS Code 扩展
- 根据硬件调整资源分配
- 自定义网络访问权限
- 调整 shell 配置和开发工具