1. 概述
网络策略(Network Policy) 旨在控制对某个服务实例(instance)的访问来源,常用做以下场景:
- 限制仅允许特定的 IP 或网段访问Lakehouse 服务实例的Web服务。
- 限制仅允许特定的 IP 或网段使用JDBC连接Lakehouse服务实例。
- 阻止(黑名单)可疑或风险 IP 地址段。
- 在需要时,为了不影响生产或管理员登录,具备实例管理员角色(instance_admin)的用户可临时绕过并修改网络策略设置。
在实际运维中,结合 IP 白名单、黑名单可显著增强数据的安全性与合规性。
2. 网络策略(Network Policy)简介
- 核心功能:通过白名单(Allow_IP_List)和黑名单(Block_IP_List)来控制哪些网络来源可以访问目标服务实例。
- 典型效果:
- 管理和过滤 IP 地址或网段。
- 同时支持白名单(Allow_IP_List)和黑名单(Block_IP_List)方式配置网络策略。
- 当多条策略生效并叠加时,采用“Deny 优先”原则。
3. 网络策略的工作原理与使用场景
3.1 默认逻辑
- 当系统无任何网络策略时,默认允许所有 IP 访问(相当于“Allow 0.0.0.0/0”)。
- 一旦创建并激活了至少一条网络策略,系统会根据所有生效策略的白名单及黑名单规则进行过滤。
3.2 白名单(Allow)与黑名单(Block)的运算
在同一条网络策略中或多条生效策略的结果中:
- 如果有任一生效的白名单策略,则没有在白名单策略中的某个IP/网段将被阻止。
- 如果没有任何生效的白名单,则除生效的黑名单指定的IP/网段外,其他IP/网段将被放行。
- 最终出现任意黑名单规则命中时,该 IP 即被拒绝。
3.3 多条策略生效与优先级
- 多条策略并行生效时,白名单取并集,黑名单取并集。
- 多条网络策略之间无优先级关系,系统会对所有生效的网络策略做逻辑运算,并得出当前最终的网络策略结果。
3.4 适用范围
网络策略适用于控制从外部网络访问Lakehouse服务的请求,访问方式包括:
- JDBC
- SDK
- Web页面
特殊情况说明:
- MySQL兼容协议访问Lakehouse时,只要有“生效”状态的网络策略,无论白名单、黑名单的内容,均会拦截所有MySQL流量。
4. 核心属性与限制
4.1 网络策略属性
属性名称 | 是否必填 | 取值范围 | 默认值 | 说明 |
---|---|---|---|---|
Name | 是 | 字母或下划线开头,3-28 个字符,自动转小写,仅限字母/数字/下划线 | 无 | 策略名称在实例内唯一。 |
Allow_IP_List | 是 | IPv4 单 IP 或 CIDR,逗号分隔,数量上限 ~10 万 | 无 | 允许访问的 IP 或网段。 不允许出现 0.0.0.0/0 。 |
Block_IP_List | 否 | IPv4 单 IP 或 CIDR,逗号分隔,数量上限 ~10 万 | 无 | 阻止访问的 IP 或网段。 不允许出现 0.0.0.0/0 。 |
Status | 是 | Activate 或 Inactive | Activate | 新建默认“生效”,可同时存在多条生效策略。 |
4.2 限制与注意事项
- 最大策略数:同一实例最多可创建 20条网络策略。
- 单策略 IP 数量限制:白名单、黑名单各自最多可各容纳 10 万个 IP/CIDR。
- 策略生效延迟:网络策略存在缓存生效机制,一般最多 5 分钟内生效。
- 删除后不可恢复:请谨慎操作。尤其多条网络策略同时生效时,逻辑关系较为复杂,删除已生效的策略,可能会导致禁止或允许访问的范围产生较大变化。
5. 操作指南
以下操作可通过 SQL 命令或前端管理控制台来完成,具体以您所在产品的实际实现为准。
5.1 创建网络策略
该操作仅限具备实例管理员(instance_admin)角色的用户执行。
Web 操作:
在“管理”-“安全”-“网络策略”功能中,点击“+新建策略”。
在弹窗中填写“策略名称”,并根据实际需要填写IP白名单或IP黑名单中的内容。
SQL 操作:
注意:
- 同一个服务实例中,网络策略的名称不可重复。
- 白名单和黑名单中支持填写 IPV4 IP或CIDR,但不支持0.0.0.0/0。 当白名单为空时,表示全部允许。
- 同一条网络策略中,白名单或黑名单内的IP/CIDR不允许重复添加,但允许存在交集。不同网络策略中,白名单或黑名单内的IP/CIDR允许重复或存在交集。
- 创建成功后状态默认为
Activate
(可立即生效或可被再次激活/使用,视产品而定)。 - 当前访问Lakehouse所使用的IP也可被写入白名单/黑名单内。如果将当前使用的IP加入黑名单,将导致策略生效后,对当前服务实例的访问立即被阻止。请谨慎操作。
5.3 修改网络策略
Web 操作:
在“管理”-“安全”-“网络策略”功能中,在需要修改的网络策略右侧的“操作”栏中点击“编辑”按钮,在弹窗中对该网络策略进行修改。
其中,
网络策略的名称不允许修改。仅可以修改网络策略中的白名单/黑名单所包含的IP内容。
SQL 操作:
注意:
- 修改网络策略的SQL操作是**“覆盖”操作,ALTER语句中务必包含ALLOWED_IP_LIST和BLOCKED_IP_LIST中所有**需要允许和拒绝的IP范围。
例如:
5.4 生效/失效网络策略
Web 操作:
在“管理”-“安全”-“网络策略”功能中,在需要修改的网络策略右侧的“操作”栏中点击“停用”/“启用”按钮,即可切换网络策略的状态。
SQL 操作:
-
可以在列表或详情处进行“置为生效/置为失效”操作。
-
具体生效/失效后对其他策略的影响,依您的产品是否允许多策略生效而定(有的只允许单一账号策略有效,激活新策略会自动替换上一个;也有的允许多条策略并行)。
5.5 删除网络策略
Web 操作:
在“管理”-“安全”-“网络策略”功能中,在需要修改的网络策略右侧的“操作”栏中点击“停用”/“启用”按钮,即可切换网络策略的状态。
SQL 操作:
- 删除后不可恢复。
5.6 查看网络策略
Web 操作:
在“管理”-“安全”-“网络策略”功能中,可以查看当前服务实例中所有的网络策略。
SQL 操作:
- 显示所有策略:
返回字段包括:
字段 | 说明 |
---|---|
NAME | 策略名称 |
CREATOR | 创建者的username |
CREATED_TIME | 格式为:yyyy-mm-dd hh:mm:ss |
STATUS | active、inactive |
- 查看详情:
- 返回策略中
ALLOWed_IP_LIST
/BLOCKed_IP_LIST
字段 | 说明 |
---|---|
NAME | 策略名称 |
ALLOWED_IP_LIST | 创建者的username |
BLOCKED_IP_LIST | 格式为:yyyy-mm-dd hh:mm:ss |
5.7 临时绕过网络策略访问
-
在极端情况下(如白名单配错或黑名单阻止了所有网段),可由具备实例管理员角色(instance_admin)的用户
创建临时绕过策略,使指定用户在 30 分钟内不受网络策略限制。
-
在某些产品或环境中,该功能通过设置用户对象属性
MINS_TO_BYPASS_NETWORK_POLICY
来实现,需要联系管理员或官方支持来配置。
6. 权限与安全控制
Privilege code | 操作 | 默认授予角色 / 权限 |
---|---|---|
create network policy | CREATE | 仅授予实例管理员(instance_admin) |
alter | ALTER/RENAME/激活/失效 | 仅授予实例管理员(instance_admin) |
drop | DROP | 仅授予实例管理员(instance_admin) |
read metadata | SHOW / DESC / | 仅授予实例管理员(instance_admin) |
7. 常见问题(FAQ)
- 同一个 IP 同时在白名单和黑名单出现,结果如何?
- 黑名单优先,访问被阻断。
- 当没有创建任何网络策略时,默认是允许还是拒绝访问?
- 默认允许所有 IP,等效于白名单包含所有IP。
- 为何禁止使用 `` 在白名单/黑名单中?
- 该表示意味着“所有 IP”。在白名单中没有实际意义(表示开放全部),在黑名单中则完全阻断所有访问,如果没有例外规则,就会导致任何人都无法访问。
- 是否能对同一实例同时启用多条网络策略?
- 允许同一服务实例创建多条网络策略且并行生效。系统将所有生效策略中的网络策略中的白名单/黑名单规则取并集后再应用。
- 如何避免实例管理员自己被策略锁住?
- 在创建或激活策略前,请确保您自己的 IP(可在web端创建或修改网络策略时看到)已包含在白名单中。若仍意外被阻断,实例管理员(instance_admin)可通过修改网络策略来恢复自己对服务实例的访问。