ALTER NETWORK POLICY¶
修改现有网络策略的属性。目前,唯一支持的操作是更改被允许或拒绝访问账户的 IP 地址,以及添加/覆盖/移除网络策略的注释。
备注
只有网络策略所有者(即具有网络策略 OWNERSHIP 权限的角色)或更高级别的角色才能更改网络策略。
语法¶
ALTER NETWORK POLICY [ IF EXISTS ] <name> SET {
[ ALLOWED_NETWORK_RULE_LIST = ( '<network_rule>' [ , '<network_rule>' , ... ] ) ]
[ BLOCKED_NETWORK_RULE_LIST = ( '<network_rule>' [ , '<network_rule>' , ... ] ) ]
[ ALLOWED_IP_LIST = ( [ '<ip_address>' ] [ , '<ip_address>' ... ] ) ]
[ BLOCKED_IP_LIST = ( [ '<ip_address>' ] [ , '<ip_address>' ... ] ) ]
[ COMMENT = '<string_literal>' ] }
ALTER NETWORK POLICY [ IF EXISTS ] <name> UNSET COMMENT
ALTER NETWORK POLICY <name> ADD { ALLOWED_NETWORK_RULE_LIST = '<network_rule>' | BLOCKED_NETWORK_RULE_LIST = '<network_rule>' }
ALTER NETWORK POLICY <name> REMOVE { ALLOWED_NETWORK_RULE_LIST = '<network_rule>' | BLOCKED_NETWORK_RULE_LIST = '<network_rule>' }
ALTER NETWORK POLICY <name> RENAME TO <new_name>
ALTER NETWORK POLICY <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]
ALTER NETWORK POLICY <name> UNSET TAG <tag_name> [ , <tag_name> ... ]
参数¶
name
指定要更改的网络策略的标识符。如果标识符包含空格或特殊字符,则整个字符串必须放在双引号内。放在双引号内的标识符也区分大小写。
SET ...
指定要为网络策略设置的参数:
ALLOWED_NETWORK_RULE_LIST = ( 'network_rule' [ , 'network_rule' , ... ] )
指定 网络规则 的列表,这些规则包含了被允许访问 Snowflake 的网络标识符。对列表中的网络规则数量没有限制。
替换允许列表中的现有网络规则。要在不替换现有规则的前提下添加网络规则,请使用
ALTER NETWORK POLICY ... ADD
命令。BLOCKED_NETWORK_RULE_LIST = ( 'network_rule' [ , 'network_rule' , ... ] )
指定网络规则的列表,这些规则包含了被拒绝访问 Snowflake 的网络标识符。对列表中的网络规则数量没有限制。
替换阻止列表中现有的网络规则。要在不替换现有规则的前提下添加网络规则,请使用
ALTER NETWORK POLICY ... ADD
命令。ALLOWED_IP_LIST = ( [ ip_address ] [ , ip_address , ... ] )
Snowflake 建议将网络规则与网络策略结合使用,而不是使用此参数。使用 ALLOWED_NETWORK_RULE_LIST 参数指定包含 IPv4 地址的网络规则。
指定 IPv4 地址的列表,这些地址被允许访问您的 Snowflake 账户。这被称为 允许名单。Snowflake 会自动阻止所有未包含在允许名单中的 IP 地址。
请注意,如果使用空列表指定此参数,则网络策略 不 允许任何 IPv4 地址访问 Snowflake。
BLOCKED_IP_LIST = ( [ ip_address ] [ , ip_address , ... ] )
Snowflake 建议将网络规则与网络策略结合使用,而不是使用此参数。使用 BLOCKED_NETWORK_RULE_LIST 参数指定包含 IPv4 地址的网络规则。
指定 IPv4 地址的列表,这些地址被拒绝访问您的 Snowflake 账户。这被称为 阻止名单。
仅在以下情况下才设置此参数:您允许在
ALLOWED_IP_LIST
中指定的 IP 地址范围进行访问,但想拒绝该范围内的一个或多个 IP 地址进行访问。若要取消设置此参数,请指定一个空列表。
COMMENT = 'string_literal'
为网络策略添加注释或覆盖现有注释。
UNSET ...
指定要为网络策略取消设置的属性,将其重置为默认值:
COMMENT
,移除网络策略的注释(如果存在)。TAG tag_name [ , tag_name ... ]
ADD { ALLOWED_NETWORK_RULE_LIST = 'network_rule' | BLOCKED_NETWORK_RULE_LIST = 'network_rule' }
将网络规则添加到网络策略的允许或阻止列表中,而不移除现有规则。
REMOVE { ALLOWED_NETWORK_RULE_LIST = 'network_rule' | BLOCKED_NETWORK_RULE_LIST = 'network_rule' }
从网络策略的允许或阻止列表中移除网络规则。
RENAME TO ...
为现有的网络策略指定新名称。
使用说明¶
针对允许/阻止列表的
SET
操作 :emph:` 不是 ` 累积操作(即,它会移除网络策略现有列表中的所有 IP 地址,并将它们替换为指定列表)。因此,要对现有列表执行添加操作,您必须指定新的 IP 地址 并 复制现有列表。
每个
ip_address
都可以覆盖使用无类域间路由 (CIDR) 表示法的地址范围:ip_address[/optional_prefix_length]
例如:
192.168.1.0/24
当网络策略包含
ALLOWED_IP_LIST
和BLOCKED_IP_LIST
的值时,Snowflake 会首先应用 阻止名单。不要 将
0.0.0.0/0
添加到BLOCKED_IP_LIST
中。由于 Snowflake 首先应用阻止名单,因此这将阻止您自己的访问。此外,要阻止除选定列表之外的所有 IP 地址,只需将 IP 地址添加到ALLOWED_IP_LIST
中即可。Snowflake 会自动阻止所有未包含在允许名单中的 IP 地址。关于元数据:
注意
客户应确保在使用 Snowflake 服务时,不会将个人数据(用户对象除外)、敏感数据、出口管制数据或其他受监管数据作为元数据输入。有关更多信息,请参阅 Snowflake 中的元数据字段。
示例¶
修改名为 mypolicy1
的网络策略,如下所示:
保留针对策略的现有允许列表(
192.168.1.0/24
范围中的所有 IP 地址)和阻止列表 (192.168.1.99
),正如 CREATE NETWORK POLICY 示例中定义。将 IP 地址
192.168.255.100
添加到允许列表。拒绝所有其他 IP 地址。
DESC NETWORK POLICY mypolicy1;
+-----------------+----------------+
| name | value |
|-----------------+----------------|
| ALLOWED_IP_LIST | 192.168.1.0/24 |
| BLOCKED_IP_LIST | 192.168.1.99 |
+-----------------+----------------+
ALTER NETWORK POLICY mypolicy1 SET ALLOWED_IP_LIST=('192.168.1.0/24','192.168.255.100')
BLOCKED_IP_LIST=('192.168.1.99');
DESC NETWORK POLICY mypolicy1;
+-----------------+--------------------------------+
| name | value |
|-----------------+--------------------------------|
| ALLOWED_IP_LIST | 192.168.1.0/24,192.168.255.100 |
| BLOCKED_IP_LIST | 192.168.1.99 |
+-----------------+--------------------------------+
备注
要保留现有的允许列表和阻止列表,您必须包含以前列表中的所有 IP 地址。