摘要: 企业要让 Coding Agent 的数据真正“不出境”,不能只选择一个标注“企业版”的模型,也不能只打开“不用于训练”开关。源代码会经过 Indexing、Embedding、Telemetry 和 Model API 四条独立链路,每条链路都可能出现跨境处理、缓存、日志留存或第三方转发。本文给出一套可落地的完整方案:在指定地域内完成代码扫描和向量化,通过企业 LLM Gateway 统一路由区域模型端点,把遥测限定为脱敏元数据,并以网络出口、身份、密钥、审计和回滚策略闭环。适合企业 AI 团队、研发平台、DevSecOps、安全与合规负责人,用于设计、采购或整改 Coding Agent 平台。
核心结论
企业 Coding Agent 数据不出境必须同时治理 Indexing、Embedding、Telemetry、Model API 四层,并由网络层证明没有绕行路径。只解决其中一层,仍可能由向量服务、错误日志、模型路由或云端 Agent 把代码带到境外。
- 首选区域内闭环,而不是仅靠合同承诺。 索引、向量库、网关、模型端点、日志和备份都应固定在批准地域,并通过出口白名单验证。
- “不用于训练”“ZDR”“数据驻留”不是同一概念。 不训练限制用途,ZDR限制部分服务端留存,数据驻留限制处理或存储地域;三者需要组合核验。
- Embedding 必须按敏感数据管理。 即便不保存原始源码,向量仍与仓库、路径、权限和语义关联,应保持租户隔离、加密、删除和生命周期控制。
- 遥测是最容易遗漏的越境通道。 错误栈、命令输出、文件路径、Prompt、会话与支持包必须分类;默认只允许无内容指标进入区域内可观测平台。
- 企业网关是控制面,不是魔法边界。 它能统一密钥、模型、限额和审计,但若允许客户端直连公网模型,或日志记录完整请求,数据仍可能越境或被过度保留。
什么才算“数据不出境”
“数据不出境”至少要回答三个问题:数据在哪里被处理、在哪里被持久化、谁可以远程访问。企业常见误区是只查看数据库地域,却忽略推理请求可能由区域外模型端点处理;或者模型推理在本地,但客户端把错误报告发送给全球日志服务。更严格的要求还可能涉及运维人员访问、备份副本、灾难恢复、支持工单和分包商。
本文使用“批准地域”表示企业法务和安全团队确认可处理相关数据的区域。它可能是某个国家或地区,也可能是企业自有数据中心。具体是否构成法律意义上的跨境传输,应由企业法务结合数据类别、主体、访问方式和适用法规判断;本文提供的是技术治理方案,不构成法律意见。
| 治理层 | 主要数据 | 常见越境点 | 推荐控制 | 验收证据 |
|---|---|---|---|---|
| Indexing | 源码、路径、哈希、符号关系 | 云端索引、跨区对象存储、共享缓存 | 区域内索引器、内容排除、租户隔离 | 网络日志、索引清单、删除测试 |
| Embedding | 代码分块、向量、元数据 | 公网 Embedding API、全球向量库 | 本地模型或区域端点、区域向量库、密钥加密 | 调用域名、区域配置、KMS 日志 |
| Telemetry | 使用指标、错误栈、会话、命令输出 | SaaS APM、崩溃报告、反馈上传 | 数据分级、字段白名单、区域 OTLP Collector | Schema、采样策略、脱敏测试 |
| Model API | Prompt、代码上下文、工具结果、模型输出 | 全球路由、第三方模型、代理日志 | LLM Gateway、区域模型、ZDR、出站白名单 | 网关审计、模型清单、合同与探针 |
四层治理架构总览
推荐架构把开发者设备视为非完全可信端点,把企业 Coding Agent Gateway 作为唯一出口。客户端先在本机或区域内开发环境扫描仓库;敏感路径在扫描前排除;允许索引的代码块被送到区域内 Embedding 服务,向量写入区域向量库。问答或 Agent 任务先通过权限过滤检索,再把最小必要代码片段送入企业 LLM Gateway,由网关选择获批的区域模型端点。
Telemetry 不与模型请求共用自由格式日志。Agent 只上报白名单字段,例如版本、延迟、错误码、Token 数量和工具类别;文件内容、路径、Prompt、命令输出默认不采集。若为安全事件需要临时提高日志级别,必须经审批、限时启用并写入单独的受控存储。

为什么还需要网络强制
配置文件只能表达意图,网络策略才能提供强约束。开发者可能安装未经批准的插件,CLI 也可能读取用户级环境变量并直接连接公共 API。企业应在终端、开发容器、VDI 或安全代理层限制出站目标,只允许代码托管、企业网关、包仓库和必要更新服务;云端 Agent 的工作负载也应应用同一策略。
AWS 官方文档说明,Amazon Bedrock 可以通过 AWS PrivateLink 建立 VPC 私有连接,无需互联网网关、NAT、VPN 或 Direct Connect;VPC Flow Logs 可用于观察流量。这证明区域模型端点可以纳入私有网络控制,但企业仍需确认具体模型、功能和区域是否满足要求。
第一层:Indexing 治理
索引层的目标不是“把所有代码都变得可搜索”,而是只索引经过授权且确有业务需要的内容。索引前应先根据仓库、分支、目录和文件类型执行策略,明确排除 .env、私钥、生产导出、客户数据、移动签名证书、Terraform state、数据库快照和安全测试样本。
大型企业建议把索引服务放在区域内 Kubernetes、虚拟机集群或受控托管服务中,并为每个组织或安全域创建独立命名空间。索引器只能使用只读短期凭据拉取批准分支,禁止访问个人 Fork 和未登记仓库。增量索引应保存文件哈希,但哈希、路径和符号图同样属于内部元数据,不能进入公开日志。
索引删除必须覆盖四类对象:原始临时分块、派生向量、元数据/符号图、缓存与备份引用。仓库撤权或员工离职后,应触发异步删除任务并形成可审计回执,而不是只从搜索界面隐藏。
第二层:Embedding 治理
Embedding 层常被误认为“没有明文就没有风险”。实际上模型在生成向量前仍要读取代码分块,调用外部 Embedding API 就意味着原始片段发生网络传输。企业可以在以下两种方案中选择:
- 完全自托管。 在批准地域部署代码 Embedding 模型和推理服务,向量库也部署在同一区域。优点是链路清晰,缺点是需要承担模型更新、GPU/CPU、容量和质量评估。
- 区域托管端点。 使用明确支持所需地域、私网连接和保留控制的云服务。上线前核验模型实际部署区域、日志设置、备份地域和子处理者。
向量库应开启磁盘加密、传输加密、租户级访问控制和 KMS 密钥轮换。检索结果必须再次执行仓库 ACL,不能仅凭“知道向量 ID”返回代码。向量记录建议包含 repository_id、security_domain、commit_sha、expires_at 和策略版本,便于撤权与精准删除。
下面是治理清单示例,不对应任何厂商的原生配置:
data_residency_policy:
approved_region: YOUR_APPROVED_REGION
indexing:
mode: in_region
raw_chunk_ttl_minutes: 15
excluded_paths:
- ".env*"
- "secrets/**"
- "customer-data/**"
- "*.pem"
- "*.p12"
embedding:
endpoint: "https://YOUR_REGIONAL_EMBEDDING_ENDPOINT"
vector_store_region: YOUR_APPROVED_REGION
tenant_isolation: required
telemetry:
content_logging: denied
otlp_endpoint: "https://YOUR_REGIONAL_OTLP_COLLECTOR"
model_api:
gateway: "https://YOUR_INTERNAL_LLM_GATEWAY"
public_direct_access: denied
zero_data_retention: required_where_supported
第三层:Telemetry 治理
遥测应拆成三类:无内容运行指标、诊断数据、会话与反馈。无内容指标可以包括请求数量、延迟、状态码、模型标识、Token 用量和工具类别;诊断数据可能包含错误栈、文件路径和命令参数;会话与反馈可能直接包含 Prompt、源码和模型输出。后两类不能默认进入普通 SaaS APM。
Anthropic 官方文档显示,Claude Code 商业使用与消费者账户适用不同训练规则;主动提交 /feedback、/bug 或分享内容还可能采用单独的长期保留规则。这说明“遥测关闭”与“用户主动反馈上传”应分别控制。企业应通过受管设置禁用非必要遥测和反馈通道,或让它们指向区域内 Collector,并在客户端 UI 中提示哪些内容会被发送。
推荐实行字段白名单而非黑名单:Agent SDK 只能上报预先定义的结构化字段;所有字符串字段设置长度上限;错误栈在客户端去除绝对路径、用户名、邮箱、Token 和代码行;日志采样器检测高熵字符串和密钥格式;生产环境禁止完整 Prompt/Response 日志。排障需要内容日志时,使用工单批准、单独加密存储、最短 TTL 和访问审计。
第四层:Model API 治理
模型 API 是最明显的数据出口,也是最适合集中治理的层。企业 LLM Gateway 应持有上游模型凭据,开发者只拿到短期网关令牌。网关依据用户、仓库数据级别、地域、任务类型和模型能力进行路由,同时执行并发限制、预算、内容过滤和审计。
Anthropic 官方支持 Claude Code 通过组织已有的 LLM Gateway 路由,网关可集中管理凭据、使用量、预算、审计和供应商切换。官方也提醒网关会成为企业自行运维的基础设施,若未及时兼容新能力,可能导致功能失效。网关日志设计尤其重要:如果把每个完整请求和响应永久保存,网关本身会成为最大的源码副本库。
OpenAI API 官方文档则区分默认滥用监测留存、Modified Abuse Monitoring 和 ZDR;ZDR 还会改变部分端点的 store 行为,但并非所有端点或功能都符合 ZDR。企业需要按实际端点建立允许列表,不能只看到组织已启用 ZDR 就默认所有文件、后台任务和状态型 API 均零保留。
GitHub 官方的数据驻留文档提供另一个参考:当企业启用 Copilot 数据驻留限制时,代码、Prompt 和响应在推理过程中留在指定区域,相关日志与遥测也存入合规区域;目前官方列出的支持区域和模型范围仍有限,策略默认关闭,且区域内可用模型可能滞后。因此采购时要把功能可用性和地域要求同时写入验收标准。
从零部署的九步实施流程
以下流程适合先做 20~50 人试点,再扩大到全公司。每一步都应产生可审计交付物。
- 建立数据分类。 把仓库分为公开、内部、机密、受监管四级,定义哪些等级允许云端 Agent、区域 API或只能自托管。
- 画出现状数据流。 枚举 IDE 插件、CLI、云端任务、索引器、向量库、模型、日志、支持反馈和备份,标注实际地域与处理者。
- 选择批准地域和模型。 对每个模型确认端点区域、保留、训练用途、ZDR资格、子处理者和功能限制,形成允许清单。
- 部署索引与 Embedding。 优先在批准地域内完成扫描、分块和向量化,建立路径排除、ACL过滤、TTL及删除接口。
- 部署企业 LLM Gateway。 使用服务器端凭据、短期用户令牌、按仓库路由和请求签名,拒绝未知模型和非批准区域。
- 收口遥测。 把 Agent、网关和模型指标送入区域内 OTLP Collector;默认禁止 Prompt、代码、文件路径和命令输出。
- 实施网络白名单。 终端、容器和云端执行器仅能访问批准域名或 Private Endpoint;阻止直接访问公共模型 API。
- 开展哨兵测试。 在测试仓库放置无价值唯一标记,分别测试索引、问答、Agent、错误报告与反馈,验证标记不会出现在境外日志或未知目标。
- 演练删除与回滚。 删除索引、撤销仓库、轮换凭据、切换备用模型,并验证向量、缓存、日志和备份的处理证据。

验收标准与持续审计
技术上线不等于持续合规。每次增加新模型、新 Agent 工具、新云区域或新日志字段,都可能改变数据路径。企业应设置变更 Gate:供应商、模型端点、区域或保留策略发生变化时,必须重新执行安全评估和哨兵测试。
验收至少包括:客户端无法直连公网模型;网关拒绝非批准模型;索引排除目录无法被搜索;跨仓库用户无法检索他人代码;日志中没有 Prompt、源码、完整路径和密钥;删除仓库后向量与缓存不可检索;区域服务故障时系统“关闭失败”,而不是自动回退全球端点;高风险工具动作需要人工批准;预算、重试和超时有明确上限。
审计日志要记录“谁在何时对哪个仓库使用了哪个模型和哪些工具”,但尽量不记录具体代码内容。模型输出错误、Prompt Injection 和恶意仓库指令仍可能诱导 Agent 调用网络、读取 Secrets 或执行危险命令,因此数据驻留方案还必须结合最小权限、沙箱、参数校验、人工审批和 Kill Switch。
更多 Agent 网络控制思路可参考 AI Stack Nav 的 AI Agent 网络隔离专题,网关设计可继续阅读 MCP Gateway 与权限审计专题。
成本、限制与选型建议
完全自托管控制力最强,但需要承担 Embedding 模型质量、GPU容量、向量库扩缩容、补丁、监控和灾备成本。区域托管服务部署更快,却受限于区域和模型可用性;新模型往往先在全球端点上线,合规区域可能延迟。企业网关增加一次网络跳转和运维负担,但能显著提升密钥、路由、预算与审计一致性。
建议公开和内部仓库采用区域托管方案,机密仓库采用区域索引、私网模型端点和严格 ZDR,受监管或核心算法仓库采用完全自托管或经专项批准的隔离环境。任何方案都要设置超时、有限重试、幂等任务 ID 和明确回退:区域模型不可用时应排队或停止,不能静默切换到全球端点。
采购合同还应覆盖数据处理地域、远程运维访问、子处理者、事件通知、删除证明、备份、支持工单、模型变更和审计权。技术团队不应自行把“服务区域”解释为法律上的“不出境”,最终认定仍需要法务和隐私负责人参与。
事实依据与来源
本文于 2026 年 9 月 24 日核验官方资料。官方已确认的事实包括:GitHub Copilot 数据驻留模式可把推理、日志与遥测限制在支持区域,但需要显式启用且模型可用性受地域影响;Claude Code 支持企业 LLM Gateway,并允许集中管理凭据、预算与审计;OpenAI API 的默认滥用监测、ZDR和端点状态留存存在区别;Anthropic ZDR按组织启用且并非所有功能都具备相同存储需求;Amazon Bedrock支持通过 PrivateLink连接VPC端点。
本文的四层治理架构、字段白名单、九步实施流程和验收项属于编辑判断与实施建议,并非任何单一厂商的官方标准。具体区域、模型、价格、保留期限、ZDR资格和合规承诺会变化,项目上线前必须以控制台、合同、DPA和最新官方文档为准。
FAQ
数据不用于训练,是否就等于数据不出境?
不等于。不用于训练只限制数据用途,数据仍可能在境外端点被推理、缓存、记录或由支持人员访问。还需同时验证处理地域、存储地域、遥测、备份和远程访问。
ZDR 是否可以代替数据驻留?
不能。ZDR主要约束请求完成后的服务端持久化,数据在处理时仍会到达模型基础设施。数据驻留关注处理与存储地点,两者应结合使用。
Embedding 不包含原始源码,为什么仍要留在境内?
生成向量时模型需要处理原始代码块,向量本身也能表达代码语义并关联仓库元数据。它属于源码的敏感派生数据,应有相同或相近的地域与访问控制。
企业是否必须自建模型?
不一定。能够证明区域内处理、私网连接、保留可控并满足合同要求的托管端点也可以采用。最高敏感项目再考虑完全自托管。
LLM Gateway 会不会保存完整源码?
取决于日志配置。推荐默认只记录身份、仓库、模型、Token、状态码和延迟,不记录完整 Prompt、代码和响应;临时内容日志必须审批、限时和加密。
GitHub Copilot 是否支持区域内推理?
GitHub 官方提供面向 Enterprise Cloud 数据驻留实例的 Copilot 地域限制能力,但支持区域、模型、价格和功能范围会变化,而且策略需要管理员启用。采购前应核验当前账户的实际选项。
Telemetry 应该全部关闭吗?
不必全部关闭。无内容指标对容量、故障和成本治理很重要;关键是采用字段白名单、区域内 Collector 和最短保留,并禁止源码、Prompt、路径、命令输出和密钥进入普通日志。
区域模型故障时能否自动切换全球模型?
机密和受监管数据不应自动切换。正确回退通常是排队、降级到区域内备用模型或停止任务,并向用户明确提示,而不是静默改变处理地域。
如何证明系统真的没有绕过网关?
同时使用出站防火墙、DNS/代理日志、VPC Flow Logs、网关审计和哨兵测试。仅检查客户端配置不足以证明没有插件、脚本或备用端点直连公网。
数据不出境方案能解决 Prompt Injection 吗?
不能。数据驻留降低地域与供应链风险,但 Prompt Injection仍可能诱导 Agent读取敏感文件或调用工具。必须继续使用沙箱、最小权限、参数校验、人工审批和审计。
参考来源
- GitHub:Copilot with data residency
- Anthropic:Claude Code LLM gateways
- Anthropic:Claude Code data usage
- Anthropic:API and data retention
- OpenAI:API data controls
- OpenAI:Data residency in Europe
- AWS:Amazon Bedrock PrivateLink endpoints
内容核验日期:2026 年 9 月 24 日
工具选型与提示词资料
适合阅读工具评测、工具推荐、对比测评类文章后继续转化。
0 回复