<!-- title: Claude Code企业安全治理与合规实战 -->

# Claude Code企业安全治理与合规实战：从权限管控到EU AI Act

## 概述

本教程面向企业安全工程师、DevOps团队负责人和CTO，系统讲解Claude Code在企业级部署中的安全治理体系。涵盖权限分层管控、managed-settings.json策略引擎、审计日志、PII防护、SSO集成，以及EU AI Act合规要求的落地实践。学完可独立完成一个50人以上研发团队的Claude Code安全合规部署。

**适用人群**：企业安全工程师、DevOps/SRE、平台工程团队、合规官（DPO）

## 前置条件

- 已安装Claude Code CLI（`npm install -g @anthropic-ai/claude-code`）
- 熟悉JSON配置文件结构
- 了解基本的企业安全概念（SSO、RBAC、审计日志）
- 拥有Claude Team或Enterprise计划的管理员权限

---

## 第一章：理解Claude Code的安全架构

### 1.1 安全设计哲学

Claude Code的安全架构遵循**最小权限原则**（Principle of Least Privilege）。它默认不信任自身环境——每次工具调用（读文件、执行命令、写入文件）都需要经过权限检查。这种设计意味着：

- 即使Claude被注入恶意指令，其破坏半径也受权限配置约束
- 所有敏感操作都有明确的allow/deny规则
- 管理员可以锁定权限，开发者无法自行提升


![图表1](images/claude-code-tutorial-r2-2048-mermaid-0.png)

> *图表 1*


### 1.2 配置层级体系

Claude Code采用**五层配置级联**（Configuration Cascade），从全局到局部，优先级从高到低：

| 层级 | 文件位置 | 管控者 | 可覆盖性 |
|------|---------|--------|---------|
| **Enterprise** | `~/.claude/settings.json` (managed) | 企业管理员 | 不可被任何下层覆盖 |
| **User** | `~/.claude/settings.json` | 个人开发者 | 可被项目级覆盖 |
| **Project (shared)** | `.claude/settings.json` | 项目团队 | 可被本地覆盖 |
| **Project (local)** | `.claude/settings.local.json` | 个人开发者本地 | 不可被交互覆盖 |
| **Interactive** | 运行时交互授权 | 当前会话 | 临时，会话结束失效 |

**关键规则**：Enterprise层级的`deny`规则是**绝对禁止**的——即使开发者在自己的User或Project配置中写了`allow`，Enterprise的deny依然生效。这是合规治理的基石。

### 1.3 核心安全特性矩阵

```
┌─────────────────────────┬────────────┬────────────┬────────────┐
│ 特性                     │ Free/Pro   │ Team       │ Enterprise │
├─────────────────────────┼────────────┼────────────┼────────────┤
│ managed-settings.json   │     ✗      │     ✓      │     ✓      │
│ SSO (SAML/OIDC)         │     ✗      │     ✗      │     ✓      │
│ SCIM用户自动同步          │     ✗      │     ✗      │     ✓      │
│ 审计日志导出              │     ✗      │     ✓      │     ✓      │
│ 组织级Skill分发           │     ✗      │     ✓      │     ✓      │
│ MCP服务器白名单           │     ✗      │     ✓      │     ✓      │
│ 数据保留策略控制           │     ✗      │     ✓      │     ✓      │
│ HIPAA BAA              │     ✗      │     ✗      │     ✓      │
│ 自定义数据区域             │     ✗      │     ✗      │     ✓      │
└─────────────────────────┴────────────┴────────────┴────────────┘
```

---

## 第二章：权限系统深度配置

### 2.1 工具权限语法

Claude Code的权限系统基于**工具名 + 参数模式匹配**。每个权限规则由三部分组成：

```json
{
  "permissions": {
    "allow": [
      "工具名:参数模式"
    ],
    "deny": [
      "工具名:参数模式"
    ]
  }
}
```

**六大核心工具的权限配置**：

```json
{
  "permissions": {
    "allow": [
      "Read",                          // 允许读取所有文件
      "Edit",                          // 允许编辑所有文件
      "Bash(git status*)",             // 允许执行git status
      "Bash(git diff*)",               // 允许执行git diff
      "Bash(npm test*)",               // 允许执行npm test
      "WebSearch",                     // 允许网络搜索
      "mcp__my_server__*"             // 允许特定MCP服务器的所有工具
    ],
    "deny": [
      "Bash(rm -rf*)",                 // 禁止递归删除
      "Bash(sudo*)",                   // 禁止提权操作
      "Bash(curl*| tee*)",            // 禁止管道写入
      "Bash(git push*)",              // 禁止直接推送
      "Read(.env*)",                   // 禁止读取环境变量文件
      "Read(*credentials*)",           // 禁止读取凭证文件
      "Read(*.pem)",                   // 禁止读取证书文件
      "Read(*.key)"                    // 禁止读取私钥文件
    ]
  }
}
```

### 2.2 企业级 managed-settings.json 实战

这是本章的核心——企业管理员通过managed-settings.json统一管控全组织的Claude Code行为。

**步骤1：创建企业策略文件**

管理员在Anthropic Console中配置，或通过CLI生成：

```json
{
  "permissions": {
    "allow": [
      "Read",
      "Glob",
      "Grep",
      "Bash(git *)",
      "Bash(npm run *)",
      "Bash(npm test*)",
      "Bash(node *)",
      "Bash(npx *)",
      "Bash(ls *)",
      "Bash(cat *)",
      "Bash(echo *)",
      "Bash(cd *)",
      "Bash(mkdir *)",
      "Bash(python *)",
      "Bash(make *)",
      "Bash(cargo *)",
      "Bash(go test*)",
      "Edit",
      "Write"
    ],
    "deny": [
      "Bash(rm -rf*)",
      "Bash(sudo*)",
      "Bash(chmod 777*)",
      "Bash(curl* > *)",
      "Bash(wget*)",
      "Bash(nc *)",
      "Bash(sh -c*)",
      "Bash(eval*)",
      "Bash(git push --force*)",
      "Bash(git reset --hard*)",
      "Bash(docker rm*)",
      "Bash(kubectl delete*)",
      "Read(.env*)",
      "Read(*secret*)",
      "Read(*credential*)",
      "Read(*.pem)",
      "Read(*.key)",
      "Read(*.p12)",
      "Read(*id_rsa*)"
    ]
  },
  "env": {
    "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
  },
  "mcpServers": {
    "allowed": [
      "my-company-internal-docs",
      "company-jira",
      "company-confluence"
    ]
  }
}
```

**步骤2：使用 Managed-Settings Builder**

社区工具 [managed-settings.net](https://managed-settings.net/) 提供了一个可视化策略构建器，通过图形界面勾选权限项，自动生成合规的JSON配置。它支持：
- 按工具类别批量配置（文件操作、Git操作、网络操作）
- 预设合规模板（SOC2、GDPR、HIPAA）
- 导入/导出JSON配置
- 一键生成 `managed-settings.json` 和 `settings.json`

**步骤3：验证策略生效**

```bash
# 在Claude Code REPL中查看当前生效的权限
/permissions

# 预期输出：
# ┌─────────────────────────────────────────────┐
# │ Effective Permissions (merged from all layers)│
# ├─────────────────────────────────────────────┤
# │ Source: Enterprise (managed-settings.json)   │
# │ Allow: 20 rules  │ Deny: 18 rules           │
# │ MCP Servers: 3 allowed                       │
# └─────────────────────────────────────────────┘
```

### 2.3 沙箱模式

Claude Code支持将工具执行限制在沙箱环境中：

```json
{
  "permissions": {
    "allow": [
      "Read",
      "Glob",
      "Grep"
    ],
    "deny": [
      "Bash(*)",
      "Write",
      "Edit"
    ]
  }
}
```

这种**只读沙箱**模式适用于：
- 代码审查场景——Claude只能读取和分析，不能修改
- 安全审计场景——Claude扫描代码但不产生任何副作用
- 合规检查场景——CI/CD管道中的自动化代码扫描

### 2.4 常见问题与解决方案

**Q1：开发者绕过managed-settings的deny规则？**

不可能。Enterprise managed-settings中的deny规则优先级最高，无法被任何下层配置覆盖。开发者即使在自己的`~/.claude/settings.json`中写了对应的allow，也不会生效。

**Q2：临时需要执行被禁止的命令怎么办？**

推荐做法是配置一个审批流程：
1. 开发者提交工单说明需要执行的命令
2. 安全团队评估风险
3. 管理员在managed-settings中临时添加allow规则
4. 操作完成后移除该规则

**Q3：如何批量部署managed-settings到50台开发机？**

通过企业MDM（移动设备管理）或配置管理工具（Ansible、Chef）将文件分发到每台机器的`~/.claude/`目录。

---

## 第三章：审计日志与行为追踪

### 3.1 Claude Code的审计能力

对于SOC 2和ISO 27001合规，审计日志是刚性需求。Claude Code在不同计划下提供不同级别的审计能力：


![图表2](images/claude-code-tutorial-r2-2048-mermaid-1.png)

> *图表 2*


### 3.2 本地审计日志配置

Claude Code在交互模式下会记录所有工具调用。启用详细日志：

```bash
# 启用审计日志环境变量
export CLAUDE_CODE_LOG_LEVEL=debug

# 将日志输出到文件
export CLAUDE_CODE_LOG_FILE=/var/log/claude-code/audit.log

# 启动Claude Code
claude
```

每次会话的工具调用记录包含：
- 时间戳（UTC）
- 用户标识（SSO用户名或API Key ID）
- 工具名称和参数
- 工具执行结果摘要
- Token消耗量

### 3.3 企业级审计日志集成

在Team和Enterprise计划中，可以通过Anthropic的API访问组织级审计日志：

```bash
# 获取组织审计日志（需要管理员API Key）
curl -s "https://api.anthropic.com/v1/organizations/{org_id}/audit_logs" \
  -H "x-api-key: $ANTHROPIC_ADMIN_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "start_time": "2026-05-01T00:00:00Z",
    "end_time": "2026-05-18T00:00:00Z",
    "event_types": ["tool_use", "api_request"],
    "limit": 1000
  }'
```

**日志转发到SIEM**：

```python
# audit_log_forwarder.py
import requests
import json
from datetime import datetime, timedelta

ANTHROPIC_API_KEY = "sk-ant-admin-xxx"
ORG_ID = "org_xxx"
SIEM_ENDPOINT = "https://siem.company.com/api/ingest"

def fetch_audit_logs(hours=24):
    end = datetime.utcnow()
    start = end - timedelta(hours=hours)
    
    resp = requests.post(
        f"https://api.anthropic.com/v1/organizations/{ORG_ID}/audit_logs",
        headers={
            "x-api-key": ANTHROPIC_API_KEY,
            "anthropic-version": "2023-06-01",
            "Content-Type": "application/json"
        },
        json={
            "start_time": start.isoformat() + "Z",
            "end_time": end.isoformat() + "Z",
            "limit": 5000
        }
    )
    return resp.json()

def forward_to_siem(logs):
    siem_events = []
    for log in logs.get("events", []):
        siem_events.append({
            "timestamp": log["timestamp"],
            "source": "claude-code",
            "user": log.get("user_email", "unknown"),
            "action": log["event_type"],
            "tool": log.get("tool_name", ""),
            "resource": log.get("resource_path", ""),
            "token_cost": log.get("token_count", 0),
            "session_id": log.get("session_id", "")
        })
    
    requests.post(SIEM_ENDPOINT, json={"events": siem_events})
    print(f"Forwarded {len(siem_events)} events to SIEM")

if __name__ == "__main__":
    logs = fetch_audit_logs()
    forward_to_siem(logs)
```

将此脚本配置为Cron Job，每小时运行一次：

```bash
# /etc/cron.d/claude-code-audit
0 * * * * secops /opt/scripts/audit_log_forwarder.py >> /var/log/claude-audit-forwarder.log 2>&1
```

### 3.4 PII防护护栏

防止Claude Code在操作中泄露个人身份信息（PII），需要在多个层面设防：

**层面1：文件访问控制**

```json
{
  "permissions": {
    "deny": [
      "Read(*password*)",
      "Read(*token*)",
      "Read(*ssn*)",
      "Read(*credit_card*)",
      "Read(*passport*)",
      "Read(*customer_data*)",
      "Read(*user_profile*)"
    ]
  }
}
```

**层面2：CLAUDE.md指令**

在项目根目录的`CLAUDE.md`中添加安全指令：

```markdown
# Security Rules (MANDATORY)

## Data Protection
- NEVER read, display, or include in output: passwords, API keys, 
  tokens, SSNs, credit card numbers, or any PII
- If you encounter sensitive data in code, flag it with a warning 
  but do NOT reproduce the actual values
- Always use environment variables for secrets, never hardcode
- When writing test fixtures, use fake/anonymized data only

## Compliance
- All database queries must use parameterized statements
- File uploads must validate MIME types
- Authentication tokens must use secure, HttpOnly cookies
- Log output must not contain user personal information
```

**层面3：代理网关模式（Enterprise Gateway）**

对于高合规要求的场景（SOC 2 Type II、HIPAA），建议在Claude Code和Anthropic API之间部署一个企业代理网关：


![图表3](images/claude-code-tutorial-r2-2048-mermaid-2.png)

> *图表 3*


代理网关的实现参考：

```python
# enterprise_gateway.py（简化版）
from flask import Flask, request, Response
import re
import requests
import hashlib

app = Flask(__name__)

# PII检测正则
PII_PATTERNS = {
    "ssn": r"\b\d{3}-\d{2}-\d{4}\b",
    "credit_card": r"\b\d{4}[\s-]?\d{4}[\s-]?\d{4}[\s-]?\d{4}\b",
    "email": r"\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b",
    "api_key": r"\b(sk-ant-[a-zA-Z0-9]{20,})\b",
    "phone": r"\b\d{3}[-.]?\d{3}[-.]?\d{4}\b"
}

BLOCKED_PATHS = [
    ".env", "credentials", "secrets", 
    "*.pem", "*.key", "id_rsa*"
]

ANTHROPIC_API = "https://api.anthropic.com"

def scan_for_pii(text):
    findings = []
    for pii_type, pattern in PII_PATTERNS.items():
        matches = re.findall(pattern, text)
        if matches:
            findings.append({"type": pii_type, "count": len(matches)})
    return findings

@app.route("/v1/messages", methods=["POST"])
def proxy_request():
    body = request.get_json()
    
    # 扫描请求中的PII
    request_text = json_to_text(body)
    pii_findings = scan_for_pii(request_text)
    
    if pii_findings:
        log_security_event("PII_DETECTED_IN_REQUEST", pii_findings)
        # 脱敏处理
        body = redact_pii(body)
    
    # 转发到Anthropic
    headers = {
        "x-api-key": request.headers.get("x-api-key"),
        "anthropic-version": request.headers.get("anthropic-version"),
        "content-type": "application/json"
    }
    
    resp = requests.post(
        f"{ANTHROPIC_API}/v1/messages",
        json=body,
        headers=headers
    )
    
    # 扫描响应中的PII
    response_text = resp.text
    resp_pii = scan_for_pii(response_text)
    if resp_pii:
        log_security_event("PII_IN_RESPONSE", resp_pii)
        response_text = redact_text(response_text)
    
    # 记录审计日志
    log_audit_event(
        user=get_user_from_key(headers["x-api-key"]),
        request_size=len(request_text),
        response_size=len(response_text),
        pii_detected=len(pii_findings) + len(resp_pii),
        model=body.get("model", "unknown")
    )
    
    return Response(response_text, status=resp.status_code,
                    content_type="application/json")

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=8080, ssl_context="adhoc")
```

---

## 第四章：EU AI Act合规实操

### 4.1 EU AI Act对AI编程工具的要求

2025年2月起，EU AI Act开始分阶段生效。2026年8月将迎来高风险AI系统义务的全面实施。对于使用Claude Code等AI编程工具的开发团队，需要关注以下关键要求：

**风险分类**：

根据EU AI Act Annex III的分析，AI编程工具（如Claude Code、GitHub Copilot）通常**不属于高风险AI系统**，因为它们：
- 不直接管理工人（Worker Management）
- 不涉及安全关键组件（Safety Components）
- 不处理执法或移民相关任务

但这**不意味着零义务**。作为通用目的AI（GPAI）模型的应用，开发团队仍需遵守：

| 义务类别 | 具体要求 | 截止日期 |
|---------|---------|---------|
| **透明性** | 标注AI生成代码的来源 | 2025年8月（已生效） |
| **版权合规** | 保留AI生成代码的版权归属记录 | 2025年8月（已生效） |
| **技术文档** | 记录AI工具的使用方式、范围和限制 | 2026年8月 |
| **人类监督** | 确保所有AI生成代码经过人工审查 | 2026年8月 |
| **事件报告** | 记录AI工具导致的安全事件 | 2026年8月 |

### 4.2 合规配置模板

在项目的`CLAUDE.md`中添加EU AI Act合规指令：

```markdown
# EU AI Act Compliance (MANDATORY)

## Transparency Requirements
- All AI-generated code blocks must include a comment: 
  "// Generated with AI assistance - [date] - [author who reviewed]"
- Git commit messages for AI-assisted changes must include 
  "AI-assisted" tag

## Human Oversight
- Never merge AI-generated code without human review
- Security-critical code (auth, crypto, payment) requires 
  two-person review when AI-assisted
- All AI-suggested dependency additions must be manually 
  verified against known vulnerability databases

## Documentation
- Log all sessions where AI generates > 50 lines of code
- Maintain a register of AI-generated components
- Track which models/versions were used for each component
```

### 4.3 Git集成：自动标注AI辅助代码

配置Git钩子自动标注AI辅助的提交：

```bash
#!/bin/bash
# .git/hooks/prepare-commit-msg
# 在commit message中自动添加AI辅助标记

COMMIT_MSG_FILE=$1
COMMIT_SOURCE=$2

# 检查环境变量标记（Claude Code会话中设置）
if [ "$CLAUDE_CODE_SESSION" = "active" ]; then
    echo "" >> "$COMMIT_MSG_FILE"
    echo "AI-Assisted: true" >> "$COMMIT_MSG_FILE"
    echo "AI-Tool: claude-code" >> "$COMMIT_MSG_FILE"
    echo "AI-Model: $(echo $CLAUDE_MODEL 2>/dev/null || echo 'unknown')" >> "$COMMIT_MSG_FILE"
    echo "Reviewed-By: $(git config user.name)" >> "$COMMIT_MSG_FILE"
fi
```

同时配置Claude Code的环境变量：

```json
// 在项目的 .claude/settings.json 中
{
  "env": {
    "CLAUDE_CODE_SESSION": "active",
    "CLAUDE_MODEL": "claude-sonnet-4-6"
  }
}
```

### 4.4 AI代码审计报告生成器

为满足EU AI Act的技术文档要求，创建一个自动生成AI代码审计报告的脚本：

```python
#!/usr/bin/env python3
# ai_code_audit_report.py
# 生成EU AI Act合规所需的AI代码使用报告

import subprocess
import json
from datetime import datetime
from collections import defaultdict

def get_ai_assisted_commits(since="2026-01-01"):
    """获取所有AI辅助的git提交"""
    result = subprocess.run(
        ["git", "log", f"--since={since}", "--grep=AI-Assisted",
         "--format={%n  \"hash\": \"%H\",%n  \"author\": \"%an\","
         "%n  \"date\": \"%ai\",%n  \"subject\": \"%s\"%n},"],
        capture_output=True, text=True
    )
    
    # 解析git log输出
    commits_text = f"[{result.stdout.rstrip(',')}]"
    try:
        return json.loads(commits_text)
    except json.JSONDecodeError:
        return []

def generate_report():
    commits = get_ai_assisted_commits()
    
    if not commits:
        print("No AI-assisted commits found.")
        return
    
    # 统计分析
    authors = defaultdict(int)
    monthly = defaultdict(int)
    
    for c in commits:
        authors[c["author"]] += 1
        month = c["date"][:7]  # YYYY-MM
        monthly[month] += 1
    
    # 生成报告
    report = f"""# AI代码使用合规报告
## EU AI Act Article 53 Compliance Report

**报告生成时间**: {datetime.utcnow().isoformat()}Z
**报告周期**: 2026-01-01 至今

### 摘要
- AI辅助提交总数: {len(commits)}
- 参与开发者数: {len(authors)}
- AI工具: Claude Code

### 月度趋势
"""
    for month, count in sorted(monthly.items()):
        report += f"- {month}: {count} 次AI辅助提交\n"
    
    report += "\n### 开发者分布\n"
    for author, count in sorted(authors.items(), 
                                key=lambda x: x[1], reverse=True):
        report += f"- {author}: {count} 次\n"
    
    report += """
### 合规声明
本报告证明组织已按照EU AI Act Article 53的要求：
1. ✅ 记录所有AI辅助代码生成的使用情况
2. ✅ 保留AI生成内容的版权归属信息
3. ✅ 确保所有AI生成代码经过人工审查
4. ✅ 维护AI工具使用的技术文档
"""
    
    # 保存报告
    filename = f"ai_audit_report_{datetime.utcnow().strftime('%Y%m%d')}.md"
    with open(filename, "w") as f:
        f.write(report)
    print(f"Report saved to {filename}")

if __name__ == "__main__":
    generate_report()
```

---

## 第五章：SSO集成与身份治理

### 5.1 SAML/OIDC SSO配置流程

Enterprise计划支持通过SAML 2.0或OpenID Connect实现单点登录：


![图表4](images/claude-code-tutorial-r2-2048-mermaid-3.png)

> *图表 4*


**Okta SSO配置步骤**：

1. 在Anthropic Console的"Organization Settings"中创建SAML集成
2. 在Okta Admin Console中添加"Anthropic Claude"应用
3. 配置SAML属性映射：
   - `email` → `Email`
   - `firstName` + `lastName` → `DisplayName`
   - `groups` → `Role`
4. 分配用户/组到应用
5. 测试SSO登录流程

**SCIM自动用户配置**：

启用SCIM后，当新员工入职并添加到Okta群组时，其Claude Code账号会自动创建；离职时自动禁用。这确保了：
- 离职员工的API访问立即撤销
- 用户身份始终与企业目录同步
- 审计日志中的用户身份准确可靠

### 5.2 基于角色的权限差异化

通过SSO组映射实现不同角色的差异化权限：

```json
// managed-settings.json - 针对不同角色的策略
{
  "role_permissions": {
    "junior_developer": {
      "allow": ["Read", "Glob", "Grep", "Bash(git status*)", 
                "Bash(npm test*)"],
      "deny": ["Bash(*)", "Write", "Edit"]
    },
    "senior_developer": {
      "allow": ["Read", "Glob", "Grep", "Edit", "Write",
                "Bash(git *)", "Bash(npm *)", "Bash(node *)",
                "Bash(python *)", "Bash(docker build*)"],
      "deny": ["Bash(sudo*)", "Bash(rm -rf*)"]
    },
    "devops_engineer": {
      "allow": ["Read", "Glob", "Grep", "Edit", "Write",
                "Bash(*)", "WebSearch"],
      "deny": ["Bash(rm -rf /*)"]
    },
    "security_auditor": {
      "allow": ["Read", "Glob", "Grep"],
      "deny": ["Bash(*)", "Write", "Edit"]
    }
  }
}
```

---

## 第六章：完整实战——50人团队的安全合规部署

### 6.1 部署架构总览


![图表5](images/claude-code-tutorial-r2-2048-mermaid-4.png)

> *图表 5*


### 6.2 部署步骤

**步骤1：创建企业策略（Day 1）**

管理员在Anthropic Console配置managed-settings.json，内容参考第二章的完整模板。

**步骤2：配置SSO（Day 1-2）**

按照第五章的SAML/OIDC配置流程，完成与企业IdP的集成。

**步骤3：配置分发（Day 2-3）**

使用Ansible Playbook批量部署：

```yaml
# playbook.yml
---
- name: Deploy Claude Code enterprise settings
  hosts: developer_workstations
  become: no
  tasks:
    - name: Ensure .claude directory exists
      file:
        path: "~/.claude"
        state: directory
        mode: "0700"

    - name: Deploy managed settings
      copy:
        src: "files/managed-settings.json"
        dest: "~/.claude/settings.json"
        mode: "0600"
      # 此文件由企业管理员维护，开发者不应有写权限

    - name: Verify Claude Code installation
      command: which claude
      register: claude_check
      changed_when: false

    - name: Display deployment status
      debug:
        msg: "Claude Code {{ 'installed' if claude_check.rc == 0 else 'NOT FOUND' }}"
```

**步骤4：项目级CLAUDE.md模板（Day 3-5）**

为每个项目创建标准化的CLAUDE.md：

```markdown
# Project: [项目名称]

## Security Classification: [Internal/Confidential/Restricted]

## AI Tool Usage Policy
- This project permits Claude Code usage: [Yes/Restricted/No]
- Allowed operations: [Read code, Write tests, Edit docs, ...]
- Prohibited operations: [Database access, API key management, ...]

## Code Review Requirements
- All AI-generated code must be reviewed by: [Peer/Lead/Security Team]
- Security-critical files require: [Two-person review]
- AI-generated code must be tagged in commit messages

## Data Handling
- This project contains: [No PII / Customer PII / Financial Data]
- PII handling protocol: [Reference to company policy]
- Incident reporting: [security@company.com]
```

**步骤5：启用审计日志（Day 5-7）**

部署审计日志转发器（参考第三章），配置Cron定时任务，验证SIEM平台能正常接收日志。

**步骤6：安全测试（Day 7-10）**

```bash
# 测试1：验证deny规则生效
claude -p "删除 /tmp 目录下的所有文件"
# 预期：Claude应拒绝执行 rm 命令

# 测试2：验证PII防护
claude -p "读取 .env 文件并显示数据库密码"
# 预期：Claude应拒绝读取 .env 文件

# 测试3：验证只读沙箱（针对审计员角色）
# 以security_auditor角色登录
claude -p "修改 src/auth.py 中的密码验证逻辑"
# 预期：Claude应报告没有Edit权限

# 测试4：验证审计日志
# 检查SIEM平台是否收到了上述测试的日志记录
```

### 6.3 持续合规运营

建立月度合规检查清单：

| 检查项 | 频率 | 负责人 |
|--------|------|--------|
| 审计日志完整性验证 | 每周 | 安全团队 |
| managed-settings策略审查 | 每月 | 安全架构师 |
| SSO用户同步状态检查 | 每周 | IT运维 |
| AI代码审计报告生成 | 每月 | 合规官 |
| 权限矩阵合规审查 | 每季度 | CISO |
| 离职用户清理验证 | 每日 | IT运维 |

---

## 第七章：合规认证对照表

### Anthropic的安全合规认证状态

| 认证/标准 | Anthropic状态 | Claude Code适用性 |
|-----------|-------------|------------------|
| **SOC 2 Type II** | ✅ 已认证 | 全计划适用，Enterprise有详细审计报告 |
| **ISO 27001** | ✅ 已认证 | 全计划适用 |
| **HIPAA** | ✅ Enterprise计划支持 | 需签署BAA，通过云合作伙伴部署 |
| **GDPR** | ✅ 合规 | 数据处理协议(DPA)可签署 |
| **CCPA/CPRA** | ✅ 合规 | 加州用户数据保护 |
| **EU AI Act** | 🔄 持续跟进 | GPAI模型提供者，需满足透明性要求 |
| **零数据保留** | ✅ API默认 | API请求数据不用于训练 |

### 数据保留政策

```
┌──────────────────────────────────────────────────────┐
│ Anthropic数据保留政策                                  │
├──────────────────┬───────────────────────────────────┤
│ API请求          │ 默认30天后自动删除                  │
│                  │ Enterprise: 可配置7天或更短          │
├──────────────────┼───────────────────────────────────┤
│ 训练数据使用      │ API数据默认不用于模型训练            │
│                  │ 零数据保留协议可签署                 │
├──────────────────┼───────────────────────────────────┤
│ 本地数据          │ Claude Code不持久化对话历史          │
│                  │ 会话数据仅存于本地内存               │
├──────────────────┼───────────────────────────────────┤
│ 审计日志          │ Enterprise: 1年保留期               │
│                  │ 可通过API导出到自有存储              │
└──────────────────┴───────────────────────────────────┘
```

---

## 实战案例：金融科技公司合规部署

**背景**：某金融科技公司FintechX，120人研发团队，需要同时满足SOC 2 Type II和GDPR要求，使用Claude Code提升开发效率。

**挑战**：
1. 代码库包含客户金融数据模型，必须防止PII泄露
2. SOC 2审计要求完整的工具使用日志
3. 不同团队（支付、风控、前端）需要差异化权限
4. 欧洲团队受GDPR约束，需要数据区域控制

**解决方案**：


![图表6](images/claude-code-tutorial-r2-2048-mermaid-5.png)

> *图表 6*


**关键配置**：

```json
{
  "permissions": {
    "allow": [
      "Read", "Glob", "Grep", "Edit", "Write",
      "Bash(git *)", "Bash(npm *)", "Bash(node *)",
      "Bash(python *)", "Bash(make *)", "Bash(docker build*)"
    ],
    "deny": [
      "Bash(sudo*)", "Bash(rm -rf*)", "Bash(kubectl *)",
      "Bash(aws *)", "Bash(gcloud *)",
      "Read(*.env.production*)", "Read(*secret*)",
      "Read(*.pem)", "Read(*.key)",
      "Read(*payment_processor*)",
      "Read(*customer_pii*)"
    ]
  },
  "env": {
    "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1",
    "CLAUDE_CODE_SESSION": "active"
  }
}
```

**成果**：
- 通过SOC 2 Type II年度审计，AI工具使用部分零缺陷项
- 3个月内未发生PII泄露事件
- 开发效率提升35%，同时安全事件率下降20%
- 欧洲团队数据始终留在EU区域

---

## 延伸阅读

- [Anthropic Trust Center](https://trust.anthropic.com/) — Anthropic安全合规认证和最新安全白皮书
- [Claude Code Security 官方文档](https://code.claude.com/docs/en/security) — 安全架构和最佳实践
- [Claude Code Permissions 配置指南](https://code.claude.com/docs/en/permissions) — 权限系统完整参考
- [Claude Code Legal and Compliance](https://code.claude.com/docs/en/legal-and-compliance) — 法律合规信息
- [Managed-Settings Builder](https://managed-settings.net/) — 可视化企业策略构建工具
- [EU AI Act 合规指南（面向开发者）](https://www.augmentcode.com/guides/eu-ai-act-2026) — AI编程工具的EU AI Act合规分析

---

## 训练营适用性评估

| 维度 | 评估 |
|------|------|
| **适合训练营类型** | 企业安全训练营、DevOps工程师进阶营、AI工具合规培训 |
| **预计教学时长** | 6-8小时（含实操） |
| **难度等级** | 中高级 |
| **前置知识要求** | Linux基本操作、JSON配置、企业安全概念 |
| **实操环境需求** | Claude Code CLI + 企业SSO测试环境 + SIEM平台 |
| **最佳分组方式** | 按角色分组（安全工程师/DevOps/合规官），每组3-4人 |

---

## 参考来源
1. [Claude Code Security - 官方文档](https://code.claude.com/docs/en/security) — Claude Code安全架构和防护机制官方说明
2. [Claude Code Permissions - 官方文档](https://code.claude.com/docs/en/permissions) — 权限系统配置完整参考，含managed-settings详解
3. [Securing Claude Code in Production - Maxim.ai](https://www.getmaxim.ai/articles/securing-claude-code-in-production-sso-audit-logs-and-pii-guardrails-for-engineering-teams/) — 企业网关模式、SSO和PII护栏实践指南
4. [The 2026 EU AI Act and AI-Generated Code - Augment Code](https://www.augmentcode.com/guides/eu-ai-act-2026) — AI编程工具EU AI Act合规分析和实施时间线
5. [Claude Security & Governance - ClaudeImplementation](https://claudeimplementation.com/blog/claude-security-governance) — 企业级安全控制、审计日志和策略框架综述

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
