在这个示例中,你创建一个沙箱,为它允许和阻止目标地址,阻止一个 HTTP 方法,然后回顾 发生了什么。示例使用 shell 智能体,因此你不需要登录任何智能体。
开始之前
如果你的组织为你强制执行了策略,某些步骤的表现会有所不同。有关更多细节,请参阅 组织策略如何与本地规则和 Kit 规则相互关联。
第 1 步:创建沙箱
创建一个名为 policy-demo 的沙箱,并把当前目录作为它的工作区:
$ sbx create --name policy-demo shell .如果你还没有选择网络预设,sbx 会提示你选择一个。 本示例适用于任何预设。
第 2 步:为该沙箱允许一个目标地址
添加一条只适用于 policy-demo 的 example.com 允许规则:
$ sbx policy allow network --sandbox policy-demo example.com该规则不会影响你的其他沙箱。列出你添加的、适用于该沙箱的规则:
$ sbx policy ls policy-demo --wide --created-via added列表中包含 example.com 规则,APPLIES TO 列中显示 sandbox:policy-demo。你的预设 带来的规则不会列出,因为 --created-via added 只显示你添加的规则。有关更多细节,请 参阅检查策略状态和规则。
从沙箱内部访问该目标地址:
$ sbx exec policy-demo -- curl -sI https://example.com有关更多细节,请参阅管理本地网络规则。
第 3 步:为该沙箱阻止一个目标地址
添加一条只适用于 policy-demo 的 registry.npmjs.org 拒绝规则:
$ sbx policy deny network --sandbox policy-demo registry.npmjs.org检查该目标地址:
$ sbx policy check network --sandbox policy-demo registry.npmjs.org检查结果为 Denied。拒绝规则优先于允许规则,包括你的预设和 Kit 添加的允许规则。
第 4 步:为该沙箱阻止一个 HTTP 方法
HTTP 规则匹配主机上的方法和路径,而不是整个主机。用 HTTP 规则允许或阻止特定的 API 请求,例如让智能体读取某个 API 却不允许它写入。为 policy-demo 阻止发往 example.com 的 POST 请求:
$ sbx policy deny network --sandbox policy-demo example.com --method POST从沙箱内部发送一个 POST 请求:
$ sbx exec policy-demo -- curl -s -X POST https://example.com响应以 Blocked by local rule 开头。其他方法仍然被允许。向同一目标地址发送一个 GET 请求:
$ sbx exec policy-demo -- curl -s https://example.com响应是 example.com 页面的 HTML。
sbx policy check network 报告的是主机的判定结果,而不是某个方法或路径的结果, 因此要测试 HTTP 规则,请使用像上面这样的请求。有关更多细节,请参阅 允许或阻止 HTTP 方法和路径。
第 5 步:回顾网络活动
查看该沙箱的网络活动:
$ sbx policy log policy-demo有关更多细节,请参阅测试和监控网络策略。
第 6 步:清理
删除沙箱:
$ sbx rm policy-demo删除沙箱时,限定到它的规则也会一并删除,因此你不需要移除本示例中添加的规则。
后续步骤
- 了解预设、单个沙箱的规则和 Kit 规则如何在 本地策略中组合。
- 在 Balanced 和 Locked Down 预设下批准没有任何规则允许的目标地址,请参阅 回应审批请求。
- 参考网络和 HTTP 规则 语法。