Z Tag
资源规则

沙箱配置与网络隧道

设置 ZAI 沙箱的出网级别,新建沙箱配置,并通过网络隧道和内网路由访问企业内网。

适用于组织 Owner;成员的个人沙箱配置同样适用

沙箱配置 决定 ZAI 的沙箱能访问哪些网络地址,以及怎样进入企业内网。网络隧道 是安装在企业网络里的程序,只向 Z Tag 建立出站连接,把获得授权的请求送到内网服务。网络隧道的本机程序叫 Z Tag Network Connector(命令 ztag-network-connector),它和控制台里的 连接器 是两种不同的资源。

沙箱配置还可以用 运行方式 把 ZAI 的命令放到独立执行沙箱或一台远程设备上执行。本页的出网规则与内网路由作用于沙箱里的命令,在远程设备上执行的命令用设备自己的网络,不受这些规则限制,见命令在哪里执行。

ZAI 访问企业内网服务的路径

谁可以做:组织的沙箱配置由组织 Owner 新建、修改、删除和设置使用范围,Admin 可以查看。成员可以在 我的资源 → 沙箱配置 管理只作用于自己私信的沙箱配置,见在控制台管理自己的资源。新建和接入网络隧道见远程设备与网络隧道。

默认沙箱配置

  • 组织和每位成员各有一份名为 Default 的沙箱配置,详情里标有 默认沙箱配置。它的 出网级别 初始为 开放公网(保留拦截规则),之后可以修改。
  • 没有单独选择沙箱配置的频道或群聊使用组织的默认沙箱配置,成员的私信使用他自己的默认沙箱配置。完整的选择规则见能力在哪里生效。
  • 默认沙箱配置不能删除。在另一份沙箱配置的详情页点 设为默认,可以改用它作为默认。在组织默认沙箱配置的详情页点 取消默认 后,没有单独选择沙箱配置的频道或群聊只能访问连接器授权的目标;成员取消自己的默认后,他的私信同样如此。连接器授权的凭证、域名、Database、SSH、Kubernetes 与 Git 仓库照常可用,只是没有内网路由可走:内网路由要求 为 必须经内网路由 的目标会请求失败,连接器指定了网络隧道的照常经过隧道。
  • 沙箱配置在列表里总是显示 已配置,这个状态不表示其中的内网路由或网络隧道可用。

出网级别

出网级别含义
仅已授权资源只能访问连接器明确授权的目标。新建沙箱配置时预选这一项
已授权资源与受信任服务另外还能访问常用的代码托管、容器镜像与软件包源,例如 GitHub、Docker Hub、npm、PyPI。对这些服务只放行 443 端口上的 HTTPS 访问,明文 HTTP 和其他端口仍需要连接器授权
开放公网(保留拦截规则)可以访问公网,但仍拒绝已知的危险目标
开放公网(不使用拦截名单)放开全部公网目标;只在评估过风险后使用

任何选项都不能直接访问企业内网或私有地址。需要时,让连接器指定网络隧道,或在沙箱配置里添加内网路由。

新建沙箱配置

  1. 进入 组织管理 → 沙箱配置,点 新建。
  2. 填写 名称,选择 出网级别。这套 Z Tag 服务开启了运行方式时,表单里还有 运行方式,默认 在沙箱中执行,见选择运行方式。
  3. 在 使用范围 里选择要用这份配置的 Channel、Workspace 或整个组织,或保持 稍后分配。每个范围只配置一份沙箱配置;所选范围已经单独配置了一份时,创建会提示冲突,新配置照常保存、出现在列表里但不分配到这个范围,原来那份继续生效;这时可以直接关闭对话框,或改选范围后点 继续完成配置。要换用新配置,在它详情的 使用范围 里 添加使用范围,对话框会提示将替换原来那份。撤销后,这个范围恢复使用上一层或默认的沙箱配置。
  4. 点 创建。需要访问内网时,再为它添加内网路由。

在 我的资源 → 沙箱配置 新建个人沙箱配置时,表单里没有 使用范围,而是勾选框 创建后在我的个人范围中可用,默认勾选:创建后这份配置立即用于你的私信,取代 Default 或你之前选用的那份。出网级别 又预选 仅已授权资源,按默认值创建后,你的私信只能访问连接器授权的目标。只想补一条内网路由时,把 出网级别 选成和 Default 相同的选项,或者直接在 Default 里添加内网路由。

添加内网路由

内网路由把发往某个内网地址的请求交给一条网络隧道转发。

  1. 打开沙箱配置的详情,在 内网路由 一节点 添加路由。也可以从网络隧道的详情页添加。
  2. 选择 沙箱配置 和 网络隧道,填写 路由标识、目标地址、协议、端口 和 优先级。目标地址 可以写完整的主机名,也可以写成 *.example.com,匹配它的所有子域名(不含 example.com 本身)。
  3. 点 添加。

请求按下面的规则匹配路由:

  • 协议和端口必须与路由一致。
  • 目标地址越精确越优先:完整主机名先于 *. 开头的写法,同类写法里越长越优先。
  • 精确程度相同时,优先级 数值大的先匹配。
  • 两条路由完全无法区分时,请求失败。

请求一旦匹配到内网路由,隧道离线、授权已撤销或多条路由无法区分等情况都会直接失败,不会改走公网。目标地址的域名解析和到目标服务的连接,都在隧道所在的企业网络里完成,所以内网域名也能使用。

每个 Session 只读取生效的那一份沙箱配置里的内网路由,上层沙箱配置里的路由不会合并进来。

连接器没有指定网络隧道时,凭证、域名等每个访问目标的 内网路由要求 决定没有匹配到内网路由时怎么处理:选 按沙箱配置的内网路由 时直接访问,选 必须经内网路由 时请求失败。连接器指定了网络隧道时,这个选项不起作用,见内网路由要求。

连接器指定隧道

新建连接器时,在 网络隧道 里选一条隧道;之后要换,点连接器页头的 网络隧道 字段。指定后,连接器里的凭证、域名、Database、SSH、Kubernetes、Git 仓库,以及 OAuth2 与 Nacos 换取和刷新令牌,都经过这条隧道;公网地址也一样,不再匹配沙箱配置里的内网路由。默认选项 使用沙箱配置的路由 表示按生效的沙箱配置里的内网路由选择出口。连接器详情会显示它指定的网络隧道,以及隧道 在线 还是 不可用。

隧道只决定出口,访问目标和操作权限仍按连接器的配置检查。指定的隧道离线或授权被撤销时,请求失败,不会改走公网。

修改连接器的隧道后,新请求立即走新出口;正在使用的 Database、SSH、Kubernetes 连接会在几秒内断开,需要重新连接;已建立的 WebSocket 或 HTTPS 长连接保持到自然结束。

引用组织的网络隧道

通过组织连接器使用时,自动沿用它指定的网络隧道,使用者不需要另外获得授权,也不必在自己的配置里再指定一次。

成员要在自己的连接器、沙箱配置或模型上游里引用组织的网络隧道,需要组织先把这条隧道授予他或全体成员(全体成员包括以后加入的成员):在网络隧道详情的 使用范围 标签里添加。授权不会复制组织的配置,每位成员仍需在自己的资源里指定这条隧道。成员也可以在任务中申请引用,见成员授权与审批。

模型上游指定隧道

模型上游 也可以直接指定一条网络隧道。请求的目标仍是上游自己填写的地址,不使用沙箱配置里的内网路由,见配置模型路由与回复审阅。

接入与维护网络隧道

网络隧道所在的主机只保存这条隧道自己的接入凭证,不保存连接器里的凭证、连接器授权或内网路由。它只转发经 Z Tag 授权的连接,不是局域网的通用代理。

新建网络隧道、在企业网络里的主机上安装、查看隧道的状态,见远程设备与网络隧道;本机的停止、恢复、取消接入、卸载和常见问题,见维护网络隧道。

本页目录