--- title: "Claude Code — Enterprise Governance Diagrams" description: "Governance risk tiers, MCP approval workflow, guardrail tier selection" tags: [security, enterprise, governance, compliance, mcp] --- # Enterprise Governance Org-level patterns for teams deploying Claude Code at scale — usage tiers, MCP approval workflows, and guardrail configurations. > **Audience**: Tech leads, engineering managers, security officers. For individual dev security see [Security & Production](./08-security-and-production.md). --- ### Governance Risk Tiers — What to Control and When Not everything needs heavy governance. This decision tree routes your context to the right control level based on actual risk — from personal dev workflow (minimal) to regulated environments (full compliance stack). ```mermaid flowchart TD A([What are you governing?]) --> B{Usage context?} B --> P["Personal dev workflow
Local, throwaway code
One developer only"] B --> T["Team codebase
Shared repo, not production
5–20 developers"] B --> PR["Production system
Customer-facing, real data
Any team size"] B --> REG["Regulated environment
HIPAA, SOC2, PCI, finance
Legal/compliance obligations"] P --> TIER1(["Tier 1: Starter
CLAUDE.md guidelines
+ dangerous-actions-blocker hook
10 min setup"]) T --> TIER2(["Tier 2: Standard
Shared settings.json + MCP registry
+ PR gates + audit log
~2 hours setup"]) PR --> TIER3(["Tier 3: Strict
Full permission deny list
+ approval workflow
+ session audit trail"]) REG --> TIER4(["Tier 4: Regulated
All of above
+ compliance audit trail
+ SOC2/ISO27001 controls"]) NOTE["You CAN control: MCP servers, tool permissions,
CLAUDE.md content, hooks, CI/CD gates
You CANNOT control: personal ~/.claude settings,
models on personal API keys, personal projects"] -.-> B style A fill:#F5E6D3,color:#333 style B fill:#E87E2F,color:#fff style P fill:#B8B8B8,color:#333 style T fill:#6DB3F2,color:#fff style PR fill:#E87E2F,color:#fff style REG fill:#E85D5D,color:#fff style TIER1 fill:#7BC47F,color:#333 style TIER2 fill:#7BC47F,color:#333 style TIER3 fill:#E87E2F,color:#fff style TIER4 fill:#E85D5D,color:#fff style NOTE fill:#F5E6D3,color:#333 click A href "https://github.com/FlorianBruniaux/claude-code-ultimate-guide/blob/main/guide/security/enterprise-governance.md#1-local-vs-shared-the-governance-split" "What are you governing?" click B href "https://github.com/FlorianBruniaux/claude-code-ultimate-guide/blob/main/guide/security/enterprise-governance.md#1-local-vs-shared-the-governance-split" "Usage context?" click P href "https://github.com/FlorianBruniaux/claude-code-ultimate-guide/blob/main/guide/security/enterprise-governance.md#4-guardrail-tiers" "Personal dev workflow" click T href "https://github.com/FlorianBruniaux/claude-code-ultimate-guide/blob/main/guide/security/enterprise-governance.md#4-guardrail-tiers" "Team codebase" click PR href "https://github.com/FlorianBruniaux/claude-code-ultimate-guide/blob/main/guide/security/enterprise-governance.md#4-guardrail-tiers" "Production system" click REG href "https://github.com/FlorianBruniaux/claude-code-ultimate-guide/blob/main/guide/security/enterprise-governance.md#4-guardrail-tiers" "Regulated environment" click TIER1 href "https://github.com/FlorianBruniaux/claude-code-ultimate-guide/blob/main/guide/security/enterprise-governance.md#4-guardrail-tiers" "Tier 1: Starter" click TIER2 href "https://github.com/FlorianBruniaux/claude-code-ultimate-guide/blob/main/guide/security/enterprise-governance.md#4-guardrail-tiers" "Tier 2: Standard" click TIER3 href "https://github.com/FlorianBruniaux/claude-code-ultimate-guide/blob/main/guide/security/enterprise-governance.md#4-guardrail-tiers" "Tier 3: Strict" click TIER4 href "https://github.com/FlorianBruniaux/claude-code-ultimate-guide/blob/main/guide/security/enterprise-governance.md#4-guardrail-tiers" "Tier 4: Regulated" click NOTE href "https://github.com/FlorianBruniaux/claude-code-ultimate-guide/blob/main/guide/security/enterprise-governance.md#12-what-you-can-and-cant-control" "What you can/cannot control" ```
ASCII version ``` Usage context? ├─ Personal dev workflow → Tier 1: Starter (CLAUDE.md + basic hooks, 10 min) ├─ Team codebase → Tier 2: Standard (shared settings.json + MCP registry + PR gates) ├─ Production system → Tier 3: Strict (full deny list + approval + audit trail) └─ Regulated (HIPAA/SOC2/PCI) → Tier 4: Regulated (all above + compliance audit trail) You CAN control: settings.json in repo, CLAUDE.md, hooks, CI/CD gates, MCP registry You CANNOT control: personal ~/.claude, personal API key model choice, personal projects ```
> **Source**: [Enterprise Governance](../security/enterprise-governance.md) — §1 Governance Split, §4 Guardrail Tiers --- ### MCP Governance Workflow Individual MCP vetting takes 5 minutes. Organizational MCP governance is the 5-step pipeline that ensures approved servers stay approved, versions are pinned, and risk is classified before deployment. ```mermaid sequenceDiagram participant DEV as Developer participant TL as Tech Lead + Security participant REG as MCP Registry
.claude/mcp-registry.yaml participant REPO as Shared Config Repo
settings.json DEV->>TL: Submit MCP request
Name, source URL, use case, data scope TL->>TL: 5-min security audit
Stars >50? Recent commits?
CVEs? Dangerous flags? TL->>TL: Classify risk: LOW / MEDIUM / HIGH alt LOW risk TL->>REG: Approve — add to registry
Pin version, set 6-month expiry else MEDIUM or HIGH risk TL->>TL: 2-week sandbox trial
+ Security team sign-off TL->>REG: Approve with restrictions
Shorter expiry (3 months) else HIGH risk (unacceptable) TL->>DEV: Denied — document reason in registry end REG->>REPO: Deploy via committed settings.json
No local overrides for approved MCPs Note over REPO: Version-pinned, team-wide, auditable REPO->>TL: Monitor every 30 days
Patch bumps: auto re-approve
Minor+ bumps: manual re-review
Quarterly: full registry audit ```
ASCII version ``` Developer submits MCP request (name, source, use case, data scope) │ Tech Lead: 5-min security audit (stars, commits, CVEs, flags) │ Classify risk: LOW / MEDIUM / HIGH │ ┌───┴────────────────────────────┐ LOW MED/HIGH Approve immediately 2-week sandbox trial + Security team sign-off │ Add to registry (.claude/mcp-registry.yaml) - Pin exact version - Set expiry (6 months for LOW, 3 months for MED) - Document approved scope │ Deploy via committed settings.json (no local overrides) │ Monitor every 30 days: - Check security advisories - Patch bumps: auto | Minor+ bumps: manual re-review - Quarterly: full registry audit ```
> **Source**: [MCP Governance Workflow](../security/enterprise-governance.md#3-mcp-governance-workflow) — §3.1 Approval Workflow --- ### Data Classification & Claude Code Access Rules Data classification determines what Claude Code is allowed to read and process. Getting this wrong is the highest-impact governance failure. Four levels, clear rules, no exceptions for RESTRICTED. ```mermaid flowchart LR subgraph PUBLIC["🟢 PUBLIC"] PU1["Open source code
Public documentation
Shared blog content"] PU2(["Allowed — no restrictions"]) end subgraph INTERNAL["🔵 INTERNAL"] IN1["Internal tools
Non-sensitive code
Team documentation"] IN2(["Allowed — standard config"]) end subgraph CONFIDENTIAL["🟠 CONFIDENTIAL"] CO1["Internal business secrets
Non-regulated IP
Architecture docs"] CO2(["Enterprise plan only
Zero Data Retention required"]) end subgraph RESTRICTED["🔴 RESTRICTED"] RE1["Customer PII
PCI card data / PHI
Credentials & API keys"] RE2(["NEVER in AI context
Block via permissions.deny
No exceptions"]) end PU1 --> PU2 IN1 --> IN2 CO1 --> CO2 RE1 --> RE2 style PU2 fill:#7BC47F,color:#333 style IN2 fill:#6DB3F2,color:#fff style CO2 fill:#E87E2F,color:#fff style RE2 fill:#E85D5D,color:#fff style RE1 fill:#E85D5D,color:#fff click PU1 href "https://github.com/FlorianBruniaux/claude-code-ultimate-guide/blob/main/guide/security/enterprise-governance.md#2-ai-usage-charter" "PUBLIC data" click IN1 href "https://github.com/FlorianBruniaux/claude-code-ultimate-guide/blob/main/guide/security/enterprise-governance.md#2-ai-usage-charter" "INTERNAL data" click CO1 href "https://github.com/FlorianBruniaux/claude-code-ultimate-guide/blob/main/guide/security/enterprise-governance.md#2-ai-usage-charter" "CONFIDENTIAL data" click RE1 href "https://github.com/FlorianBruniaux/claude-code-ultimate-guide/blob/main/guide/security/enterprise-governance.md#2-ai-usage-charter" "RESTRICTED data" click PU2 href "https://github.com/FlorianBruniaux/claude-code-ultimate-guide/blob/main/guide/security/enterprise-governance.md#2-ai-usage-charter" "PUBLIC: allowed" click IN2 href "https://github.com/FlorianBruniaux/claude-code-ultimate-guide/blob/main/guide/security/enterprise-governance.md#2-ai-usage-charter" "INTERNAL: standard config" click CO2 href "https://github.com/FlorianBruniaux/claude-code-ultimate-guide/blob/main/guide/security/enterprise-governance.md#2-ai-usage-charter" "CONFIDENTIAL: Enterprise only" click RE2 href "https://github.com/FlorianBruniaux/claude-code-ultimate-guide/blob/main/guide/security/enterprise-governance.md#2-ai-usage-charter" "RESTRICTED: never in AI context" ```
ASCII version ``` PUBLIC → Allowed, no restrictions INTERNAL → Allowed, standard config CONFIDENTIAL → Enterprise plan only (Zero Data Retention required) RESTRICTED → NEVER in AI context (PII, PCI, PHI, credentials) Block via: permissions.deny Read(.env, *.key, *.pem, secrets/**) Hard rule: RESTRICTED data never enters a context window. Not in prompts, not in files Claude reads, not as examples. ```
> **Source**: [AI Usage Charter](../security/enterprise-governance.md#2-ai-usage-charter) — §2.1 Data Classification