本节目标完成本节学习后你将能够配置.claude/settings.json安全规则精准控制 Claude Code 的权限边界识别并分类危险命令实施分级阻止策略警告/确认/禁止使用/sandbox命令实现 OS 级进程隔离Linux bubblewrap / macOS Seatbelt制定敏感文件保护策略防止 AI 访问.env、密钥、证书和内部文档建立环境变量安全管理与审计日志体系满足企业合规要求核心知识点一、安全配置的三道防线Claude Code 的企业安全通过三道防线实现纵深防御第一道防线配置层 (settings.json) └─ 权限白名单/黑名单、命令限制、文件访问控制 └─ 最轻量、最容易部署适合所有团队 第二道防线沙箱层 (/sandbox) └─ OS 级进程隔离文件系统和网络访问受限 └─ 适合高风险操作如处理生产数据、执行未知代码 第三道防线审计层 (audit logging) └─ 所有操作的完整记录和事后追溯 └─ 适合有合规要求的行业金融、医疗、政府二、危险命令分级体系危险等级命令类型策略示例L3 - 致命不可逆的破坏性操作硬阻止 (hard-block)rm -rf /,git push --force origin main,DROP DATABASEL2 - 危险可能造成损失的操作弹窗确认 (confirm)git reset --hard,chmod 777,sudoL1 - 警惕有风险但必要的操作静默警告 (warn)npm publish,docker rm,kubectl deleteL0 - 安全日常开发操作允许 (allow)git status,npm test,ls,cat三、/sandbox的三种隔离等级Claude Code v2.1.x 支持三级沙箱模式等级文件系统网络适用场景read-only可读取项目文件禁止写入允许出站代码审查、代码分析isolated仅可读当前项目仅允许白名单域名运行不可信脚本、生成测试数据air-gapped临时文件系统完全隔离处理高度敏感数据、合规审查四、敏感文件分类保护┌─────────────────────────────────────────────┐ │ 敏感文件保护矩阵 │ ├─────────────┬──────────┬────────────────────┤ │ 文件类型 │ 保护级别 │ 应对策略 │ ├─────────────┼──────────┼────────────────────┤ │ .env / .env.*│ 关键 │ 阻止读取不显示内容 │ │ *.pem / *.key│ 关键 │ 阻止读取 │ │ credentials.*│ 关键 │ 阻止读取 │ │ internal/ │ 高级 │ 警告 需确认 │ │ *.conf (含密钥)│ 高级 │ 扫描后脱敏 │ │ .git/config │ 中级 │ 只读提示风险 │ └─────────────┴──────────┴────────────────────┘实操步骤步骤1配置项目级安全规则创建.claude/settings.json{ security: { blockedCommands: [ rm -rf, rm -rf /, git push --force origin main, git push --force origin master, DROP DATABASE, DROP TABLE, :(){ :|: };:, mkfs, dd if ], confirmCommands: [ git reset --hard, git clean -fd, chmod 777, sudo, npm unpublish, docker system prune ], warnCommands: [ npm publish, docker rm -f, kubectl delete, terraform destroy, aws s3 rm ], fileAccessRules: { denyPatterns: [ .env, .env.*, *.pem, *.key, credentials.*, **/secrets/**, **/internal/** ], warnPatterns: [ *.conf, .git/config, **/passwords/** ] }, networkRules: { allowOutbound: true, blockedDomains: [ *.internal.corp.com, pastebin.com, termbin.com ] } }, sandbox: { defaultMode: read-only, escalationRequiresApproval: true }, audit: { enabled: true, logLevel: info, retentionDays: 90, redactSecrets: true } }步骤2启用/sandbox安全操作# 进入隔离沙箱模式默认 read-only cc --sandbox read-only # 在沙箱中进行代码审查AI 无法修改你的文件 ccread-only review the changes in src/auth/ # 进入完全隔离模式处理敏感数据 cc --sandbox air-gapped # 编译器、Linter 等受信工具可在沙箱内运行 ccair-gapped analyze this SQL file for injection vulnerabilities # 注意此模式下无法访问外部 API 文档Claude 只能基于自身知识分析 # 退出沙箱 ccair-gapped /sandbox exit步骤3环境变量安全管理# 方式1通过 .env 文件注入不纳入 git # .claude/.env (已在 .gitignore 中) ANTHROPIC_API_KEYsk-ant-xxx NODE_ENVdevelopment # 方式2系统环境变量推荐用于 CI export ANTHROPIC_API_KEYsk-ant-xxx # Claude Code v2.1.x 支持读取环境变量但不会在输出中暴露 # 方式3临时会话变量最安全 ANTHROPIC_API_KEYsk-ant-xxx cc --session one-shot ...关键规则.env文件必须在.gitignore中且在settings.json的denyPatterns中CI 环境的 Token 使用独立的、有限权限的 API Key定期轮换所有 API Key建议周期 ≤ 90 天步骤4配置审计日志# 查看当前审计日志位置 cc audit --status # 导出审计报告最近30天 cc audit --export --since 30 days ago --output audit-report.json # 审计报告包含的结构 # { # session_id: sess_abc123, # timestamp: 2026-05-26T10:30:00Z, # user: alicecompany.com, # commands: [...], # files_accessed: [...], # api_calls: 47, # tokens_used: 32500, # sandbox_mode: read-only, # warnings_triggered: [attempted access to .env file] # }定期导出审计日志并接入企业的 SIEM 系统如 Splunk、ELK# 周度审计脚本示例 #!/bin/bash WEEK$(date %Y-W%U) cc audit --export --since 7 days ago --output /var/log/claude/audit-$WEEK.json # 推送至 SIEM curl -X POST https://siem.company.com/ingest \ -H Authorization: Bearer $SIEM_TOKEN \ -d /var/log/claude/audit-$WEEK.json步骤5安全检查自动化# 在 pre-commit 中集成安全检查 # .git/hooks/pre-commit #!/bin/bash echo Running Claude Code security pre-check... cc check --mode security --staged-only if [ $? -ne 0 ]; then echo 安全扫描发现问题请修复后再提交 exit 1 fi避坑指南不要只靠在 settings.json 中的禁止规则就觉得安全了攻击者可能通过 Shell 转义、别名绕过简单的字符串匹配。安全的核心是纵深防御settings.json 只是第一层配合 sandbox 和环境隔离才能有效防护。沙箱模式不是万能的read-only沙箱仍然可能通过 Claude 的 API 调用泄露信息如代码内容被发送到 Anthropic 服务器。如果代码包含商业机密需要评估 API 数据传输的风险或考虑使用 air-gapped 模式下的本地模型如果企业基础设施支持。敏感文件保护要测试验证不要以为配置了 denyPatterns 就万事大吉。实际测试让 Claude 尝试读取.env文件看它是否被正确拦截。关注边界情况符号链接、路径穿透../../.env。审计日志的成本长期保留详细审计日志会占据大量存储空间。建议区分全量日志和摘要日志全量日志保留 30 天摘要日志保留 90 天以上。摘要日志只需记录关键事件命令执行、文件访问、权限变更。不要用个人 API Key 跑 CI 任务这是最常见的安全反模式。为每个 CI 任务创建独立的 API Key并在 Key 中打上用途标签方便成本和安全的归因分析。课后作业安全配置演练为你当前的项目创建或审查.claude/settings.json。根据实操步骤中的模板补充适合你项目的危险命令和文件保护规则。至少配置 10 条 blockedCommands 和 5 条 fileAccessRules。沙箱实战在 read-only 和 air-gapped 两种沙箱模式中各完成一次代码审查对比两种模式的体验差异。记录哪些操作在 air-gapped 下受限这是否影响了审查效果审计日志分析导出你或团队过去 30 天的 Claude Code 使用日志尝试回答以下问题日均 token 消耗哪些文件被访问次数最多是否有触发安全警告的事件基于分析结果写一份简短的优化建议。总结企业安全实践不是加一把锁而是造一座城堡——需要多层次、纵深化的防护体系。settings.json 提供了最灵活的配置层/sandbox提供了 OS 级的隔离能力审计日志则确保了事后追溯和合规报告的可能。三者配合才能在安全与效率之间找到企业级的平衡点。核心记忆点三道防线配置层 - 沙箱层 - 审计层危险命令三级分类硬阻止(L3)、需确认(L2)、静默警告(L1)沙箱三模式read-only、isolated、air-gapped敏感文件必须多重保护.gitignore settings.json sandbox审计日志是企业合规的必要条件下一节将进入团队协作工作流探讨多人团队中如何使用 Claude Code 协同开发。
27-企业安全实践
发布时间:2026/5/31 23:05:52
本节目标完成本节学习后你将能够配置.claude/settings.json安全规则精准控制 Claude Code 的权限边界识别并分类危险命令实施分级阻止策略警告/确认/禁止使用/sandbox命令实现 OS 级进程隔离Linux bubblewrap / macOS Seatbelt制定敏感文件保护策略防止 AI 访问.env、密钥、证书和内部文档建立环境变量安全管理与审计日志体系满足企业合规要求核心知识点一、安全配置的三道防线Claude Code 的企业安全通过三道防线实现纵深防御第一道防线配置层 (settings.json) └─ 权限白名单/黑名单、命令限制、文件访问控制 └─ 最轻量、最容易部署适合所有团队 第二道防线沙箱层 (/sandbox) └─ OS 级进程隔离文件系统和网络访问受限 └─ 适合高风险操作如处理生产数据、执行未知代码 第三道防线审计层 (audit logging) └─ 所有操作的完整记录和事后追溯 └─ 适合有合规要求的行业金融、医疗、政府二、危险命令分级体系危险等级命令类型策略示例L3 - 致命不可逆的破坏性操作硬阻止 (hard-block)rm -rf /,git push --force origin main,DROP DATABASEL2 - 危险可能造成损失的操作弹窗确认 (confirm)git reset --hard,chmod 777,sudoL1 - 警惕有风险但必要的操作静默警告 (warn)npm publish,docker rm,kubectl deleteL0 - 安全日常开发操作允许 (allow)git status,npm test,ls,cat三、/sandbox的三种隔离等级Claude Code v2.1.x 支持三级沙箱模式等级文件系统网络适用场景read-only可读取项目文件禁止写入允许出站代码审查、代码分析isolated仅可读当前项目仅允许白名单域名运行不可信脚本、生成测试数据air-gapped临时文件系统完全隔离处理高度敏感数据、合规审查四、敏感文件分类保护┌─────────────────────────────────────────────┐ │ 敏感文件保护矩阵 │ ├─────────────┬──────────┬────────────────────┤ │ 文件类型 │ 保护级别 │ 应对策略 │ ├─────────────┼──────────┼────────────────────┤ │ .env / .env.*│ 关键 │ 阻止读取不显示内容 │ │ *.pem / *.key│ 关键 │ 阻止读取 │ │ credentials.*│ 关键 │ 阻止读取 │ │ internal/ │ 高级 │ 警告 需确认 │ │ *.conf (含密钥)│ 高级 │ 扫描后脱敏 │ │ .git/config │ 中级 │ 只读提示风险 │ └─────────────┴──────────┴────────────────────┘实操步骤步骤1配置项目级安全规则创建.claude/settings.json{ security: { blockedCommands: [ rm -rf, rm -rf /, git push --force origin main, git push --force origin master, DROP DATABASE, DROP TABLE, :(){ :|: };:, mkfs, dd if ], confirmCommands: [ git reset --hard, git clean -fd, chmod 777, sudo, npm unpublish, docker system prune ], warnCommands: [ npm publish, docker rm -f, kubectl delete, terraform destroy, aws s3 rm ], fileAccessRules: { denyPatterns: [ .env, .env.*, *.pem, *.key, credentials.*, **/secrets/**, **/internal/** ], warnPatterns: [ *.conf, .git/config, **/passwords/** ] }, networkRules: { allowOutbound: true, blockedDomains: [ *.internal.corp.com, pastebin.com, termbin.com ] } }, sandbox: { defaultMode: read-only, escalationRequiresApproval: true }, audit: { enabled: true, logLevel: info, retentionDays: 90, redactSecrets: true } }步骤2启用/sandbox安全操作# 进入隔离沙箱模式默认 read-only cc --sandbox read-only # 在沙箱中进行代码审查AI 无法修改你的文件 ccread-only review the changes in src/auth/ # 进入完全隔离模式处理敏感数据 cc --sandbox air-gapped # 编译器、Linter 等受信工具可在沙箱内运行 ccair-gapped analyze this SQL file for injection vulnerabilities # 注意此模式下无法访问外部 API 文档Claude 只能基于自身知识分析 # 退出沙箱 ccair-gapped /sandbox exit步骤3环境变量安全管理# 方式1通过 .env 文件注入不纳入 git # .claude/.env (已在 .gitignore 中) ANTHROPIC_API_KEYsk-ant-xxx NODE_ENVdevelopment # 方式2系统环境变量推荐用于 CI export ANTHROPIC_API_KEYsk-ant-xxx # Claude Code v2.1.x 支持读取环境变量但不会在输出中暴露 # 方式3临时会话变量最安全 ANTHROPIC_API_KEYsk-ant-xxx cc --session one-shot ...关键规则.env文件必须在.gitignore中且在settings.json的denyPatterns中CI 环境的 Token 使用独立的、有限权限的 API Key定期轮换所有 API Key建议周期 ≤ 90 天步骤4配置审计日志# 查看当前审计日志位置 cc audit --status # 导出审计报告最近30天 cc audit --export --since 30 days ago --output audit-report.json # 审计报告包含的结构 # { # session_id: sess_abc123, # timestamp: 2026-05-26T10:30:00Z, # user: alicecompany.com, # commands: [...], # files_accessed: [...], # api_calls: 47, # tokens_used: 32500, # sandbox_mode: read-only, # warnings_triggered: [attempted access to .env file] # }定期导出审计日志并接入企业的 SIEM 系统如 Splunk、ELK# 周度审计脚本示例 #!/bin/bash WEEK$(date %Y-W%U) cc audit --export --since 7 days ago --output /var/log/claude/audit-$WEEK.json # 推送至 SIEM curl -X POST https://siem.company.com/ingest \ -H Authorization: Bearer $SIEM_TOKEN \ -d /var/log/claude/audit-$WEEK.json步骤5安全检查自动化# 在 pre-commit 中集成安全检查 # .git/hooks/pre-commit #!/bin/bash echo Running Claude Code security pre-check... cc check --mode security --staged-only if [ $? -ne 0 ]; then echo 安全扫描发现问题请修复后再提交 exit 1 fi避坑指南不要只靠在 settings.json 中的禁止规则就觉得安全了攻击者可能通过 Shell 转义、别名绕过简单的字符串匹配。安全的核心是纵深防御settings.json 只是第一层配合 sandbox 和环境隔离才能有效防护。沙箱模式不是万能的read-only沙箱仍然可能通过 Claude 的 API 调用泄露信息如代码内容被发送到 Anthropic 服务器。如果代码包含商业机密需要评估 API 数据传输的风险或考虑使用 air-gapped 模式下的本地模型如果企业基础设施支持。敏感文件保护要测试验证不要以为配置了 denyPatterns 就万事大吉。实际测试让 Claude 尝试读取.env文件看它是否被正确拦截。关注边界情况符号链接、路径穿透../../.env。审计日志的成本长期保留详细审计日志会占据大量存储空间。建议区分全量日志和摘要日志全量日志保留 30 天摘要日志保留 90 天以上。摘要日志只需记录关键事件命令执行、文件访问、权限变更。不要用个人 API Key 跑 CI 任务这是最常见的安全反模式。为每个 CI 任务创建独立的 API Key并在 Key 中打上用途标签方便成本和安全的归因分析。课后作业安全配置演练为你当前的项目创建或审查.claude/settings.json。根据实操步骤中的模板补充适合你项目的危险命令和文件保护规则。至少配置 10 条 blockedCommands 和 5 条 fileAccessRules。沙箱实战在 read-only 和 air-gapped 两种沙箱模式中各完成一次代码审查对比两种模式的体验差异。记录哪些操作在 air-gapped 下受限这是否影响了审查效果审计日志分析导出你或团队过去 30 天的 Claude Code 使用日志尝试回答以下问题日均 token 消耗哪些文件被访问次数最多是否有触发安全警告的事件基于分析结果写一份简短的优化建议。总结企业安全实践不是加一把锁而是造一座城堡——需要多层次、纵深化的防护体系。settings.json 提供了最灵活的配置层/sandbox提供了 OS 级的隔离能力审计日志则确保了事后追溯和合规报告的可能。三者配合才能在安全与效率之间找到企业级的平衡点。核心记忆点三道防线配置层 - 沙箱层 - 审计层危险命令三级分类硬阻止(L3)、需确认(L2)、静默警告(L1)沙箱三模式read-only、isolated、air-gapped敏感文件必须多重保护.gitignore settings.json sandbox审计日志是企业合规的必要条件下一节将进入团队协作工作流探讨多人团队中如何使用 Claude Code 协同开发。