Skip to content

用 sbx policy ls 查看适用于你的沙箱的策略和规则以及它们的来源,用 sbx policy inspect 查看某一个策略或规则的完整内容。列表中包含来自你的本地策略、来自 Kit 以及来自你的 组织的规则,因此你可以确认自己添加的规则,并弄清楚某个请求为什么被允许或被拦截。如果 你想查看网络活动,请参阅 测试和监控网络策略。

列出适用的策略 ​

运行 sbx policy ls 查看每个生效中的策略:

console
$ sbx policy ls
POLICY                                 SOURCE   APPLIES TO          SUMMARY
default-deny-all                       local    all                 network: deny when no rule decides
local-policy                           local    all                 network: 42 allow, 1 deny; filesystem read: 1 allow; filesystem write: 1 allow
1b2633ea-e604-48bb-a5e6-3ac86ba383fe   kit      sandbox:my-sandbox  network: 3 allow

各列含义如下:

  • POLICY:策略名称。
  • SOURCE:策略的来源。local 表示你的本地策略,其中包含你的预设以及你用 sbx policy 添加的规则。kit 表示某个 Kit。 org 表示你的组织。
  • APPLIES TO:策略适用于哪些沙箱。all 表示该策略是全局的,sandbox:<name> 表示 它限定到某个沙箱。
  • SUMMARY:按类型和判定统计的规则条目数量,例如 network: 5 allow, 1 deny。一条 指定多个目标地址的规则,每个目标地址贡献一个条目。

default-deny-all 这一行代表内置的回退行为:当没有适用的策略对某个请求作出判定时, 访问会被阻止。它永远不会覆盖允许规则。它的摘要描述的是这一情况,而不是把它计为一条 显式拒绝。关于各预设下如何处理未匹配的请求,请参阅 规则如何组合。

列出某个沙箱的策略 ​

传入沙箱名称,只查看全局策略以及限定到该沙箱的策略:

console
$ sbx policy ls my-sandbox

输出按类型对规则分组。例如,对于一个本地策略中允许了 42 个主机、并显式拒绝了 1 个 主机的沙箱,网络部分显示为:

text
NETWORK
  • allow 42 hosts from local-policy
  • deny 1 host from local-policy
  • fallback: deny when no rule decides from default-deny-all

回退项单独占一行,因此 deny 1 host 只统计显式拒绝。其他策略(例如 Kit 提供的策略) 也会计入该沙箱的摘要。要查看每一条规则,请加上 --wide。

显示规则详情 ​

传入 --wide 可以把每条规则列在单独一行,包含它的规则 ID、类型、判定、协议和资源:

console
$ sbx policy ls --wide

用这个列表中的规则 ID,可以通过 sbx policy rm network --id 移除规则。有关更多细节, 请参阅移除规则。

要查看某一个策略或规则的完整内容,把它的名称或规则 ID 传给 sbx policy inspect:

console
$ sbx policy inspect local-policy

筛选列表 ​

筛选器对摘要和 --wide 列表同样有效:

  • --type:只显示 network、http 或 filesystem 策略。
  • --source:只显示来自 local、kit 或 org 的策略。
  • --decision:只显示 allow 或 deny 规则。
  • --protocol:只显示 tcp 或 udp 的网络规则。
  • --created-via:只显示以某种方式创建的规则。传 default 显示预设规则,传 added 显示你自己添加的规则,传 provisioned 显示由 Kit 或应用添加的规则,传 approval 显示你批准某个目标地址时记录的规则。

例如,要列出你已批准的目标地址:

console
$ sbx policy ls --wide --created-via approval

有关更多细节,请参阅回应审批请求。

要列出某个 Kit 为一个沙箱添加的规则:

console
$ sbx policy ls my-sandbox --source kit --wide

列出 HTTP 规则 ​

匹配 HTTP 方法和路径的规则类型为 http。要只列出这些规则,传入 --type http:

console
$ sbx policy ls --type http

在 --wide 列表中,HTTP 规则会填满 METHOD 和 PATH 两列。匹配整个目标地址的规则 在这两列中都显示 -。

在 SUMMARY 列中,HTTP 规则按网络规则计数,每个部分都按它所匹配的网络层来标注。 L4 统计匹配整个目标地址的条目,L7 统计同时匹配 HTTP 方法和路径的条目:

console
$ sbx policy ls
POLICY         SOURCE   APPLIES TO   SUMMARY
local-policy   local    all          network: 2 allow (L4), 1 deny (L7)

当同一判定在两个层上都有条目时,每一层都有各自的计数,L4 在前。两条主机允许和一条 HTTP 允许显示为 network: 2 allow (L4), 1 allow (L7)。

只有当列表中至少包含一条 HTTP 规则时才会显示这些标签。由于筛选器和隐藏的非活动规则 会改变列表的内容,一个不含 HTTP 规则的筛选列表会显示不带标签的计数,例如 network: 42 allow。

有关更多细节,请参阅 HTTP 方法和路径。

列出文件系统挂载规则 ​

文件系统挂载规则控制沙箱可以作为工作区挂载哪些主机路径。要只列出这些规则,传入 --type filesystem:

console
$ sbx policy ls --type filesystem
POLICY         SOURCE   APPLIES TO   SUMMARY
local-policy   local    all          filesystem read: 1 allow; filesystem write: 1 allow

你的本地策略默认允许对所有路径的读和写访问,如上面两条允许条目所示。关于读规则和写 规则如何组合,请参阅 文件系统挂载规则语法。

检查组织治理状态 ​

当有组织策略对你强制执行时,sbx policy ls 会以一行状态信息开头:

console
$ sbx policy ls
Governance: Managed by my-org · Sync: OK, last synced 08:21:01 · Hidden: 9 inactive rules. Show with: sbx policy ls --include-inactive

POLICY               SOURCE   APPLIES TO   SUMMARY
default filesystem   org      all          filesystem read: 2 allow; filesystem write: 7 allow, 2 deny
default network      org      all          network: 38 allow, 4 deny

--wide 列表会在表格上方以 POLICY RULES 区块显示相同的字段。

  • Governance 显示由哪个组织管理该策略。
  • Sync 显示守护进程上次拉取组织策略的时间。如果它显示错误或是很旧的时间戳,运行 sbx policy refresh 立即获取并应用最新的组织策略。有关更多细节,请参阅 组织策略变更没有生效。
  • Hidden 显示列表省略了多少条非活动规则。有关更多细节,请参阅 显示非活动规则。

如果状态显示 Governance: Unresolved,请参阅 sbx policy ls 显示 Governance: Unresolved。

显示非活动规则 ​

当有组织策略对你强制执行时,本地允许规则和 Kit 允许规则不会被求值,因此 sbx policy ls 会隐藏它们。要列出它们,例如为了确认组织策略覆盖了你的哪些允许规则,请传入 --include-inactive 和 --wide:

console
$ sbx policy ls --wide --include-inactive

STATUS 列会为每条规则显示 active 或 inactive。在组织策略强制执行期间,非活动 规则没有任何效果。本地拒绝规则和 Kit 拒绝规则仍然生效,也不会被隐藏,因为拒绝规则 在组织策略之上依然适用。有关更多细节,请参阅 组织策略如何与本地规则和 Kit 规则相互关联。