Skip to content
说明允许访问指定主机
用法sbx policy allow network [--sandbox SANDBOX] RESOURCES [flags]

描述 ​

允许沙箱访问指定主机。

RESOURCES 是主机名、域名、IP 地址或 CIDR 前缀的逗号分隔列表。规则默认适用于 TCP;使用 --protocol 可选择 UDP 或 两种传输方式。支持精确域名(example.com)、通配符子域名 (.example.com)、多标签通配符(.example.com)、单字符 通配(api?.example.com)、字符类(api[12].example.com、 api[!1].example.com),以及可选的端口后缀(example.com:443)。IPv6 地址的端口要用方括号括起来([2001:db8::1]:443),或者使用 CIDR 前缀 (2001:db8::1/128);不带这些的写法会被拒绝。使用 "" 允许所有主机。单独 ""、转义的通配字符(如 "*"),以及上述形式之外的任何其他模式,都会被拒绝, 而不是被存成一条什么都匹配不到的规则。

该规则默认对所有沙箱全局生效。使用 --sandbox 可改为把 规则添加到限定到单个沙箱的 "local" 策略中。

不使用 --cloud 时,如果同一范围内已经存在针对同一资源、采用相同协议中任一种的 相反决策(对 HTTP 规则而言,指相同的方法、路径和查询约束),该规则会被拒绝, 且不会添加任何内容。请先用 "sbx policy rm network --id RULE_ID" 移除已有规则; 如果该规则限定在沙箱范围内,请加上 --sandbox SANDBOX。不同范围内的规则可以共存, 例如全局允许规则与沙箱范围的拒绝规则,此时拒绝规则优先。你所在组织的策略中的 规则不会触发这种拒绝。使用 --cloud 时,新规则会直接替换同一范围内的相反规则。

使用 --method 可添加 HTTP 规则。--method 接受逗号分隔的 HTTP 方法或 ANY;--path 默认为 /**。重复使用 --query name=value 可要求 查询参数。

HTTP 路径、查询参数名和查询值的匹配不区分 ASCII 字母大小写。 例如 /API/** 匹配 /api/items,Tag=PROD 匹配 tag=prod。

使用 --cloud: 允许云端沙箱访问指定主机。

同一范围内匹配的拒绝条目会被该允许条目替换。

RESOURCES 是网络模式的逗号分隔列表,例如 api.example.com、 *.example.com、10.0.0.0/8 或 api.example.com:443。不支持 HTTP 方法、路径、查询和 传输协议选择器。

规则默认适用于账号。使用 --sandbox 并加上沙箱名称或 ID 可更改单个沙箱的策略。用 "sbx --cloud policy ls" 可列出规则。

选项 ​

选项默认值说明
--method把规则限定到指定的 HTTP 方法(逗号分隔);用 ANY 匹配所有方法
--path把规则限定到指定的 HTTP 路径通配符(例如 /repos/);默认为 /
--protocol网络协议:tcp 或 udp;可重复指定或用逗号分隔以同时使用两者
--query要求带某个 HTTP 查询参数(name=value 形式);可重复传入
--sandbox把规则限定到特定的沙箱(默认:所有沙箱)

全局选项 ​

选项默认值说明
--cloud改为调用 Docker Cloud Sandboxes API,而不是本地 sandboxd(支持的动词正在逐步增加,运行 sbx --cloud --help 查看当前列表)
-D, --debug启用调试日志
--no-input从不提示;需要应答的命令会直接失败,并给出应当运行的命令

示例 ​

console
# 允许访问单个主机(所有沙箱)
sbx policy allow network api.example.com

# 允许访问多个主机
sbx policy allow network "api.example.com,cdn.example.com"

# 只为特定沙箱允许某个主机
sbx policy allow network --sandbox my-sandbox api.example.com

# 允许某个主机的所有子域名
sbx policy allow network "*.npmjs.org"

# 在两种传输协议上允许所有出站流量
sbx policy allow network --protocol tcp,udp "**"

# 允许对某个路径发起 GET 和 HEAD 请求
sbx policy allow network api.example.com --method GET,HEAD --path '/v1/**'

# 在账号策略中允许某个主机
sbx --cloud policy allow network api.example.com

# 为某个沙箱允许一个主机
sbx --cloud policy allow network --sandbox my-sandbox api.example.com

参见 ​