CREATE NETWORK POLICY¶
创建网络策略或替换现有网络策略。
备注
只有安全管理员(即具有 SECURITYADMIN 角色的用户)或更高级别的角色,或者 具有全局 CREATE NETWORK POLICY 权限的角色可以创建网络策略。
语法¶
CREATE [ OR REPLACE ] NETWORK POLICY [ IF NOT EXISTS ] <name>
[ 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>' ]
必填参数¶
name
网络策略的标识符;对于您的账户必须是唯一的。
标识符值必须以字母字符开头,且不能包含空格或特殊字符,除非整个标识符字符串放在双引号内(例如
"My object"
)。双引号内的标识符也区分大小写。有关更多详细信息,请参阅 标识符要求。
可选参数¶
ALLOWED_NETWORK_RULE_LIST = ( 'network_rule' [ , 'network_rule' , ... ] )
指定 网络规则 的列表,这些规则包含了被允许访问 Snowflake 的网络标识符。列表中的网络规则数量没有限制。
BLOCKED_NETWORK_RULE_LIST = ( 'network_rule' [ , 'network_rule' , ... ] )
指定网络规则的列表,这些规则包含了被拒绝访问 Snowflake 的网络标识符。列表中的网络规则数量没有限制。
ALLOWED_IP_LIST = ( [ ip_address ] [ , ip_address , ... ] )
指定 IPv4 地址的列表,这些地址被允许访问您的 Snowflake 账户。这被称为 允许名单。
Snowflake 建议将网络规则与网络策略结合使用,而不是使用此属性。使用
ALLOWED_NETWORK_RULE_LIST
属性指定包含 IPv4 地址的网络规则。如果您尚未使用网络规则,请指定至少一个 IPv4 地址或 CIDR 块范围,以允许访问您的 Snowflake 账户。此外,如果不使用网络规则,且此属性指定为空列表,则不允许 IPv4 地址访问您的 Snowflake 账户。
BLOCKED_IP_LIST = ( [ ip_address ] [ , ip_address , ... ] )
指定 IPv4 地址的列表,这些地址被拒绝访问您的 Snowflake 账户。这被称为 阻止名单。要取消设置该参数,请指定不同的 CIDR 块范围、一系列 IPv4 地址或单个 IPv4 地址。
Snowflake 建议将网络规则与网络策略结合使用,而不是使用此参数。使用
BLOCKED_NETWORK_RULE_LIST
属性指定包含 IPv4 地址的网络规则。要阻止公共访问,请使用网络规则并将网络规则添加到
BLOCKED_NETWORK_RULE_LIST
属性。因此,只有使用专用连接的 IP 地址(例如 AWS PrivateLink)才能访问您的 Snowflake 账户。默认值:无值;不阻止
ALLOWED_IP_LIST
属性中的 IP 地址。
COMMENT = 'string_literal'
指定网络策略的注释。
默认:无值
访问控制要求¶
权限 |
对象 |
备注 |
---|---|---|
CREATE NETWORK POLICY |
账户 |
Only the SECURITYADMIN role, or a higher role, has this privilege by default. The privilege can be granted to additional roles as needed. |
有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色。
使用说明¶
将网络规则与网络策略结合使用来管理对您的 Snowflake 账户的访问。
如果现有网络策略当前分配给账户、安全集成或用户,则无法执行 CREATE OR REPLACE NETWORK POLICY 命令来替换该策略。
每个
ip_address
都可以覆盖使用无类域间路由 (CIDR) 表示法的地址范围:ip_address[/optional_prefix_length]
例如:
192.168.1.0/24
当网络策略包含
ALLOWED_IP_LIST
和BLOCKED_IP_LIST
的值时,Snowflake 会首先应用 阻止名单。ALLOWED_IP_LIST
列表的字符数上限为 100,000。当超过此字符数限制时,Snowflake 会返回一条错误消息。创建网络策略后,在 Snowflake 强制执行该策略之前,必须将其与您的账户关联。可以通过执行 ALTER ACCOUNT 命令将策略与您的账户关联,此命令必须由具有 SECURITYADMIN 角色(或更高级别角色)的用户运行。
例如:
USE ROLE SECURITYADMIN; ALTER ACCOUNT SET NETWORK_POLICY = <policy_name>;
有关更多详细信息,请参阅 参数管理。请注意,NETWORK_POLICY 是当前可由具有 SECURITYADMIN 角色的用户设置的唯一账户参数。
在将网络策略与您的账户关联之前,必须将您的当前 IP 地址包含在
ALLOWED_IP_LIST
中,否则 ALTER ACCOUNT 命令会返回错误。此外,您的当前 IP 地址不能包含在BLOCKED_IP_LIST
中。关于元数据:
注意
客户应确保在使用 Snowflake 服务时,不会将个人数据(用户对象除外)、敏感数据、出口管制数据或其他受监管数据作为元数据输入。有关更多信息,请参阅 Snowflake 中的元数据字段。
CREATE OR REPLACE <object> 语句是原子的。也就是说,当对象被替换时,旧对象将被删除,新对象将在单个事务中创建。
示例¶
根据两条网络规则(一条允许 VPCE ID,一条阻止公共网络流量)创建名为 allow_vpceid_block_public_policy
的网络策略,如 允许列表和阻止列表之间的交互 中所述。
CREATE NETWORK POLICY allow_vpceid_block_public_policy
ALLOWED_NETWORK_RULE_LIST = 'allow_vpceid_access'
BLOCKED_NETWORK_RULE_LIST = 'block_public_access';
DESC NETWORK POLICY rule_based_policy;
+---------------------------+---------------------+
| name | value |
|---------------------------+---------------------|
| ALLOWED_NETWORK_RULE_LIST | ALLOW_VPCEID_ACCESS |
+---------------------------+---------------------+
| BLOCKED_NETWORK_RULE_LIST | BLOCK_PUBLIC_ACCESS |
+---------------------------+---------------------+