用 sbx policy ls 查看适用于你的沙箱的策略和规则以及它们的来源,用 sbx policy inspect 查看某一个策略或规则的完整内容。列表中包含来自你的本地策略、来自 Kit 以及来自你的 组织的规则,因此你可以确认自己添加的规则,并弄清楚某个请求为什么被允许或被拦截。如果 你想查看网络活动,请参阅 测试和监控网络策略。
列出适用的策略
运行 sbx policy ls 查看每个生效中的策略:
$ 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 这一行代表内置的回退行为:当没有适用的策略对某个请求作出判定时, 访问会被阻止。它永远不会覆盖允许规则。它的摘要描述的是这一情况,而不是把它计为一条 显式拒绝。关于各预设下如何处理未匹配的请求,请参阅 规则如何组合。
列出某个沙箱的策略
传入沙箱名称,只查看全局策略以及限定到该沙箱的策略:
$ sbx policy ls my-sandbox输出按类型对规则分组。例如,对于一个本地策略中允许了 42 个主机、并显式拒绝了 1 个 主机的沙箱,网络部分显示为:
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、类型、判定、协议和资源:
$ sbx policy ls --wide用这个列表中的规则 ID,可以通过 sbx policy rm network --id 移除规则。有关更多细节, 请参阅移除规则。
要查看某一个策略或规则的完整内容,把它的名称或规则 ID 传给 sbx policy inspect:
$ 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显示你批准某个目标地址时记录的规则。
例如,要列出你已批准的目标地址:
$ sbx policy ls --wide --created-via approval有关更多细节,请参阅回应审批请求。
要列出某个 Kit 为一个沙箱添加的规则:
$ sbx policy ls my-sandbox --source kit --wide列出 HTTP 规则
匹配 HTTP 方法和路径的规则类型为 http。要只列出这些规则,传入 --type http:
$ sbx policy ls --type http在 --wide 列表中,HTTP 规则会填满 METHOD 和 PATH 两列。匹配整个目标地址的规则 在这两列中都显示 -。
在 SUMMARY 列中,HTTP 规则按网络规则计数,每个部分都按它所匹配的网络层来标注。 L4 统计匹配整个目标地址的条目,L7 统计同时匹配 HTTP 方法和路径的条目:
$ 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:
$ 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 会以一行状态信息开头:
$ 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:
$ sbx policy ls --wide --include-inactiveSTATUS 列会为每条规则显示 active 或 inactive。在组织策略强制执行期间,非活动 规则没有任何效果。本地拒绝规则和 Kit 拒绝规则仍然生效,也不会被隐藏,因为拒绝规则 在组织策略之上依然适用。有关更多细节,请参阅 组织策略如何与本地规则和 Kit 规则相互关联。