1. 概述

网络策略(Network Policy) 旨在控制对某个服务实例(instance)的访问来源,常用做以下场景:

  • 限制仅允许特定的 IP 或网段访问Lakehouse 服务实例的Web服务。
  • 限制仅允许特定的 IP 或网段使用JDBC连接Lakehouse服务实例。
  • 阻止(黑名单)可疑或风险 IP 地址段。
  • 在需要时,为了不影响生产或管理员登录,具备实例管理员角色(instance_admin)的用户可临时绕过并修改网络策略设置。

在实际运维中,结合 IP 白名单、黑名单可显著增强数据的安全性与合规性。


2. 网络策略(Network Policy)简介

  • 核心功能:通过白名单(Allow_IP_List)和黑名单(Block_IP_List)来控制哪些网络来源可以访问目标服务实例。
  • 典型效果
    1. 管理和过滤 IP 地址或网段。
    2. 同时支持白名单(Allow_IP_List)和黑名单(Block_IP_List)方式配置网络策略。
    3. 当多条策略生效并叠加时,采用“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_ListIPv4 单 IP 或 CIDR,逗号分隔,数量上限 ~10 万允许访问的 IP 或网段。 不允许出现 0.0.0.0/0
Block_IP_ListIPv4 单 IP 或 CIDR,逗号分隔,数量上限 ~10 万阻止访问的 IP 或网段。 不允许出现 0.0.0.0/0
StatusActivateInactiveActivate新建默认“生效”,可同时存在多条生效策略。

4.2 限制与注意事项

  1. 最大策略数:同一实例最多可创建 20条网络策略。
  2. 单策略 IP 数量限制:白名单、黑名单各自最多可各容纳 10 万个 IP/CIDR。
  3. 策略生效延迟:网络策略存在缓存生效机制,一般最多 5 分钟内生效。
  4. 删除后不可恢复:请谨慎操作。尤其多条网络策略同时生效时,逻辑关系较为复杂,删除已生效的策略,可能会导致禁止或允许访问的范围产生较大变化。

5. 操作指南

以下操作可通过 SQL 命令或前端管理控制台来完成,具体以您所在产品的实际实现为准。

5.1 创建网络策略

该操作仅限具备实例管理员(instance_admin)角色的用户执行。

Web 操作

在“管理”-“安全”-“网络策略”功能中,点击“+新建策略”。

在弹窗中填写“策略名称”,并根据实际需要填写IP白名单或IP黑名单中的内容。

SQL 操作

CREATE [ OR REPLACE ] NETWORK POLICY <name>
ALLOWED_IP_LIST = ( [ '<ip_address>' ] [ , '<ip_address>' , ... ] )
[ BLOCKED_IP_LIST = ( [ '<ip_address>' ] [ , '<ip_address>' , ... ] ) ];


--示例:
CREATE NETWORK POLICY policy1
  ALLOWED_IP_LIST = ('192.168.11.1','192.168.11.2','10.0.0.1/24')
  BLOCKED_IP_LIST = ('192.168.11.99');

注意:

  • 同一个服务实例中,网络策略的名称不可重复。
  • 白名单和黑名单中支持填写 IPV4 IP或CIDR,但不支持0.0.0.0/0。 当白名单为空时,表示全部允许。
  • 同一条网络策略中,白名单或黑名单内的IP/CIDR不允许重复添加,但允许存在交集。不同网络策略中,白名单或黑名单内的IP/CIDR允许重复或存在交集。
  • 创建成功后状态默认为 Activate(可立即生效或可被再次激活/使用,视产品而定)。
  • 当前访问Lakehouse所使用的IP也可被写入白名单/黑名单内。如果将当前使用的IP加入黑名单,将导致策略生效后,对当前服务实例的访问立即被阻止。请谨慎操作。

5.3 修改网络策略

Web 操作

在“管理”-“安全”-“网络策略”功能中,在需要修改的网络策略右侧的“操作”栏中点击“编辑”按钮,在弹窗中对该网络策略进行修改。

其中,

网络策略的名称不允许修改。仅可以修改网络策略中的白名单/黑名单所包含的IP内容。

SQL 操作

ALTER NETWORK POLICY [ IF EXISTS ] <name>
SET 
  ALLOWED_IP_LIST = ( [ '<ip_address>' ] [ , '<ip_address>' , ... ] )
[ BLOCKED_IP_LIST = ( [ '<ip_address>' ] [ , '<ip_address>' , ... ] ) ];

--示例:
ALTER NETWORK POLICY policy1
SET 
	ALLOWED_IP_LIST = ('192.168.11.1')
	BLOCKED_IP_LIST = ('192.168.11.99');

注意:

  • 修改网络策略的SQL操作是**“覆盖”操作,ALTER语句中务必包含ALLOWED_IP_LIST和BLOCKED_IP_LIST中所有**需要允许和拒绝的IP范围。

例如:

--创建一条示例的网络策略
CREATE NETWORK POLICY policy1
  BLOCKED_IP_LIST = ('192.168.11.99');

--以下语句执行后的policy1,仅包含ALLOWED_IP_LIST = ('192.168.11.100')
ALTER NETWORK POLICY policy1 SET 
ALLOWED_IP_LIST = ('192.168.11.100');

--不执行上面的ALTER语句,而执行以下ALTER语句修改网络策略后,policy1中包含:ALLOWED_IP_LIST = ('192.168.11.1')和BLOCKED_IP_LIST = ('192.168.11.99')
ALTER NETWORK POLICY policy1
SET 
	ALLOWED_IP_LIST = ('192.168.11.1')
	BLOCKED_IP_LIST = ('192.168.11.99');

5.4 生效/失效网络策略

Web 操作

在“管理”-“安全”-“网络策略”功能中,在需要修改的网络策略右侧的“操作”栏中点击“停用”/“启用”按钮,即可切换网络策略的状态。

SQL 操作

ALTER NETWORK POLICY <name> ACTIVATE;
ALTER NETWORK POLICY <name> INACTIVATE;

--示例:
CREATE NETWORK POLICY policy1 ACTIVATE;
CREATE NETWORK POLICY policy1 INACTIVATE;
  • 可以在列表或详情处进行“置为生效/置为失效”操作。

  • 具体生效/失效后对其他策略的影响,依您的产品是否允许多策略生效而定(有的只允许单一账号策略有效,激活新策略会自动替换上一个;也有的允许多条策略并行)。

5.5 删除网络策略

Web 操作

在“管理”-“安全”-“网络策略”功能中,在需要修改的网络策略右侧的“操作”栏中点击“停用”/“启用”按钮,即可切换网络策略的状态。

SQL 操作

DROP NETWORK POLICY  <name>;

--示例:
drop network policy policy1;
  • 删除后不可恢复。

5.6 查看网络策略

Web 操作

在“管理”-“安全”-“网络策略”功能中,可以查看当前服务实例中所有的网络策略。

SQL 操作

  • 显示所有策略
SHOW NETWORK POLICY;

返回字段包括:

字段说明
NAME策略名称
CREATOR创建者的username
CREATED_TIME格式为:yyyy-mm-dd hh:mm:ss
STATUSactive、inactive
  • 查看详情
DESC NETWORK POLICY <name>;
  • 返回策略中 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 policyCREATE仅授予实例管理员(instance_admin)
alterALTER/RENAME/激活/失效仅授予实例管理员(instance_admin)
dropDROP仅授予实例管理员(instance_admin)
read metadataSHOW / DESC /仅授予实例管理员(instance_admin)

7. 常见问题(FAQ)

  1. 同一个 IP 同时在白名单和黑名单出现,结果如何
    • 黑名单优先,访问被阻断。
  2. 当没有创建任何网络策略时,默认是允许还是拒绝访问
    • 默认允许所有 IP,等效于白名单包含所有IP。
  3. 为何禁止使用 `` 在白名单/黑名单中
    • 该表示意味着“所有 IP”。在白名单中没有实际意义(表示开放全部),在黑名单中则完全阻断所有访问,如果没有例外规则,就会导致任何人都无法访问。
  4. 是否能对同一实例同时启用多条网络策略
    • 允许同一服务实例创建多条网络策略且并行生效。系统将所有生效策略中的网络策略中的白名单/黑名单规则取并集后再应用。
  5. 如何避免实例管理员自己被策略锁住
    • 在创建或激活策略前,请确保您自己的 IP(可在web端创建或修改网络策略时看到)已包含在白名单中。若仍意外被阻断,实例管理员(instance_admin)可通过修改网络策略来恢复自己对服务实例的访问。

联系我们
预约咨询
微信咨询
电话咨询