组织策略控制组织成员的沙箱可以访问什么。当开发者的沙箱发起请求时,有三个问题决定结果: 你的哪些策略适用于该开发者、这些策略的规则对该请求怎么说,以及你的策略与开发者机器上的 本地规则和 Kit 规则是什么关系。本页依次回答这三个问题,然后说明你的更改何时到达开发者。 要创建策略,请参阅创建和管理组织策略。
策略包含什么
组织策略是一组带名称的规则集合。每条规则都有一个名称、它所控制的行为、它匹配的资源, 以及 allow 或 deny 的判定。每条策略覆盖一种访问权限:
- 组织网络访问策略控制沙箱可以访问的目标地址。
- 组织文件系统访问策略控制开发者可以挂载到沙箱中的宿主路径。
- 组织 MCP 访问策略控制开发者可以注册哪些 MCP 服务器,以及智能体可以用它们 做什么。它们使用
MCP命名空间中的 Cedar 语句,而不是规则。
策略作用域
组织策略仅适用于持有 AI Governance 许可证的成员。每条策略对这些成员的适用范围,要么是 整个组织,要么仅限特定团队:
- 全组织范围:未分配任何团队时,该策略适用于组织中每一位持有许可证的成员。
- 团队作用域:分配了一个或多个团队时,该策略仅适用于这些团队中持有许可证的成员。
这里的团队就是你为组织管理的同一批团队。 Docker 会把策略的团队与每位成员所属的团队进行匹配。由于一个组织可以混用全组织范围的 策略和团队作用域的策略,单个成员通常会同时受多条策略约束。适用于某位成员的策略就是 他的生效策略:全部全组织范围的策略,加上他所属每个团队的团队作用域策略。
对于必须处处生效的护栏,请使用全组织范围的策略;对于只有部分团队需要的访问权限,请 使用团队作用域的策略。下一节会说明全组织范围的拒绝规则为什么适合作为护栏。
规则如何判定请求
当组织策略对你强制执行时,你所有生效策略中的规则会被合并在一起,针对每个请求按照两条 原则进行评估:
- 拒绝优先:如果任何规则以
decision: deny匹配,请求就会被拒绝,无论是否存在匹配的 允许规则。 - 默认拒绝:允许规则未匹配的一切内容都会被阻止。除非有网络规则允许该目标地址,出站 网络流量会被阻止;除非有文件系统挂载规则允许某个宿主路径,它就无法挂载;除非有 MCP
permit允许某项 MCP 活动,它也会被阻止。
由于每条生效策略都会参与同一次评估,允许是累加的(只要有任意一条生效策略允许,请求就 被允许),拒绝是绝对的(只要有任意一条生效策略拒绝,请求就被阻止)。因此,全组织范围的 策略中的拒绝规则适用于所有人,且无法被团队作用域的策略覆盖,这使得全组织范围的拒绝 规则适合作为护栏。
例如,一条全组织范围的策略允许 git.example.com 并拒绝 paste.example.com,而一条 面向 Data 团队的团队作用域策略允许 packages.example.com 和 paste.example.com:
| 目标地址 | Data 团队成员 | 其他所有人 |
|---|---|---|
git.example.com | 全组织范围的策略允许 | 全组织范围的策略允许 |
packages.example.com | 团队作用域的策略允许 | 被默认拒绝阻止 |
paste.example.com | 被阻止,因为全组织范围的拒绝规则优先 | 被全组织范围的拒绝规则阻止 |
| 其他一切 | 被默认拒绝阻止 | 被默认拒绝阻止 |
审批要求会在允许访问之前增加一个步骤。如果 Data 团队的策略要求审批,Data 团队成员第一次 请求 packages.example.com 时会被阻止,并被要求进行审批,之后的请求则会成功。 paste.example.com 仍会在不询问的情况下被阻止,因为拒绝规则从不请求审批。更多细节请 参阅需要审批的访问。
组织策略如何与本地规则和 Kit 规则相互关联
你组织的规则并不是开发者机器上唯一的规则。开发者还有自己的本地规则,Kit 还可以为使用 它们的沙箱添加规则。哪些规则生效取决于是否对该开发者强制执行了组织策略:
- 没有组织策略:本地规则以及任何 Kit 规则决定沙箱可以访问什么。
- 强制执行组织策略:组织策略决定可以授予哪些访问权限。只有组织允许规则才会授予访问 权限,因此本地允许规则和 Kit 允许规则不再生效,也无法扩大组织允许的范围。拒绝规则 来自所有来源都会生效,因此本地或 Kit 的拒绝规则仍可以进一步收紧访问权限。
下面的表格汇总了强制执行组织策略时会评估哪些规则:
| 规则 | 是否评估 |
|---|---|
| 组织允许 | 是 |
| 组织拒绝 | 是 |
| 本地允许 | 否 |
| 本地拒绝 | 是 |
| Kit 允许 | 否 |
| Kit 拒绝 | 是 |
本地规则和 Kit 规则只覆盖网络访问,因此本地或 Kit 的拒绝规则可以收紧你的网络规则,但 永远不会影响你的文件系统规则或 MCP 规则。本地拒绝规则的优先级也高于组织的审批要求, 因此请求会在不询问审批的情况下被阻止。
已批准的目标地址是本地允许规则不再生效的唯一例外。当开发者批准某个目标地址时,由此 产生的规则记录的是他对策略审批要求的答复,而不是授予新的访问权限,因此它保持生效。
策略更改何时到达开发者
策略更改会在 5 分钟内到达开发者机器。已同步的更改何时生效还取决于策略类型。更多细节请 参阅组织网络访问策略、 组织文件系统访问策略和 组织 MCP 访问策略。
要在开发者机器上立即应用更改,或者更改似乎没有生效,请参阅 组织策略更改未生效。